This is a proposed solution for meshes generated from animation nodes which can be useful in many situations like L system.

Currently, we use “Edge to Tube” node to generate a mesh for L system, we can see it has broken edges. This problem is especially visible if edges are curved.


instead of using ‘Edges to tube’ we can use skin modifier and use the ‘Edge Width’ float values to set the radius of mesh vertices. Currently, there is no node for that so we can use a script node to write a little bit of simple code. It would be better if we have this feature in standard ‘Mesh object output’ node.


If we add the skin modifier nothing happens maybe because of ‘Mesh object output’ node works in a certain way so first, we deselect the generated mesh from ‘Mesh object output’, select the same mesh in our custom node, apply skin modifier and connect the ‘Edges width’ to ‘Radii’


script node displaying an error “index out of range” because ‘Edge Widths’ float list length is one value less so let’s add a value to our list using ‘Append to list’ node


if we see closely broken edges are gone and everything seems connected, there are some problems here and there but it’s much better than before


turn off any symmetry in skin modifier and  add two subdivision modifiers above and below

this looks much better.


Now, what if we want to change something. Well, it requires a little bit of manual work, I am pretty sure we can find a better way but until then let’s deselect the mesh form custom node and select in ‘Mesh object output’ node, it disables the skin modifier


Change whatever you want, I just changed the seed to generate a different tree


Now, deselect the mesh from ‘Mesh object output’ node and select in custom node


click ‘Add skin data’ in skin modifier to generate mesh



Refresh animation nodes execution


That’s it!