algorithmic modeling for Rhino

Mateusz Zwierzycki, Petras Vestartas

Thanks David Reeves for SpatialGrid to speed up Line Line collisions.

Views: 480


You need to be a member of Grasshopper to add comments!

Comment by Petras Vestartas on November 21, 2016 at 12:44pm

Braiding became weaving:) But I believe instructions can be given to inform braiding.


A spatial grid is only really appropriate for range searches. For nearest neighbor searches, BSP trees (RTree, KdTree, OcTree, etc) are generally still the way to go despite their slower build time. Furthermore, in this case I equalized all segments, so I make the search by middle point of line. David Reeves suggested Line rasterization when colliding very long and short segments. Also I have tested rtees only event based from rhinocommon, if rtee is not event based it should be faster.

One more thing is self-collision. If you do not have for instance mesh / polyline that does not loop within itself like mobius knot, you can have very small number of collisions. But in the this woven thing we cannot avoid it.

If creating custom Kangaroo Solver it is really difficult to work with Rhino meshes, due to different indexing in topology edges/vertices and edges/vertices. The code was much much more cleaner using Plankton or PolyMesh. Then in this case, there are many similar goals. Therefore it was faster to use less interfaces. For instance, instead of creating each spring goal for each line it is better slightly modify equal length goal and have one goal.

Comment by Daniel Piker on November 21, 2016 at 10:50am

More nice work guys. You were experimenting with both RTrees and SpatialGrid right? How do you find the performance compares between them for this?

Comment by Moonbeast on November 21, 2016 at 10:21am

where can we find spatial grid?

Comment by Martin Tamke on November 18, 2016 at 9:39am

great work guys - the underlying question has sth to do with braiding, or? ;-)





  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service