Geometry nodes questions

I understand that you feel the need to explain this, but many of us went through that and I assure you I understand when you say you’re a visual learner, etc. I’m exactly like you. Blender helped me make sense of all this math stuff because it actually reflects visually. It’s a bit like a visualization tool after all.

In any case your capture with the modulo was almost spot-on, except you should use a math node, not a vector math node, because the index is just a single value. The result of the modulo can be fed into a switch in vector mode where you input zero in the first field and 90 (or whatever) in the second, and that’s your rotation value that you can then feed into the transform node.

4 Likes

Here, I drew out what it’s doing. Using a modulo set to 3 with your index is basically x/3, where x is the number on the index. So, using it to determine your selection will…

…okay, my math is wrong. Those first two should be 1 divided by 3 should be 0 with a remainder of 1, and 2 divided by 3 should be 0 with a remainder of 2.

I can’t do 3rd grade math!

2 Likes


So i got this and have it all working, with switches

I can rotate all or use the skip row number and i added a linier vs constant rotation as i noticed by accident if i have an index in the accumulate field then all instances snap to the same rotation but if i have nothing then then each rotate around bit but bit? dont know how to describe that but i worded as a linier or constant rotation


Can see in linier mode the rows that rotate are not the same, but constant they are so its nice to have the option for this

But thankyou all for explaining and being patient with me :smiley:

Now i got to figure out the stretch/scale feature

I also want to add options to the array node so i can array in all axis at the same time which you can do with the array modifier


Atm if i have a number in the other axis it applies to the one array, need to workout a toggle so i can have it add a new array outward, so in this example i would have 5 on z and 5 on y

I think i know how to do this so im not asking about that quite yet unless someone has an elegant solution to that. Id want to have this as an array mode or keep the axis values as offsets and adding new ones that expand the array

@Renzatic But thankyou you for showing me the links and examples, i better learn from these. I struggled to find relevant things on google but i probably wasnt wording the search terms quite right to find good results

1 Like

Sure, you could just learn it once and forget it, but what are you going to do when you need to make something similar? Are you going to stumble through the process once again and waste the same amount of time? You have to learn to retain information, even when you’re not particularly interested in it – otherwise, all of our support and dedication is in vein.

There are many ways to save and retain information, even if your brain doesn’t do that naturally. (Which is perfectly normal. Very few people can learn things intuitively without dedication and studying. )

Such as:

  • Taking notes/screenshots for future reference
  • Explaining the process to other people can strengthen your grasp on the subject (for this reason, a lot of users on this forum retain a sketchbook or a collection of tips and tricks)
  • Breaking down a nodegroup and adding annotations/comments for your future self to read

Like it or not, mathematics and art are inseparable. They are both methods of describing the universe, and have a lot in common. This doesn’t mean one has to like math, or that it’s fun for everyone, but it does mean that understanding how it works can be beneficial or even necessary to learning artistic skills. Face it. Art is all about solving problems and overcoming obstacles, even if those obstacles are within yourself.

4 Likes

Found an issue hope its not a blender bug


If i set the selected switch to false rotation dosnt work but if i unplug this then rotation works

Any ideas here should i do this in a different way, i tried adding a value node to t false as 0
And leaving skip rotation on and setting it to 1 or 0 also brakes rotation

By break i mean no rotation happens on anything

30 years of trying all sorts, i cant explain to you more about how my brain works i just know the way it works and the way it dosnt. I only mention it so people can understand why i might be struggling.

The idea with this is i wont need to code similar as this is meant to do all sorts of things as a universal node module/tool

When i want to do some spawning of objects i grab my spawn node when i then want to array some stuff i grab my array node even if i had forgotten how to remake it, it dosnt matter i can just use the node. Thats why im doing what im doing as im not designing this for a specific use im doing for a a long check list of uses as a universal thing, with as many toggles and options as i can get in there

But im also hoping blender dosnt brake everything as that would suck but then i can just keep this version of blender if anything to use with this till i upgrade the nods ect but thats a future problem(maybe)

Edit:
Peoples help here wont go in vain as these nodes im making will be reused 100s of times so thats not a waste. Without the help from everyone i would have half function nodes that would have been used alot less. So nothing is in vain, and yer i can always relook at these nodes and see how i used something. Im okay at reverse engineering but i have to have the thing in order to reverse it :smiley:

