z-Curve-Sweeper for Blender 3.0+ (Curve-to-Mesh with superpowers)

Update: Face-Corner UV generation added for seamless UVs, thanks @quellenform for help.

Z-Curve-Sweeper
Available here for free:

Does all the stuff from my previous node-groups (even-thickness, UV mapping, Z-Up project, etc.), and more (like curve-sweeps from points, profile curves output and mesh profile).

Feedback welcome.

25 Likes

Thanks for sharing.

3 Likes

So far this has been as much fun as a root canal without anaesthesia. I agree. Thanks for sharing. Those who understand it will get the most out of it.

I don’t.

“by intermediate to experienced authors”

I guess that would put me in the “not” category.

Thanks for your feedback.

Yeah, sorry, this is not one of those curve-to-sparkly-mobius-crystals types of node-groups, its one of those help-you-make-the-curve-to-sparkly-mobius-crystals types of node-groups.

The intended audience is node-group authors and not node-group users.

For example, poles-and-cables is a geometry nodes tutorial staple on YouTube and I invite you to compare those setups to this setup:


Which gives you a Curve-to-poles-and-cables node group:

i.e. In this specific example, the Z-Curve-Sweeper’s only task is to simplify generating and working with the “cable” curves by sweeping a line with 4 verts in the z-up-projected orientation (to match the poles).

Hope that manages expectations for others intending to use this node-group.

4 Likes

Hi,
I’m trying to create good sweep meshes but with no luck

As suggested, with 2D the corner seems fine (at least in one case) but that mode it’s not perfect because actually I need a solution that works in 3D.

I’ve tried to use your geomNode group but with no luck, am I wrong with something?

1 Like

Hi, yeah, sorry, seems like a bug with my node-group: Beziers require an evaluated resampling of the curve… I will fix the node-group to force this so you don’t have to worry about it:


You can add the resample as a workaround for now while I update.

Thanks for your feedback.

2 Likes

Tried your suggestion and now it’s working correctly as the 2D mode.
Now, I’d like to have a correct mesh when the curve is like this

In your example, if you try to extrude vertically down one of the last the curve point , what happens?

In your case (i.e. using blender curve objects) there is not much point in using the Z-Up tilt option, as that is meant for curves generated from other things. Since you’re using a curve object you can use the Z-Up Twist Method instead (it will give exactly the same results):
image
Since all the Z-Up Tilt option does is what the Z-Up Twist Method does, you have to correct vertical sections in the manual fashion (same as you had to do with Z-Up Twist Method):


i.e. correct, generally in increments of 90deg, for weird twists.
There is a python script that performs these “minimal tilts” for you but a geometry nodes version (I think) will only be available in Blender version 3.1 or up as (I think) you need an accumulator to implement a similar thing in geometry nodes.

Good luck.

2 Likes

thank you very much for your help.
Now it works correctly both in 3D mode

Thank you for your geomNode group that it’s needed to have even thickness.

2 Likes

Could I suggest to add an object input to the geomNode dedicated to the profile?
I think it’s more leisure to add the profile in that way.

If not, no problem, just a suggestion

Hi

Thanks for the suggestion. I’ve updated the GumRoad file - Node-Group can now be used at top-level (just ignore the warning about only one geometry, since internally the Object Info will take precedence). I tried to match the behavior of the standard Bevel as much as possible (so you may have to flip your profile to get something similar to what you had).
image

Please let me know how it works for you.

Also, I’m a total noob on GumRoad, so please let me know what the experience is like for getting updates, etc. Tried to make it as as non-disruptive as possible but open to suggestions for improvement/alternative platforms.

Thanks again.

4 Likes

Yes it works but something I’ve missed asking you to add that input, was that when you append a nodeGroup you lost the group input.
Now it’s more clear the discussion about this in the geomNode main thread.

Anyway thank you for support.

In celebration of Blender 3.1 going stable, the node-group has been updated.

image

Version 0.5 and up will be targeted for Blender 3.1+. Current update has a fix for face-orientation for “disconnected” profile caps. Version 0.4.1 will remain available for Blender 3.0 users until 3.2 goes stable. That’s the plan at least.

3 Likes

Hello, I am trying to create a sweep mesh that is generated from the line of intersection generated from the boolean and delete geometry node setup. The sweep mesh would twist randomly. The Z-curve tilt node group have made the tilt stable, but leave one half of the mesh tilt in one direction, and the other in the other. I set the tilt of one half to be the same as the rest. But the tilt of the curve became random again. It would be a great help if you could help me understand what is going on.


Subd trim fillet.blend (1016.0 KB)

Thank you.

Hi, the explanation for the “Flip” in tilt is same reason as here:

Looks like you’re attempting an intersect bevel - That’s not something I’ve managed to achieve (tried and failed). A general solution is beyond my current capabilities, so I would try maybe fake it with a circular pofile? Donno.

Will make another attempt at solution sometime but can’t promise anything. :man_shrugging:

Sorry for unsatisfactory answer.

Good luck.

You have provided help. Thank you.

Details on small update today to Gum Road file for Blender 3.1 at the top:

Using Field at Index and Accumulator nodes to do indexing instead of hidden geometry “stores” gives a slight performance improvement on test setup.

No changes were made to how the node functions, so this update really just helped me make Poly-Curve Info more readable and helped with understanding new Blender 3.1 nodes better.

That’s all for now.

1 Like

Details on update added to Gum Road link above from today follows on from this thread.

UVs are calculated for face-corners, so the proper UVs now possible without seams:

image

Method is quite slow and will add around 50% to the node-group-time so option is off by default.
(Sorry for delay in release - many attempts at speed-up failed so had to make concessions)

Thanks

1 Like

Just saw Johnny Matthews’ new tut “Blender Geometry Nodes: Spiral Cord Effect” and wanted to share how you can do something similar using the curve sweeper:

… here, the only bit of math you need to worry about is relating the twist length to to the resolution and the twist length to the twist angle of the guiding curve.
Twist Length divided by Resolution is the resample length, and Curve Length divided by Twist Length multiplied by Tau fed into the Curve Tilt means “cycle once every Twist Length”.

A single point is offset by the twist size and with “Profile as Points” checked a twisted curve is created with the curve sweeper.

Thickness then gets added with a curve-to-mesh with a circular profile at the end.

Feel like just letting the curve do most of the math is a more intuitive approach, but let me know what you think.

Cheers

1 Like

Update for Blender 3.2 added to gumroad (see initial post).

Things have changed quite a bit with Named Attributes being re-introduced into Blender 3.2 which makes this release incompatible with previous versions of this Node-Group. The .blend file includes all the previous examples so have a look at the main example to see how to port to the new node-group (in 90% of cases using the z-Curve-Sweeper (3.2) node-group should just work).

Node-Groups have been spit out of the previous approach of having a do-all node-group, and reliance on existing building-blocks is encouraged.


… the “Main Wrapper” (z-Curve-Sweeper (3.2)) has been massively simplified with the biggest notable feature being that the UVs will now just be available in the Shader Editor (no more plugging the UVs into the Attribute output, yay!) using the Attributes UVMap and CapMask.

Hope someone finds this useful, and please let me know if you have any issues.

Thanks!

5 Likes