Curve-To-Mesh with Even-Thickness Node-Group (Geometry Nodes, Blender 3.0)

UPDATE! Much simplified with new topology nodes in version 3.4!
Curve-To-Mesh Even-Thickness(3.4)(1).blend (123.6 KB)

Old Version (3.0)

Curve-To-Mesh Even-Thickness (Blender 3.0).blend (115.1 KB)

Use like normal Curve-To-Mesh:

Without Even-Thickness:

With Even-Thickness :

Took a lot of work, so hope someone finds it useful.


wonderful… thanks very much.

I did a python code for even-thickness extrude some time ago, I’lll try convert it to geo nodes too.



Yeah, you’ll see that it works really well for corners over 90deg, but when they go under 90deg they tend to under-scale. Yours’s also appears to do some type of z-up correction which is something I do separately as it isn’t always desired:
no z-up correction:
z-up correction:
Using separate node-group:

Good luck.


yes… has z-up correction… I have a ‘bank’ option to turn on/off z-up.

I’m using a custom version of the ‘parallel transport frame’ algorithm to place correct profile position, rotation and shear/scale and using extrude (bmesh.ops.bridge_loops).

Please get them to bake your fix into the actual system. The current behaviour is useless for everything I’ve ever tried to use it for.

Thanks. I see you do lots of arch-vis so may find this node-group of use too.
Know any devs?

1 Like

Hey, I’ve added an update (posted right at the top) to the scale factor and I think I’ve nailed it… would be interested to see another comparison (please use the Z-Up-Curve-Tilt group when comparing tho.).

Blender File:

C2M-ET-wilbr-compare.blend (170.7 KB)

1 Like

Oh no, that looks like something went horribly wrong.

Will investigate.

1 Like

If you want my script for try convert it in geonode, I send to you… script not finished, raw script… but works.

I dont have time to finish and try convert it in geonodes now.

1 Like

Thanks. But no need… no way I can do that in 3.0… I believe I would need the accumulator to implement the travelling-frame algorithm.

Are you using 3.1? Having weird experience were noodles are randomly disconnected in the nodegroups when I open it in 3.0. Hope others aren’t experiencing that. :cold_sweat:

Z-Up should look more like this:

I expected weird twists on the z-axis:
… the travelling-frame algorithm tilts “minimally” so if we were to use a circularly asymmetrical profile curve, yours’s isn’t guaranteed to always point up, whereas mine, being simpler, would.

I will provide 3.1 versions of the NodeGroups also in case others are experiencing the weird noodle-disconnect issue. :face_exhaling:

Thanks for your help, much appreciated :+1:

1 Like

yes… using 3.1


Comparison (Blender 3.0).blend (161.7 KB)

So, had to append all the objects to new file to sort out 3.1 weirdness but hopefully this serves as a good demonstrator of the various pros/cons of the various methods (And a good place to get all the node-groups):

It also shows the parity between z-up twist method and the z-up-curve-tilt node-group.

Also shows that the Z-Up-Curve-To-Mesh absolutely hates going “back and up” almost more than it hates just going up. Only the tiny flattish section at the top plays nicely, which re-enforces its limited use-case… it works better for these types of curves:

Opens OK for me in 3.1 - hope you don’t have any issues.



Am I doing it wrong?


Shall I slap myself with a fish or with a brick, my lord?

Donno, I now doubt the wisdom of making the thing that the node-group does an option… its probably a design anti-pattern on my part and I’ll try learn from your experience :man_shrugging:

If you find this nodegroup useful you may like to support my bombed curve-sweeper node-group which also does things like UVs and points as profile.

Thanks for your feedback.

1 Like

cool stuff. any plans on making a replacement for the screw modifier?

Check out Higgsas’s groups. Lots of the modifiers (and more) implemented there.

Good luck.

Hi there,

I am involved in addressing this issue in Blender for now in Geometry Nodes Curve-to-Mesh node only as of v3.5). This is still in development but closing in on a solution and that’d be great if you could provide some feedback here: Blender Devtalk / Curve to Mesh - Even Thickness

Thanks in advance!