Im pretty good at taking things apart and putting them back together even if i dont really know how or why the work. I once took apart a pocket watch and put it back together still working but i couldn’t tell you how the thing actually works and why lol

1 Like

I think my array dosnt have 0 it starts from 1 but other then that i do understand alot better thankyou

Can’t recommend enough: leave concise comments and name things meaningful names (through node/frame/group labels).
Nothing like a pain of having to go back to your own code/nodes and just untangling the damn noodles for three days before adding a minor tweak in five seconds :rofl:

5 Likes

Ain’t nothing worse than someone with sloppy noodle discipline.

2 Likes

No, it’s 0. Even if Blender’s telling you it’s 1, Blender internally considers it a 0.

Well if the number is at 0 or 1 i get no rotation, i understand 0 not rotating anything as its satin no instances rotate but why not 1 should all instances rotate at 1?

Bricks.blend (4.3 MB)
Here is my latest version with the updates and changes to the array node


I added a count for each axis instead of one for all the top amount if used for an offset mode
I have them separate as i couldn’t thing how to havet them both at the same time

This mode, add which i use to add an array per axis or offset

Which uses the single amount value and the offset values

This is this node inside the array

An issue i have is each array axis puts an instance in the same spot
each one is its own thing then joins, what i want to do is have the array not put an instance in the original location then i can just join in the original instance after shown in red


So the array only adds out from the original and then then original remains the original
Otherwise atm i have 3 instances int he same spot

Or perhaps there is a much better way to do this, the goal is to have the array be able to go in the 3 directions according to there count and also have a toggable fill or individual mode
Fill being this


where it fills out all counts from all 3 axis

Edit:


I have the y and x axis disabled the the blend i posted

Nope, because anything divided by 1 equals exactly itself. There’s no remainders in play for the modulo to get a kickstart from, so rotation is always set to off on your instances.

1 Like

Okay well i have a switch for the rotation as you can see but i still also dont get rotation unless i unplug the switch from selection


This switch inside the array node, i guess i need something pugged in to the false but what?

It’s kind of extra busywork, since turning the switch off gives you the same results as using 0 or 1 in the Modulo.

If you really want to have that switch in there, then set the minimum Skip Row value to 2, so you always have some rotation to turn off.

Right but if i turn rotation skip off i get no rotation on any instance so there is currently no way to just have all the instances rotate unless i remove the hole thing from the selection of the instance rotation node.

Thats the issue, i need a way to turn of the instance skip rotation thing so i can just have all instances rotate if i want

The idea is i turn rotation skip off to have rotation effect all instances as it did before i added the modulo stuff

here i have rotation skip off

Here i remove the hole thing from the selection plug

Something is off with having the false of the switch have nothing in it or this is one of those bugs and its meant to work the same as having nothing in selection

Yeah, because without the Modulo in play, it’s rotating all the instances at once. With it plugged in, it’s either rotating per it’s settings, or not rotating at all.

You might want to insert a 2nd rotation node in after the first to apply a rotation to the entire object, rather than per row.

edit: Actually, put a compare node into the False socket, like this…

1 Like

Okay had to put b as -0.5 otherwise it didnt rotate the bottom instance
But thanks that fixes this so i can go between skipping instances with the number or just rotate all as before

Any ideas for stopping multiple instances being placed with the array axis things i have
image
This node


Here red is a per axis array with a count for each, blue is offset mode where it just arrays in one axis and i have the offset values

Tbh i dont know if there is a better way to do is section


Im after two modes a mode where it arrays out individually for each axis like the one on the right
And a second mode that fills out using all 3 axis instance counts like on left.

The offsets i thought was only good for a single axis use but im not sure about that i just have it there just because atm till i think of something better

The main issue atm is these


for each axis place an instance in the same spot so i get 3 instances in the same place at the center of the array. I was looking for a way to make off 3 axis arrays skip the first placement then just join in the input geometry to have the first placement filled with the original
So an array of 5 in each axis only places 4 instances in each axis missing out the first then i just join in the original instance to fill that first placement.