Explaining the Buffer Loop

Hack a loop in Geometry Nodes

Welcome to the 1st issue of The Blend. Each week you'll get an in-depth Blender guide—plus some extras.

The Blend aims to become the world's #1 Blender newsletter—thanks again for joining!

Loops Image

From Blender 3.4

Loops in Geometry Nodes.

Something that everyone's been wanting for a long time. 

Now, it's possible—with a simple hack. A trick called a "buffer" or "feedback" loop.

It's easiest to understand it by doing it.

Open up Blender 3.4 beta (I couldn't get this to work in 3.3, though it does work in 3.1.)

Add two cubes. Name one "Master" and the other "Loop."

Now for the nodes. Give each cube its own Geometry Nodes group—name the Master one "Master" and the Loop one "Loop."

Now comes the cool part.

Open up the Loop group and delete the Group Input node. Add an Object Info node and switch it to Relative. In the Object box pick the Master object.

Connect it to the Output.

This is simple. It simply takes the geometry of the Master object and outputs it as its own geometry.

Next go to the Master object. Add an Object Info node, set to Relative, and pick the Loop object.

Add a Join Geometry node between the Group Input and the Group Output. Plug the Object Info into the Join too—but (this is important) make sure it's below the other input.

Your 1st loop is done! Simply select the Master cube and move it around—it should leave a trail of cubes behind it. You're painting cubes!

You can hide the Loop object—we don't need to see it anymore.

Wondering how it works? Here's the details:

  • The Loop object outputs the geometry from the Master object.

  • The Master object takes its input geometry (a cube) adds the Loop geometry and outputs that.

  • The Loop outputs that.

  • You move the Master cube a tiny bit. The Master adds the Loop geometry onto that moved cube.

  • The Loop outputs that.

  • You move the cube a bit more.

  • The Master takes that, adds the Loop geometry, and outputs that...

This entire process repeats every time the view updates (when the frame changes, or you move the cube a tiny bit more.) It happens extremely fast, of course, so all you see is the end result.

Cool, right?

But it'd be nice to have a way to control it.

If you build this little setup, it will reset the "cube painting" every time you return to frame 1. On any other frame (but not frame 1), you'll be able to "paint cubes." Try animating the cube!

Node Setup Image

From Blender 3.4

Great Tutorials

There's not a ton of tutorials on this yet, but this one from Entagma has a very good explanation of the loop.

News

  • There's a new branch of Blender (3.5 alpha) that actually has a loop node built in—I recommend you give it a try! It's not supported yet in any way, but it's cool for experiments. Grab it here—https://builder.blender.org/download/experimental/geometry-nodes-simulation/

  • Blender 3.4 will have a Viewer node for previewing geometry and attributes: https://wiki.blender.org/wiki/Reference/Release_Notes/3.4/Nodes_Physics

Thanks for reading, and have a great week!

Know anybody who likes Blender? It's be really helpful if you'd forward them this email. Thanks!

P. S. Have a topic you want covered? I'm always open to ideas—reply to this email with your suggestions!

Reply

or to participate.