Hey all! There was this discussion in the mighty “Node browser improvements” thread about the interaction of dragging links/cables out of pins and IOBoxes, and I wanted to bring this up again.
I think these days all node based environments allow to connect nodes with just one click, by simply dragging a link out of a pin and releasing it over another pin - TD, Blender, Max, Cables, also apparently Unity and UE as mentioned above do this (have not checked myself). Max is doing it quite nicely, as both interactions are allowed (drag link AND click to have the link on the mouse). In Blender also the node browser opens when you release the mouse over a blank area, which would be equivalent to the double-click interaction in vvvv - two clicks saved for every node created from a link.
Not only is it a request because of personal taste, but also something that beginners struggle with as I noticed in courses. The interaction of dragging cables out of pins is so common these days, that it takes several attempts with beginners to teach the way it works in vvvv. Also the sentence “drag a link out of the pin” is IMO a very strong phrase and instruction that beginners immediately get, compared to “make a connection by clicking on the pin to have it on the mouse and then… no no, click just ONE time on the pin and then another time on the other pin you want to connect”.
Or is there an advantage of the way vvvv works in that sense that I am missing?
I think it would make more sense to offer both interactions then having to choose between one of those. They both have their advantages and use cases.
In most cases I think I would rather use the drag and hold interaction to connect pins, because it is fast, simple and convenient. But if I for example wanted to see and explore all connectable pins in the whole patch while being able to navigate by zooming and panning the patcher, I would rather attach the link to the mouse by clicking the pin once.
Check it out in Max how it’s done over there, it is possible to offer both possibilities at the same time. They still don’t highlight connectable pins when a link is attached to the mouse and this is where vvvv would shine offering both interactions.
Sorry for going a bit off topic, but I wanted to express a few thoughts. First of all, yes, there are UX problems in our software. These are systematic problems, often inherited from the legacy. There is something weird with clicks almost everywhere, more than half of the clicks are just unnecessary.
BUT! The latest “for newbies” change really broke the UX. I still find myself struggling with not being able to create an exit above where I started patching. This is especially noticeable when you’re trying to get connection out of a region. It was a momentary decision, which is now legacy in itself, but it significantly changes the UX in a way that is not for the better. I think we’ve had enough of momentary decisions. What about “fixing” this stuff back for example?
The development team used to be much bolder with UI /UX. Remember those weird header-input-pins in the early prototype stage? Back then, VL was just part of Beta. The developers had the audacity to redesign whole chunks of the UI / UX.
My suggestion is that we need to organize some sort of UI / UX commission, forum, conference. Maybe even invite third-party specialists. Just to understand the horizons of the problems and lay the groundwork for future improvements.
I don’t understand why there are no multiple input connections in Gamma? Why can’t we create nodes with complex interfaces inside of the node, when half of the tasks would be simplified many times over if it were possible to create nodes with graphical interfaces? Why can’t we improve contexts with more appealing canvas splits? Do we still need the application/definition or is it possible to convert this to a more flexible concept? For example, “functional” and “object-oriented”? And there’s a whole list of “why’s” that can’t be solved one by one - we need a systematic approach. I realize that these are very complex tasks with far-reaching consequences, but nevertheless the speed and quality of development could increase dramatically by implementing them.
OK, but then we should continue discussing it over there. I’ve also written about that case there myself.
Otherwise it would be good to stick to the topic… what do you think of the suggestion in this thread?
And in fact, I saw a problem there almost immediately and suggested a more adequate solution for that problem. But the implementation of this is much more complicated, I realize that. Moreover, it’s a far-reaching change in UI / UX in general. But without it, there will be such small changes that constantly break something and the search for an edge case will turn into a constant work. What I’m saying is that without a systematic approach looking for deeper usage relationships, no real improvements will be made, and only more options will be added to suit different people’s tastes. I’m intentionally being a bit dramatic, but let’s try to look at it from this perspective.
I’m pretty sure dragging and dropping pins won’t improve the interaction experience. At the very least because I keep forgetting that there is an option to create nodes after patching starts. What to do in such a case with this mechanic? Moreover, the developers quite rightly see it as a convenient way to search for middle nodes based on possible inclusions. But I just can’t get used to it.
I like patching connections, if only because sometimes a connection needs to be dragged through several screens. Then you have to provide for “camera targeting” on the canvas right away. That’s the case with click-through too, by the way.
And all I say is that dragging a link out of a pin feels also very natural. I’ve seen so many people already trying to do this, because it is the way literally all patching-environments work these days.
@chk You are probably right.
To do this we need to make the pins look different, bigger. We also need to implement the mechanics of magnets or “throws next to the pin”. This pixel-hunting even without dragging is tiring at times
How far you can start grabbing and how far you can drop the cord?
If we start grabbing above the end of the node will it considered as a moving of node or starting a patching?
What to do if nodes or even inputs/outputs intersects by the active region?
Should there be any difference in behaviour if you link up or down?
Should it make a difference if you connect IO, node pins or splicer / accumulator / boundary ?
When should it be dropped to connect to the boundaries?
Shoul it be connected to the pin or to the boundary?
I would also love to see improvements in this area.
Direct dragging of connections like in pretty much every other node based tool would be very much appreciated here.
And it hasn’t to be either-or, Houdini does it both:
Click on a connection and let go and the wire sticks to your mouse pointer, which is fantastic if you want to make connections to further away nodes or insert in-between points.
Click and drag works as well, and is way more effective when making many connections to close-by nodes.
This way, you have it all and the workflow improves immensely.