0
$\begingroup$

I'm trying to distribute Bezier curves on a surface of an object using geo nodes (as in the pictures below). But when I tried to randomize their properties, it didn't work unless I provided a constant ID number. How can I generate a unique ID for every instance so that each curve is different?

Random Value>Bezier Segment> Instance on points does not work ;(

It works when I provide a constant ID

By the way, sorry if the question is dumb, I'm new to geometry nodes :P

$\endgroup$
1

3 Answers 3

2
$\begingroup$

Doesn't fully answer your question, but one option is to make a bunch of different looking instances and bundle them together for the Instance on Points' use.

Like so:

enter image description here

$\endgroup$
1
$\begingroup$

If you want fully randomized end points, you can convert some mesh line instances to curves and use noise to randomize them. Use spline parameter to randomize only their tops or bottoms, perhaps.

enter image description here

$\endgroup$
0
$\begingroup$

(Using Blender 3.6.5)

Instances are made to save resources by sharing the same mesh (i.e. points position relative to origin of the instanced object, points/edges/faces connectivity, ...). Only few and global parameters such as origin position in world coordinates, scaling and rotation are specific to each instance, and thus can be randomized. Instances with different shapes/meshes do not fit in this concept.
To achieve full random shape variations of a reference object, a Duplicate Elements node is useful as it provides the Duplicate Index that can be used to "iterate" over copies and to apply individual modifications.

The following Geometry Nodes graph mimics what seems expected from posted views, using Duplicate Elements instead of Instance on Points node. Beware that the resources cost is high, and that approaches such as the one detailed in "How can I instantiate a procedural node group with different parameters?" might be better.

GN graph

1. A generic Bezier Segment is duplicated as many times as there are points in the input geometry (a simple 5x5 grid for the demonstration purpose).
2. Each copy position is shifted by the point position, from the input geometry, sharing the same Index. This position is recovered with a Sample Index node set in Point domain.
3. The End Handle to randomize is carried by the End control point of each curve. Those points have odd indexes. Such indexes are recovered by multiply by 2 (i.e. the count of control points per curve) the copy index plus 1.
4. A random offset, with Seed set to the copy index, is applied to the left handle by a Set Handle Positions node (NB: the right handle position is automatically updated for Aligned handles).

Resources:

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .