Store Data/Recall Data nodes
The Reroute feature in Geometry Nodes doesn't greatly improve upon the visual overload of node spaghetti:
(This is an unpolished WIP graph, but you get the point.)
A more elegant solution is the approach in Houdini of Null and Object Merge nodes. Null nodes store whatever data goes into them, and Object Merge nodes allow you to access this data elsewhere in your node tree:
(The path of the ground is defined in the lime square, and each of the grey squares use this data to perform their operations - meshing the ground, and detecting the edges of this ground, respectively. The black circle nodes are the Null nodes.)
This allows you to have little sensible islands of data, and at the end of each island, a checkpoint is stored.
It would also afford more explicit labeling of useful points in your node tree. Finding your "Main Curve" is much more meaningful and easy than finding the specific Resample Curve node which represents your main curve, when there may be multiple Resample Curve nodes throughout your node tree.
A possible solution in Blender would be to have two nodes - Store Data, Recall Data. Store data has one plug in, and a through plug out. Recall data has one plug out, no plugs in. They do not process the data at all, just allow you to store and access it.
The example above stores a curve, but the nodes should be able to store and recall whatever data is plugged into it, in the same way that you can change the data that comes in and out of a Group Input and Output nodes:
It would be extra great (bonus points!) if there were a Data tab in the Add menu that automatically populated with data that can be recalled in the graph.
5 Comments
sory, but JUST MAKE GROUPS
cdn.discordapp.com/attachments/324814768152248323/938366185207119882/unknown.png just... why don't I have this problem? everything is in functions and I know what and how it does...
I’m not sure if you’re being serious or not. That’s significantly worse.
I think this proposal would be stronger if it described how it would work without saying "like Houdini". Features from other applications don't really make sense just copied to Blender, since Blender is a totally different application.
There's a task for something that I think is similar already: T93293: Hidden links
I explained in fairly extensive detail how it could work. I also gave specific examples as to what I think the implementation should be and how it would improve workflow.
I think the Hidden Links approach you linked just replaces the problem with another. Not seeing how things are linked is equally bad a problem as the current overwhelming spaghetti problem. Both approaches result in poor readability of node trees.
The ideal solution would be one that allows you to both see where the data is coming from, whilst not overwhelming the user. This is why I proposed the solution of having two nodes added - Store Data and Recall Data.
You can still see that data is coming from a certain place in your node tree at a glance, but you avoid the excessive amount of wires running across the entirety of your node tree, leaving the thing looking like a spider web.