Geometry Nodes

Thanks, that means a lot!

1 Like

Wow, looks like we’re never using A.N.T landscape again. Great job!

Question, how did you visualize the attribute in the third image? Did you use a material, or is there finally an attribute visualization feature?

Yeah, I just used a material, but I can’t wait to just be able to press a button and see the attributes on the mesh :grin:

Also, most of the base meshes were actually generated with ANT, and it’s still quite good for getting lots of variation quickly. I get the feeling though.

1 Like


+1 for seeing attributes on the mesh,

Im sure you are aware of this method…

Add a vertex col attribute and copy yr attributes to that, then at least you can view as a material?


There aren’t many deformation options in GN right now, why isn’t lattice working for you? Can you provide a .blend with just the roof shape and the tiles?

Yes, here you go:

Geonodes_Experimental.blend (920.5 KB)

So far I couldn’t find a solution, so I’ve reverted back to using lattice for just a couple or even a single tile at once and fit them to the shape + model them manually afterwards, so this is what it looks right now after several hours of work.

Still happy to find a better solution of course.

1 Like

Once more of the uncertainties are fixed, it should be easier to generate textures for more procedural falloff.

If you can read an attribute with shader nodes, should you be able to output to one? But that’s modifying geometry. But you can already modify geometry with shaders using displacement. Should you be able to displace in the first place with shaders?

There are some weird things that need to be fleshed out before geometry and shader nodes can be used together effectively.

But once they do, the texture system will be much less limited, and generating things like terrain maps from scratch will be possible.


That’s an interesting idea, but I don’t think shaders will ever be able to interact with attributes, as they are fundamentally different systems.
Shaders work for every pixel displayed on the screen, while attributes work for every point on a mesh. Displacement is definitely an interesting case though.

I think that instead, we need to look more at texture nodes, since they work for points in 3D space. It’s gonna take a while before it get’s revived from the dead, but when they are, they’ll be perfect for creating height maps.

At the same time though, almost everything you need to make terrain is already in geometry nodes, just look at my post earlier, the only problem being that it’s a bit more difficult to learn/understand, and isn’t as intuitive.


Tessellating a base mesh with a component might be easier to achieve with the Tissue addon at this point than with GN. It comes bundled with blender

1 Like

You can fill the different objects with an float attribute with different values but with the same name and use that something like a random per island equivalent to drive rotation

I have a bunch of flags. I can add a attribute random to give them a random orientation in X but what I need is to animated them, oscillating left to right, but not synchronized. That is my issue. If I keyframe the attribute random, they will all have a random rotation but they will all be in sync. Any idea?

flags.blend (742.6 KB)

You can randomize an attribute and take it as a phase parameter for a sine that creates the waving motion. So you have one keyframed parameter t and one randomized attribute d and make the flags move with sine (t + d)

1 Like

To generate ‘noise’ in the timeline, I like to take the current frame, add a random float to it, but drive the seed by the current frame. You can just as easily do this with attributes to get the not in sync oscillation. You probably can start by taking the sine of the current frame so they wave back and forth.

@Chanfiroly @Zorro_Weaver

I tried this but it doesn’t work… not too sure what I’m doing here (can’t be good at everything…) :wink:

What I meant for phase was a random attribute, so it’s different for each point

I believe all flags are getting the same random number. You would have to generate a random per flag, perhaps by using the id or some other attribute that is unique to each flag.

I wouldn’t even know where to start…

I think you need two attribute randomizes. The first one will give them a starting location. Change the blending mode of the second one to “add”. Plug your frame value to the second one. This should at least give you a start.

Also: If you plug the your sine value into the seed or max of your random float, the flags will wave randomly.

Good luck!

1 Like

simple and not pretty example of just the asynchronous oscilation in x.