Hi
I am starting this topic to talk about ideas on wire improvements in GH2. Here are mine.
01 - Knife mode - A certain key combination mode to allow the mouse to work as a knife, cutting wires, disconnecting in a faster way multiple components.
02 - Branching - When the mouse is over a wire. A key combination to insert a generic data component, allowing data branching from there
03 - Wire selection - Properties - One click allows to select the wire and modify its properties. Shift click allows multiple selection and modification
04 - Wire selection - drag - Click and drag a wire with a key combination, near an end and you can reroute it. Select a bunch of wires and click and drag, and you reroute those. If you click and drag the right end of one then all the other right ends disconnect and cluster to reroute them.
05 - Wire info display - A general property that displays certain information along the wire such as value quantity, data structure, data type or other. This would be useful for debugging.
06 - Wire detach - Select and drag a wire end with a special key and it detaches it and attaches it to a generic data component. This way you can leave it hanging there and use it later.
Have you tried double-clicking on wires in the last few Rhino6 Wips? It now has automatic ârelayâ insertion. Double click the relay again to make it disappear.
Beyond enable/disable, what sort of modifiers would you like to see on wires?
Ctrl+Shift+Click+Drag near wire ends to rewire them.
Yep, this would indeed be quite useful.
Wouldnât this be part of the rewiring interaction? Either connect a wire to another object or, if no other object is near, create a dummy object to hold the end.
I am in the process of releasing a plugin for original GH that pertains to wiring⌠itâs called Telepathy and was developed by myself and Andrew Heumann at NBBJ in 2015. It allows you to send data to a ânamespaceâ by essentially automatically wiring up the pluginâs special parameter components that share the same name with wireless connections. I will post a link here when it is officially up on F4R, but in the meantime I will say that it would be great to see that kind of functionality in GH2, and could be even better if it were a native data pipeline that you could access inside of clusters or anywhere within a definition.
One thing Iâm trying to keep in mind while designing the bottom-most layer of GH2 is data-inheritance-via-name. Quite often some values (like sliders) behave more like constants than variables and are needed all over the place. Often they are also needed within expressions where adding an additional wire isnât just annoying, itâs impossible.
I havenât decided yet whether letting this sort of data cross cluster boundaries, lot of potential confusion when itâs allowed.
This is great news that itâs already on your radar.
Certainly there are a lot of models out there for doing this in visual programming environments. One interesting one is TouchDesigner, which has a structure that has a root level and an infinite number of âclustersâ within âclustersâ. Clusters essentially have a path relative to root, and you can push/pull data from/to a componentâs parameters by using namespacing with relative paths. Itâs a bit different in that most of these connection paradigms involve writing expressions in a textual properties editor for the component rather than using a wire. That said, any connections that are made through this mechanism appear with dotted line connections between components that have unseen relationships in the visual graph. Itâs not perfect, but worth looking at.
07 - Wire Labels - From an To labels for wires that go offscreen that indicate the name of the component they come from or go to⌠useful for navigation
08 - Custom labels for wires? havenât missed this but itâs a common feature in node graphs⌠may be useful
Node Wrangler for Blender has quite a few cool Node-Rewiring features. Not all of them are applicable to GH but maybe you find this interesting nonetheless.
Already Blenderâs default wires auto-connect with the most plausible Inputs/Outputs when dragging an empty node over an existing wire. I find myself regularly in the situation where an existing definition still needs a bit of refinement upstream (reverse vector, divisions etc.). Here auto-wiring may save a lot of clicks.
I also like how Node Wrangler lets you swap an existing node for another one (turn an addition to a subtraction). Obviously all this can also be dangerous, but one can also wire stuff manually which lets Rhino freeze :o).
Cutting wires (hold Ctrl while dragging over wire)
Wire Auto-Connect. One may even delete the new Node again and the wires reconnect.