UI - wires - Wishlist

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.

That’s it :slight_smile:

2 Likes

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.

1 Like

I added the following YouTrack issues: RH-42458, RH-42459, RH-42460

1 Like

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.

1 Like

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.

2 Likes

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.

Cheers,
Marc

1 Like

I hadn’t, I did, and I am happy. Thanks

Mmm… Lineweight from invisible up to a certain limit, Linetype, Colour. If wires could have custom tags, then also that.

Yes it can be done that way… maybe it’s not necessary to have a shortcut for it… double click, then select and delete is fast enough

Yes but that way you are forced to rewire all the wires. If you could select wires then you could rewire only some of them.

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.

2 Likes

For those following this thread, I released the Telepathy plugin that provides a way to auto-wire namespaced data parameters:

Cheers,
Marc

3 Likes

This looks miraculously useful to me!

Thanks for making and sharing Telepathy.

It seemed that a Knife feature seems like an intuitive request.

Perhaps it just needs a catchy name like “pasta-cutter.”

1 Like