DocsDo something

Build reusable systems

The second time you build the same thing, stop. A fence with eleven posts should be one post used eleven times, because the alternative is eleven copies to fix when the post changes.

When you need this you are about to build something you already built, or your graph has grown past the point where you can see it.

A part with its own controls

A group is a small graph sealed behind one node. Inside it works like any other graph. What makes it a part rather than a folder is that it declares its own inputs, so the thing using it sees a short list of controls instead of everything inside.

Give the post a Height and the outside world never has to know it is a cylinder with a bevel and a material.

One definition, many uses

Place the group as many times as you like. Every placement runs the same definition, so a change to the post changes all of them at once. That is the whole reason to do it.

It also keeps a graph readable. Eleven posts is eleven nodes on the canvas; eleven copies of the post's insides is unusable.

Do not seat inside something the outside will move

The trap worth knowing before you hit it.

If a group puts itself on the ground and the thing placing it then moves it, the move replaces the placement and the seating is lost. What you get is copies at the right spacing and the wrong height, while the one copy nobody moved sits correctly and looks like the odd one out.

Let the group make the part and let whatever assembles them decide where they go. Seat the assembly, once, at the end.

Controls only reach one level

A placement can set the inputs the group declares, and that is as far as it goes. It cannot reach through into a group nested inside that one.

If a value has to travel further, give the outer group an input of its own and pass it along. That is more work to wire and it is the thing that keeps a system understandable at three levels deep.

When not to bother

A group costs a little clarity for a lot of reuse. Used once, it hides the graph without giving anything back.

Make it a group when it is used more than once, when you want to hand it to someone, or when the thing it does has a name you would say out loud.

Open the editor and try it