Method for clash detection in rhino 7

Is there any way to get information on the base method or reference of the clash detection function in Rhino 7?

For example, I found a paper describing a method for clash detection on the web. (Intersection Detection Algorithm Based on Hybrid Bounding Box for Geological Modeling With Faults | IEEE Journals & Magazine | IEEE Xplore)

and I want to know the method of Rhino’s (just basic principle or reference paper used to develop the function…)

Of course I’m not talking about the exact raw source or very detailed method, just basic concept used in Rhino clash detection function.

Any comment would be helpful.

Thank you very much!

When you executed in Rhino, the following methods appear to be available.

Thanks for the reply.

Actually, I mean the internal algorithm used in the method for searching.

I found some references about collision detection algorithms like below.

Still, it would be great if it is possible to get some basic ideas used in the Rhinoceros’s clash detection function.

This is also an interesting question to me, too.
Just want to contribute some algorithms I knew for collision detections.

  • AABB(Axis Aligned Bounding Box)
  • SAT(Separated Axis Theorem)

I found this page illustrate it well, so it might helps.

Although in the article it only mention simple collision of simple stuffs.
Such as:

  • Sphere
  • Box

According to this QA from StackOverflow:


I think the algorithm for more sophisticated meshes collision, might be a in a recursive structure, traversing the faces/ boundingBox in that mesh with kdTree, QuadTree or RTree helps.

These are just some of my ideas, a really interesting question.

OneLoneCoder’s explaination did a great job, FYI.

Thank you for your comment.

OneLoneCoder’s tutorial is really helpful.

I also think that McNeel uses something complex method consisting of multiple procedures including inspection for collision candidates based on AABB, OBB, and some tree structures.

I wish someday McNeel held conferences or sessions for developers.