Inconsistent thickness of curve profile using geometry nodes

I've been following a Youtube tutorial on procedural fence using Geometry Nodes

Everything seems fine except there is a problem with the thickness of curve profile. On straight lines which don't contain endpoints curve radius remains consistent, however coming to endpoints it weirdly widens.

Here is a screenshot of the problem in top view

And here is the setup in nodes

How can I make thickness consistent?

• Commented Apr 4, 2022 at 11:01
• @DuarteFarrajotaRamos, but it's not possible to do in GN Commented Apr 4, 2022 at 11:26
• in the case of this tutorial you could simply use a 'Split Edges' node before converting mesh edges to curves... as the corners are not visible that will keep the profile consistent Commented Apr 4, 2022 at 13:00
• @alambre if I understood you correctly, I should add a 'Split Edges' node AFTER 'Mesh Line' but BEFORE 'Mesh to Curve', 'Reverse Curve' etc.? If so, than it doesn't work, nothing changes Commented Apr 5, 2022 at 9:13
• didn't check all of the tutorial, but I meant the original Fence Line, convert it to mesh, split edges, then again to curve... so you have individual splines that are split at corners Commented Apr 5, 2022 at 12:45

As far as I know at the moment all bezier curve-to-mesh operations using Geometry Nodes assume a bezier curve is 3D, and thus suffer from the same limitations that regular 3D bezier curves suffer in Blender. That is bevel on tight corners will look narrower than on linear parts.

Only workaround I know at the moment is using a Resample Curve node before Curve to Mesh with a very high frequency. Either set it to Length with a low value, or Count with a high value.

Obvious downsides are

• Unnecessarily high amount of redundant geometry added
• Rounded corners on tight angles rather than sharp angles.
• It actually just "hides" the issue under overlapping geometry

Beware that this workaround generates a lot of extra geometry and will invariably be heavy and resource intensive, which may lead to performance issues.

Another possibility for curves with straight segments only is to break the curve at each corner into separate splines before bevelling with Curve to Mesh. The downsides being the gaps that will appear at the seams and if the corners don't meet at 90° you wont get correct continuity.

• Yeah, that works exactly how I wanted, but really stresses my laptop :( I will wait for other possible solutions, but thanks for this variant! Commented Apr 4, 2022 at 11:56
• @YRSHKHN Instead of resampling the curve in Geometry Nodes you could also increase the Resolution Preview settings in the curve object itself. By default this value is 12 for a Bézier Curve, maybe try 32 or 64. This will not completely get rid of the inconsistent thickness, but improve it. It's just a matter of which of the methods performs better on your computer while getting sufficient results. Commented Apr 4, 2022 at 14:25