Reversible node orientation (flipped) on canvas to untangle wires of feedback type nodes

This concept came to me from an dynamic system modelling tool called Minsky which uses a visual programming type canvas, node and wires interface. Example

Quite often we’ll have one or more nodes in any functional group of nodes where the inputs are being fed from nodes to the right and the output is going to nodes on the left. No amount of rearranging the nodes will avoid wires running right to left. Flipping the node about a vertical axis would put the input(s) on the right and output port(s) on the left.

If the redesign of Vuo results in nodes being asymmetric in the horizontal plane then flipped nodes would be more readily apparent than otherwise, and no additional visual cue would be required. If nodes frames are symmetrical, then a right to left arrow at top or bottom of node could be useful.

Here’s an example of asymmetric node design, design appropriated from an old nord synth app.

or dark GUI:

After pondering on this suggestion for a while, we (Team Vuo) have realized that it takes Vuo in a different direction than we would like. With input from you and others in the community, we’ve been trying to make the UI simpler and more consistent. While the option to reverse nodes might clean up cables on the canvas, it would also mean one more fundamental thing new users have to learn (inputs are on the left and outputs are on the right — except when they’re not). The sometimes tangled cables are a legitimate problem. We think some of the other feature requests would address it in a way that better fits with our goals of simplicity and consistency.

1 Like

With respect @jstrecker, this is one of those features that only those with a strong knowledge would come across and exploit. I can think of many programming paradigms in many languages that are hard to understand, so novices are not taught them, say take functional programming in JS, or recursion. Or in FP in general, say take Haskell, there are very powerful tools available that simplify code hugely, but they can’t be used until you know how to use them. Doesn’t mean that they should not exist would be where I land on that debate.  

I like this FR! Interesting points here. I’d have to agree with Alastair on this one. Mirroring inputs/outputs is not something I would find confusing. I like the depth it suggests. Ports would be clearly labeled, why not? Though of course I’m super excited to see new features.