algorithmic modeling for Rhino

Here is a script used to thicken a network of lines which could have a normal direction at each node.

It is similar in function to Cytoskeleton. It is an extension of this tool discussion.

It output mainly quads and sometimes triangles if some lines are not connected. As half sections are quite whatever you want it could be possible to make watertigh model with some smooth exterior and with interiors fins in order to have a better rigidity and a low weight. The script provided contains many examples of use. 

As inputs 


* Points (P)

* Connection between points (LP)

* Point to points connection (PP)

* and a minimum one width (WidtsAtPoint), or a width (radius) for each point. 


* NormalsAtPoint, you could provide one normal per point in order to orient sections

* Number of sections is the number of sections used to generate the mesh (minimum 2)

* Striction a numeric value between -3. and 3 used to modify striction of nodes

* The sections definitions is given through to same size list of double 

  * Lateral coordinates : first and last lateral coodinate must be 0.0 for watertight mesh

  * Height coordinates

Output :

* Many meshes which could be joined

P/LP/PP comes from topology of network, you could use SandBoxTopology plugin or mine component

Views: 13927


Replies to This Discussion

Great tool!! Thank you Laurent :)

Thanks Daniel

at the moment it is possible to have different widths at each face. The output "M" is a tree, each branch represent a face or road on the graph, here represented with differents colors, there is a big outside and many parts inside. So at the moment, the worflow for 2 differents sizes, shapes (with same value of height at x=0.0) is to make the two shapes, select the meshes and join them. I will post an example. As the section curve is normalized by width, I must change that in order to normalize by height. I post an example of updated script ASAP.

Here is an example of 2 types of sections, one for the inside and one for the outside. 

Main script updated


I hope to see many more examples posted. Cross section control is epic. It looks so esoteric though, as I don't understand the trick, what it really does. Are there cells? Many questions.

Nik the main explanations are on this discussion:

On 2D imagine lines as the middle of the road (center lines), so the algorithm seek for roads (left and right). On 2D I use Z axis in order to know with is the road which turn left or right ... On 3d I need some normals at intersection to make a choice.

Here, green is the network, half section profile is represented by the cross linked by lines. This is used to make mesh. Catmull and Clark finish the job. 

An example with an heart in 3d, remesh with MeshMachine, lines network using ShortestWalk.There is a problem at the end because the mesh is surely to sharp so the normals transition are not smooth. 

The half section is like that  (here with polylines)

With clipping plane it gives : 


Using Mac Maze definition, but instead of drawing the wall I draw the path, just one so one solid mesh. A carved model, to play with a ball ?

Each color represent a side of a road (71), it stops at end. 

Hey Laurent! First of all thank you for sharing your definition, it is awesome! I have a question about the maze definition: How do you get the path, instead of the walls?

Greetings, Richard.

You didn't look at the good place. See there for a complete maze script

Thanks a lot Laurent! You are right, didn't find this is really helpful.

Greetings, Richard.

Wonderful work Laurent!!!

Thanks Djordje :)






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service