I’ve been thinking and experimenting for a few days.
I believe that no matter how hard it is to implement hotkey controls, snapping without a hotkey is unnecessary. There are many places where snapping is frankly inappropriate. Anything to do with connecting links - it starts to feel like something that slows things down (at the very least you need to disable snapping when dragging a link).
Almost all my thoughts these days can be boiled down to this short idea. It’s a very cool thing, but the inability to control snapping negates almost any attempt to like it. Snapping in any application is an incredibly complex system with lots of fine-tuning and internal hints; without proper attention to detail and a huge amount of extra rules, snapping in its purest form will give the feeling of a janky, choppy, non-fluid interface.
I use Adobe Illustrator a lot (I master it) and I know very well how Smart Guides and other snapping techniques work there. And I can tell you that it’s often hard to get something to snap to something, precisely because in complex projects, if it worked the way it does now in Gamma, it would become a confusing user experience.
I also have a lot of experience with CAD (Fusion360, KiCAD) and there’s also snapping (especially in sketches). And there’s a lot of ‘magnetic’ logic where you have to be attracted to something in a meaningful way before snapping starts.
I could go on and on. But my thoughts boil down to two things: snapping should be much smarter and have much more internal logic, and snapping MUST be hotkey driven (and it’s not clear how it should work properly: enable or disable snapping on hotkey).
Also, it looks like snapping puts a load on the interface (or something). I’ve noticed that when I select a large number of nodes (I’ve selected operation descriptions), dragging them across the workspace noticeably reduces the FPS of that process, when individual nodes are dragged at the highest FPS.
Though I agree the current behavior of snapping can be perfectible, I would never go back to not using it. Calling this “clunky” or “janky” feels a bit unfair to me.
The fact that it snaps while dragging a link helps to keep things nicely aligned, though maybe the magnet feels a bit “too strong” for cases when you actually do not want a straight line above the pin.
I also noticed that sometimes you don’t exactly control what is snapped to what. For instance, since I’m dragging a node here, I would expect the system to understand that I want to snap to another node, and not try to align a pin with something.
So far that’s the only thing that’s been bothering me, along with the strength being a bit too strong for my taste.
Having it enabled by default without having to use a shortcut is also fine for me, because if we can control the strength of the snapping, I don’t see why I’d want to get rid of it.
My main request right now would be to have a similar vertical align actually!
I’m also a big user of complex CAD (Rhino) where snapping is on another level, but in visual coding environments, snapping is litterally just an aesthetic tidying assistance. It is not a technical requirement for drawing industrial geometry.
I’m glad of something straightforward here in vvvv, to tidy things up with very little annoyance which will always be way more unsignificant compared with aligning all things up manually anyway.
I agree, although I was trying to convey a feeling. Consider it an hyperbolic statement
Yes, that bothers me.
It’s not clear if straight lines are worth these jumps in the interface. The magnet is definitely too strong.
That’s pretty much what I was talking about above. Need Smart Rules, not sure if that’s even possible.
Would be very nice.
Don’t get me wrong. Gregsn does this sort of thing incredibly cool, seeing it through to the end. I’m sure it can be very comfortable. I just want to see a sharp discussion on the subject, so that we are not all satisfied with some half-measures in the end.
I still think the ability to disable snapping by hotkey should be implemented.
Chances are that doing something with the magnet (or its strength) would make it much more convenient. But I don’t think this is limited to what needs to be done in the Smart Rules area.
Then maybe a shortcut could be handy when you want to force the snapping to something different than the default behavior.
For instance : nodes would by default snap to nodes only. If you want to snap to something else, be it a pin or an IOBox, you’d force it with a modifier key. Only then it would attempt to snap to other stuff (and, slightly offtopic, color the guide differently to let you know you’re doing something different)
In the same fashion, by default an IOBox would only snap to pins or other IOBoxes/data hubs, but you could force them to snap to a node if you need to.
Have not thought this through too much tbh, but happy to discussss
I guess at some point we should have a modifier key allowing to quickly enable/disable snapping temporarily.
Still, I would try to strive for a somewhat magic solution that doesn’t force the user to hover the modifier key constantly in order to get the layout right.
Layouting should feel taken care of already for most cases since 90% of your brain should be free to focus on the semantics of your patch, not the layout.
But yeah. Let’s keep in mind that you want to be in control, thus you want to be able to easily overrule the snapping algorithm.
feelings. janky, choppy, non-fluid
My first attempt at snapping didn’t feel this way, but I wasn’t quite happy.
In my first approach, I only did the snapping in the moment when you did an action like ending a link by creating a node.
However, I wasn’t quite happy with that approach as it violated the WYSIWYG idea.
There might be a sweet spot between showing what you’d get and fluidity.
flaws
Please don’t hesitate to post GIFs showing when snapping fails. Point out what you would have expected to happen. Try to be as clear as possible. I might have missed a case. I can understand that sometimes it isn’t that easy to pinpoint, so giving fuzzy feedback is also valid, but the more concrete the better to address the issues.
I’d say there’s a very small group of us early adopters (people using the latest preview versions).
Please, anyone who has been using this for a few days and has experience with extended patching (several hours in a row), please disable snapping. And try to ask yourself - did it get easier or not?
I turned it off a couple of days ago and experienced relief.I guess the main thing that bothers me is the inner fatigue. It’s as if you’re constantly having to tear something away from something and it still doesn’t fit where it’s supposed to. It happens in steps rather than a continuous flow. It’s often small things, but because of the constant flow you get tired at the end of the ‘session’. That doesn’t mean I don’t want to turn it back on and help polish it. I just want everyone who uses it to try turning it off and tell how it feels.
I really like this thing and believe it will turn out well. Please don’t think I’m criticising, I’m just trying to encourage thinking to get a better feature.
Hey, I’m wondering if there might be a way to create a Rule Table that we can adjust? It would be great if there was some kind of language we could use for snapping and playing around with customising the rules.
If there were a bunch of elements in the working area that could potentially interact with each other, and we had a way to describe them, like using rules, magnetisations, capture modifiers, and other methods, then we could really tune this behaviour as finely as possible.
I am with @yar . In its current form it feels a bit intrusive and makes patching too bumpy. For now (until the algorithm is improved) I’d like to decide myself when to snap and when not .
Switching back and forth by changing the setting will be tedious though and
seems to indicate that a modifier key is rather far off.