Geometry Nodes

This is one of the most unintuitive things, and I keep running into people stuck at this problem. To mitigate these confusions, I want to add a little tip to the docs:

Before I go through the work of creating a patch, I would like to hear your feedback on my wording. Is it intuitive and understandable? Would this help clear up the confusion?

7 Likes

Cool !

By default, the random value node generates a value for each unique index.
If a single random value is desired, connect a single value to the ID input.

I just removed ā€œin the ID inputā€ , thatā€™s clearer to me, probably because itā€™s still a bit hard for me to think of this socket as if a index node is plugged into.
Adding a screen capture just like the one above would be awesome too !
Thanks for taking the time to work on this !

1 Like

I think itā€™s also a design problem for newcomers as a whole with default socket values, itā€™s present in the shader editor too where texture coordinates are linked to the UV map under the hood if nothing is connected.

Maybe a tickbox in the node properties or even on the UI layout where the user could choose to manually input a value instead ? Or another enum that would change the behaviour between field and scalar values, similar to how map range deals with scalar and vectors ? Automatically create a second node thatā€™s connected to the default socket when creating it ?

Itā€™s very convenient for everyday usage but it adds a layer of magick to the whole thing which might throw inexperienced people off.

2 Likes

Thanks, that works great.

Now I still have no idea how to make each usage of a node network have truly random values. Each object using the geometry nodes looks identical

If I use the node group with instance on points in another node network, every instance looks identical.

1 Like

Itā€™s a little hacky, but you could use the relative location of an empty:

1 Like

That works for multiple objects but not when trying to use it as random instances distributed on points. Shame that we have to add another empty to the scene just to define a position in space. Youā€™d think you could just use the combineXYZ node to define any point in space. Youā€™d also think there was a straightforward ā€œrandom valueā€ node that just worked all the time.

You can expose the seed index to the modifier interface, thatā€™s how I do it

1 Like

But I want to plug something into the seed that makes it always a different seed with every object or instance instead of having to manually enter a seed


It seems hair particle systems donā€™t work properly with the array modifier and donā€™t work at all with geometry nodes


Tutorial Request: Align Euler to Vector for 5th graders - I make it a point to use this node at least once a week so I donā€™t forget how to use it but it always turns out that Iā€™ve already forgotten how to use it.

You can randomise the rotation and scale through the instance on points node. Not exactly what you want but probably the best work around to make it look random.

The reason random value isnā€™t working for you, is that you are only creating one version of the clover, then instancing it. Having truly random clovers for each instance would require a loop to create a collection of clovers, which you cannot do with geometry nodes.

Correct me if Iā€™m wrong but thatā€™s my understanding of your issue.

1 Like

The best way I found to get more randomness into instances is to set up a node tree to generate random objects, create a bunch of those randomized objects and put them in a collection, then instance that collection.

Instances are intended to be identical as much as is reasonable. you can certainly add more random variation in the shaders on instances, of course.

2 Likes

Iā€™d say

By default, the random value node generates a value for each unique index.
If a single random value is desired, connect a static integer to the ID input.

2 Likes

@thinsoldier This is the way. You wanna variate the mesh circle points between certain values, right? All you have to do is create those mesh circles in a collection and instance that collection with separate children on a mesh line and input a random index in the instancer.

Edit
Or simpler

3 Likes

Someone would know if there is some tutorial anywhere covering such interactive constructions using Blender 3.1 Geometry nodes ?

7 Likes

I recommend this very informative beginner-friendly tut by @Satendra_Saraswat which covers doing that type of instancing on geometry or curves:

ā€¦lots of concepts covered in there that can be applied to make castles also (you just need an additional mesh-to-curve with length-resample for the edge-stones and top-stones).

Good luck.

7 Likes

Iā€™ll start learning that tutorial, and will search for those mesh to curve with length resample.
I guess he uses some randomization node for the stones on walls and their variations, or some noise texture input perhaps.

Thank you :slightly_smiling_face:

1 Like

I really wish this project to bring geonodes manipulation into the viewport was revived (ā€œnode toolsā€). We have a robust gizmo system now, letā€™s use it to control node values.

Just look at this example made in Houdiniā€¦

https://twitter.com/ChevryMarc/status/1514262020371230720

10 Likes

Indeed ! Iā€™m sure that will come eventuallyā€¦
Itā€™s hard for me to know what I want the most between having all the modifiers available, loops, physics, better interaction, some expression/script nodes, or all the little quality of life improvement that can be done so itā€™s easier to work with GN. Even just adding all the patches that are more or less in a WIP state in the tracker will allow so much more.
So much things that can be worked on :smiley:
Probably interaction tools will make more sense once the whole system is more polished and complete. Would be sad to have a great tool to manipulate nodes values but still being quite limited by what nodes can doā€¦

5 Likes

Yesā€¦ I think a NODE for ā€œmouse/keyboard/timer/snapā€ event capture with geometry input to capture events in it, maybe be a simpler solutionā€¦ users can create anything else from this.

2 Likes

Yes, plus all this exists in the API already : gizmos, picking, input event handling, etc.

@sozap yes,ā€¦ youā€™re right, we canā€™t have everything at once. I hope I donā€™t come across as the spoiled kid who wants it all ! heh. To be entirely honest, the reason I bring this up once in a while is because I know Blender as a project has often lagged behind in that regard : gizmos are a recent addition and even today most of them are half-baked. I understand in the past the reason was lack of resourcesā€¦ but now that itā€™s not really a problem anymore it would be nice to pick up the habit of developing each ā€œsystemā€ (broadly speaking) with a ā€œusabilityā€ task in parallel, so that itā€™s not an afterthought.

4 Likes

Hahaha ! I see what you mean !
Iā€™m sure devs will take care of that at some point. There is a big inertia between when the idea is exposed and when we see it finished. And between that, devs are working on something else so we may interpret that as they donā€™t careā€¦
Itā€™s like performance improvements after 2.8, for a long time it was like nothing appends, but now we start to see speedups everywhere.
But, Iā€™m sure at some point weā€™ll be able to drop a procedural asset from the asset browser and set all the parameters with interactive gizmos or quick edit mode, all that fit really wellā€¦ but itā€™s a long road to get there :smiley: