Routing and node clean up?

Is there an equivalent to Touch Designer’s “Touch IN” / “Touch OUT” nodes for moving data and cleaning up networks? The pic is a highly simplified example. In a more complex setup being able to route signals without needing to noodle across a huge network is very nice.

Is the routing dot the closest thing we have to a Null node?

I may not completelt understand you graphic but if you meant this for group intput/outputs… you can use this nodes multipe time to not “cross” the lines between nodes.

You’re refering to “Portal Links”, and it’s something still on the devs table.

For now, you can only use the reroute to minimize “link flooding” your nodetree.

2 Likes

That write up seems like over-complicating things.

I hope we get simple “nodes” and not whatever this “links” concept is.

Just need basic in/out routing, like setting variables.

Not sure if it is “good practice” but I sometimes use save named atributes to send values from one side of the node tree to the other.

But yes there are other connections in-between.

It’s not alwasy easy to make complex things easy (if even this is possible) so this “writeup” is exploring the possibilities of node connections to not overlap too much…

But that’s a general problem in code (and so visual code and also data descriptions ): referwnces in th document “linking” elsewhere and mostly solved by refactoring/modularization. So any “named” reference has also to be found by the user… so a direct “drawing line” has to be tracked or the name had to be searched…

(Sadly i still not see what the “direct” verseus “routed” thing might be… if something connects to different things in the settup then may some “rearangement”… help to overview this better… or not.)

Direct = plugging the noodles directly in.

Routed = plugging into a node that’s designed to carry the data plugged into it to another place

In the pic:
Direct = the movie file node is connecting directly to 3 nodes.

Routed = the movie file node is connecting to a “Touch Out”.

Touch Out is named (set to port 9000).

Any “Touch In” set to the same name (port 9000) will spit out the movie file node output.

I can rearrange all day but when I’ve got noodles crossing it is not pretty. I’ve got one network with a bunch of settings from different nodes I would like access to on the modifier panel so I run noodles back to the Group Input node and I get access but now I’ve got spaghetti.

Of course I just realized I can use multiple Group Input nodes and put them where needed but I have no idea if that impacts performance, or what… and it is so illogical I’m surprised I even thought to try it. Doesn’t fix my other spaghetti messes, though. And still struggling with visual feedback.

I think you’re using the wrong paradigm when working with nodes in Blender…
It’s probably because you started using nodes in some other software, and now can’t really transfer that logic to a new system.
It happens, and unfortunately you need to adapt to the new system.

And to be honest, replacing links with more nodes is not a good solution either, as it will still clog the node editor with superfluous information.
But if you want to debate this, you can reach out the dev team and talk about the subject.

1 Like

What paradigm should I be using? I’ve used tons of node-based apps and not struggled with any of those like I am with geo nodes. Except for PureData. That one is rough.

I look at some of these complex node builds you guys put together and the first thing I think is “holy crap what a mess… you need routing nodes”.

If you guys don’t get it you don’t get it, its all good. I was just hoping/looking for a way and clearly you all hate me for it so I’ll leave it alone.

It’s not hate.
But I can tell you that I’ve been using node systems for more than two decades, and I went down roads like that before, just later to see how I failed to see the big picture.

1 Like

Just the fact that my diagram confused other posters in indicative that there is something much different in the mindset. This is really a minor issue compared to what really kills me which is a lack of easy visual feedback.

Diagramms on its own mostly have no real meaning… if you have only two nodes then you already can place both of them everywhere on a canvas which by itself means nothing… so just showing a diagram means nothing if the viewer does not know the semantics.

Also: connecting anyone of them or nameing their slots is not really anything different. It’s just "seeing: the connection by a line is easier to follow then searching any reference…

That’s the reason why in modern IDE’s you can click/jump on references to got to the according declaration or definition of any procedure/method or even have a “preview look” of this. Also from programming: a long time ago there was the “paradigma change” from spahetti code to moduls with proper naming and API. (Such a “jump” feature might be helpfull but this is not the place to discuss about that.)

Also there is nothing illogical about using a group input or output node more than once… also according performance: they are only references to the according input or putput slot (you can even hide unused slots…). Further comparission with code: function parameter can be used everwhere and there are also mutliple return statements possible.

It seems you are overthinking this… like people fighting about the “right way to write in some computer languages”… ( there are code formater for doing so) or even worse how to “correctly format any comments” to make the code beautyfull…

I’m a bit puzzled when you say you…

then you may simple show some of your geometry nodes setups so that maybe someone can give you a hint ??

Because if “we” do not get it then the “explanation” might be a little… bumpy (?) …
( so the touch in and out are greenish and show now… what exactly ?? every one has the sam econfetti thumbnail… so you know that node/noodles… one who do not may not get it… also if the settup is nigger than a page then you have to memorize which one belongs to what and can’t follow any path… :person_shrugging: )

( And please just do not start with that everyone–hates–me crap… “we” do not know you enough to do so… and/or does have better things to do with our time :stuck_out_tongue_winking_eye: )

 


Résumé :
If you want some tips about some “clean” node setups in geometry nodes of blender then you may simple talk about that and not about how this may be done in other apps… because this is not the other app…

Blender is the only one with “Geometry Nodes”. I don’t consider Hoidini to be “Geometry Nodes”. Touch Designer certainly doesn’t have them. Just because I’ve used other nodes based apps doesn’t mean I’ve used other Geometry Nodes. I am very good at texturing in Blender with nodes but that rarely gets overy complex.

if the set up is … WHAT ?? What’s that next word?? Typo, I hope??

I never said that. Thanks for putting words in my mouth.

It is your words and the way you respond that makes me feel you hate this idea.

That’s great to know but I don’t know that Blender is working this way. There’s nothing telling me that. For all I know bringing in Group Input is loading my initial geometry into the network twice. Blender programming hasn’t always been good at doing things in a smart, logical way. I’ve been here since 1.4/1/6 and I’ve seen a lot of odd things come and go so I play it safe in Blender.

Let’s try it this way… This is an unacceptable mess. How do I clean it up? This isn’t even that complicated.

My guess is this is totally acceptable for you.

The green is just to highlight the nodes. I can make them any color I want. Following links around the nodes isn’t as difficult as you make it out to be. It is very easy and simple.

The difference in mindset means you don’t see the need for what’s happening in the diagram. It is not an insult, just an observation.

This is more like setting a variable if you want to get into code comparission. I can use that variable in any function or class without having to retype (connect a noodle) the data in the variable every time I want to use it. Or, sure, like a function I can call any time I want, anywhere within the code without having to retype it all. Yeah, I get it, that’s exactly what I want. A variable for data types that lets me access that data anywhere without needing to reconnect to the original source.

In that case, you can just duplicate the GroupInput node and hide unused sockets… With some reroutes and some frames, it’s a pretty simple setup:

With better design.
There’s no reason to have two two noise nodes and a mix when the only deviation is the W parameter. Instead of mixing the noises, lerp between the results of those arithmetic chains and feed the result into W. You can also label the arithmetic nodes for their purposes then align and minimize them to create neat blocks. Another general principle of node layout is to avoid crossing lines with reroutes.

Blender is perfectly capable of having neat, maintainable, and well documented node trees using the tools it provides. I think the most important tool it could provide for further reducing spaghetti would be an expression node like Houdini has vex.

It’s pretty uncommon to have noodles running through the entire node tree, because they’re either :

  1. single values, either piped from the modifier interface (through a group input node) or contained in a node group
  2. fields you can store on geometry and recall with a named attribute node

Neither of those requires long noodles cluttering up the workspace.

Portal nodes would be nice, as an additional convenience. But their absence should not hinder you in any way

Depends on what you call it…

https://www.sidefx.com/docs/houdini/nodes/sop/index.html

So you are more interested in my quick typing abbilities ?

Whatever…

Your image… you did this on purpose did you… ??

It seems this is 4.x.y… i’m only on 3.6 and it may not fully replicate your setup (because it’s also unreadable small):

One could reposition the nodes bit nicer so the overlaps aren’t that big…

Or use collabsed Input nodes to make this a bit more clearly arranged…

But you may not be convinceable… ISK… :person_shrugging:

Yes I did this on purpose. This is how I built the group. By design, on purpose. I did’t slap this together for this post… this is a group I used to loop the noise.

At the time I did not know you could bring Group Input in multiple times.

That last version is close to acceptable.

I would still like to cut the number of noodles.

Doesn’t matter if you think it is needed or not, the indication is something of the sort is being worked on. It is just not here yet.

This is beyond me. I have no idea what you’re saying here.

How do I mix between the two if I don’t have two?

If you read this as “everyone hates me” maybe you need to look at yourself. There is no connection between everyone hates me and everyone hates me for this one specific thing. I did not say I think you all just generally hate me which is what you are implying. You can truncate my sentence all you like to say what you wanted it to say. That’s not difficult.

I use Houdini and I would not say they have “geometry nodes”. They have nodes that create geometry, sure. But it is all nodes.

And you want to talk about Houdini? Let us talk Parameter Expressions… That’s exactly the kind of thing I am asking for, except less powerful and in node form.

Houdini: ch(“/obj/lamp/tx”)
Touch Designer: op(‘container1/constant1’)[‘chan1’]

ISK ?? What is that ??