Curve repeater and tube UX integration ideas.. AKA TUBE NEEDS TO DIE

dropping an idea I had during lunch…

this wouldn’t be curve sharing/instancing yet but could be useful in it’s own right:

“match curve” command

workflow:

  1. select 1 or several target curves
  2. select what properties will be matched
    geometry (can make sense to have it unchecked see example 1 below)
    radius
    twist
    spiralize settings
  3. pick source curve
    (there would need to be a “picking” workflow implemented e.g. some clear highlight that Nomad is now in “picking” mode until the object is picked)

examples of what this could achieve:

  • transfer the twist/radius profile to other curves after creation (geometry unchecked, can be lossy)
  • a curve could be fitted to another curve that has a different resolution (geometry checked, can be lossy)
    …but Q: what happens with corner points? (e.g. match corner points only if number of point in source/target curves match exactly?)
  • different curve types (tubes, curve repeaters) could be fitted on top of each other

just an idea anyway maybe not fully thought through

This is almost the workflow we have in blender, and i most confess i find it a little bit confusing and non intuitive.

I think the goal should be that anyone with litle to none knoledge of 3d can quickly get the logic behind the workflow just by messing a litle bit with the options.

To keep it easy, add an option that the extracted curve repeater node can be an instance of the tube curve, please.
I guess this is all we really need.
In scene menu there are two objects, curve node & tube, but in view it is only one curve with different menu depending on which object you have selected until one uninstance them.

Even though I like Leonardos initial idea as well, this would be easiest I guess.

The problem with the curve instances is → for instances you can’t change the values individually - so you can’t make a curve with 20 objects and a curve with 10 objects and a tube as instances. It would also not be possible to use different profiles.

Only the curve should be an instance - but the settings should not - thats the problem.

  • Curve (Main)
    • use as Tube
  • Curve 1. Instance
    • use as Repeater
  • Curve 2. Instance
    • use as Tube with other profile
  • Curve 3. Instance
    • use as repeater with other values
  • Curve 4. Instance
    • use as path for lathe…

so this is a hierarchy thing….

You are completely mixing up things, Holger.
Instances are identical objects behaving same.
Instances can’t have different values. Never. You can just transform them individually.

What you have in mind, would be something like a pure curve.
Not a node, not a tube with profile.
The node is a repeater, that takes the curve it is linked to.
You want to be able to assign several independent repeater (for different values) to this curve. And you want assign profile primitive to this curve as well, as much as you want……Ok.Nice.

The profile primitive alone has a height parameter to work for itself and a tick to use linked curve as Loft instead.

A bit more complicated.

But using this curve as lathe as well?
I am not convinced that anything have to be linked to everything. I just tried with curve repeater, radial and array. That mix quickly explodes into thousands of objects.

The curve is already at the moment a - Lathe / trim / split / tube path, you can switch between the tools before validating and always the same curve is used.

So before activating the “green button” the curves are somehow linked to all tools, ONLY the repeater is missing.

So you could theoretically create a Lathe object and follow the same path with a tube.
And that the tube/profile can follow the contour of a Lathe object or a trim contour certainly has its value.
It should also be possible to let follow a tube the trim curves contour.



How can then an EXTRACTED curve from a tube be an instance as a repeater - when the curve is NOT a standalone object?

That’s why I think it only works with a pure curve.
And you would have to tell the curve in advance as what it should be used.

Just one example if it would be possible for the Lathe Curve to follow as an instance curve as a tube - great possibilities.

But Stephane knows best.

True.
One curve/spline/path node without function by itself but with different nodes.

Leos original idea.

Curves and nodes.

Repeater - like actual curve repeater, but linked to a curve.
Profile - like actual tube (could be still a primitive for me, extrusion can be defined by a fixed value, or by curve)
Lathe.
Further more, this curve can be selected to be used as trim etc. or as a stroke for a brush.
It could also be used to deform object.
It could be used like zBrush IMM curve, with open edged start, middle and end object wich are automatically bridged together.

And and and……this won’t happen I am afraid.

So just “extract linked curve repeater” where the curve is linked / not instanced, to original tube curve as a compromise.

A curve where all options can be assigned to, like described above would be very cool though. But very technical as well.

These are 2d TOOL curve, not 3d curve, tool curve is completely off-topic.

An object doesn’t have to live in the scene hierarchy.

For me, this is not off topic when it comes to the curves of the Trim / Split Tool or the Lathe Tool. You need the same curve from the tool for the curve of the repeater or the tube.

Back to initial discussion:

Curve Repeater
Tube

If we just can link Curve Repeater with tube or vice versa to share:

I guess then it’s done.

We need a special link option in scene menu for tube and curve repeater, where one can link multiple tubes or curve repeater to share:
curve type + point position + sharp point + spirale
Radius and twist makes sense to be individual.
Too many override options can become tricky.

This is it for the moment imho.

For more far future, a single path tool, which can be used for strokes, deforming is interesting

Sounds good, similar to what XSI did-

In XSI there is a concept of “symbolic links” to scene objects, which are displayed in italics font in the scene tree to distinguish them from the actual objects. These links could be used as inputs to operators like extrude.

Maybe something like this could be utilized to specify scene objects as the inputs to a tube.

It would require some “special scene tree treatment” though for some objects like the tube. You would for example be able to expand the tube in the scene tree and there would be a “profile curve” slot and an “path curve” slot which each can have either symbolic links to scene objects, or the curve object itself sitting directly in them.

Might be confusing for beginners though, maybe Initially this scene tree mode shouldn’t be active and the curves stay hidden in the slots. The mode could be activated by more advanced users, then the curves could be pulled out of the slots and into the main scene and then recreated as symbolic links in the slots so they could be shared with other operators or repeaters… I know it sounds :scream:

This little chain shows that both curves are linked,
Sharing curve type + point position + sharp point + spirale
Radius and twist can be set individual.

To link, select all curves that should share points.
The “master” sending curve information to other curves is visible, the others invisible. When only curves are selected, the link option appears, or it has a fix place up in scene menu….

Somehow.
Using the boolean logic is pretty well known meanwhile.

just an offset for the curve will do.