Grasshopper

algorithmic modeling for Rhino

This is a feature request. I'm not requesting clusters but I think I need to mention them.
Grasshopper used to have clusters... in my opinion they were fantastic, not because they were well implemented (sorry David) but because I thought it gave a glimpse of what could happen in the future. Being able to construct and collapse pieces of the process into your own reusable components is a huge time saver and it also could promote custom component sharing.

OK I said this wasn't about clusters but it is almost the same. What if you could drag and drop definitions into the canvas? Something like document merging but with two simple changes.

1.It drops where you want in the canvas
2.It is automatically contained in a group

With this feature the user can start to build his own library of reusable generic processes. Form explorer he can and drop them in the canvas like components but instead it creates groups.

In the same logic the user should be able to save a group as a definition. Some useful features could be added later to this, for example if two or more components inside the group are connected to one component outside the group the definition is saved with a place holder of the appropriate type, in order to preserve the connections.

The sharing could be centralized and the most used/downloaded definitions can be later transformed into proper optimized components.

that's it, should be simple yet very powerful.

Views: 1366

Replies to This Discussion

Hi Frane,

I was actually thinking of removing all the drag+drop options for ghx files. But that mostly because the options that are available now are somewhat pointless. I definitely don't want to pop up a dialog when a file is dropped onto the canvas. How about something like this:


Do note that importing as a cluster means the file needs to have predefined input and outputs, otherwise the cluster will be just an unreachable box. I can infer input and output parameters when a collection of objects is clusterified, but not so when inserting a new document.

--
David Rutten
david@mcneel.com
Poprad, Slovakia
This looks very promising.

It may be worthwhile to mention that in Windows 7 while running dual monitor, sometimes what one drag and drop a file to GH window, the popup box will be hidden behind the main window, and is unable to click okay (say.. open file).

The mock up you just made seems to reduce the procedure by one step faster.
Hi David.

Fantastic. I wasn't thinking about clusters anymore... but that's even better. Could it be that when you insert as a group the components are actually there but when you insert as a cluster it is an XRef to another grasshopper file. This could improve collaboration for large projects.

Of course there should be special components for input and output to define a cluster... for that you could use any of the geometry and primitive components and allow to define them as input or output in the contextual menu. They could have a special color or icon in that case.

There could also be a new tab with the most used groups and clusters... and definitions could have their own icons... hehe :) one step at the time, for now as I already said: Fantastic.
Here's just a thought on inferring inputs and outputs from inserting from external documents. You could load the file and attempt to detect components that are giving an error because they do not have proper inputs or outputs.
Hi Shawn,

a loaded GHX file does not have any connections outside of that file. There's nothing to go on.

--
David Rutten
david@mcneel.com
Poprad, Slovakia
Yes, I know, but if you create a component that has no input that is expecting inputs, it will generate an error. You would expect to have such components in files that are seeking additional inputs from an external source. So rather than focusing on the connections that exist, as is the case in clustered components, you would be looking for components that are data starved into error conditions. Supposing you accomplished this, it might take care of inputs, but not outputs.

It could be a messy affair attempting to put intelligence into attempting to guess what the user wants and parsing these files. A much simpler solution would be to request inputs/outputs from the user when saving the .ghx.

I'm not exactly certain what the difference, functionally or otherwise, between clusters and external .ghx files would be. Are you designing cluster to be live connections to their definitions or static as custom components currently are? ... or perhaps there will be an option to "disconnect" them as standalone entities. I can see value in both live and static versions.
Ah, good point. I'll see what I can do. You're right about the outputs of course. Since Clusters will be 'editable' from the canvas, it's not that difficult to insert an external file as a cluster, then open it up, hook up your outputs and 'save' the cluster.

There should be no functional difference between clusters and external files. The new cluster implementation actually maintains an second GH file inside of it, which gets solved as part of the main document. It is possible to nest these clusters to any desired depth.

At the moment I haven't yet hooked anything up that would synch clusters to files on the disk, but this is actually not that difficult once the basic functionality is up and running. I already keep the Grasshopper toolbars synched with the UserObject folder contents, so this would just be more of the same.

--
David Rutten
david@mcneel.com
Poprad, Slovakia
You will have to find a way to differentiate between components that are data starved due to a lack of actual inputs as opposed to those that have input wires and are in an error state because of components upstream. I guess that would mean you may have to focus on those in this condition that have no wires attached.
That's easy enough. If a parameter has no wires going into it, it doesn't contain persistent data and it isn't optional, then it becomes a cluster input.

The problem is detecting outputs as you so eloquently stated.

--
David Rutten
david@mcneel.com
Poprad, Slovakia
Hi David
I didn't realize you were already working on a new implementation of clusters... Even better then. I think it would be powerful to have references to external files. This way you can easily distribute work for large projects and it improves collaboration.
There should be a manual "Reload" or reload every X seconds, that detects if there are any changes and reloads. And if the cluster can't find the file it should ask for its new location.
These options would be quite helpful, or perhaps to have tabs to alternate between open GH files, so cut and pate code would be easier.
Hi Charles

There is already something like that in the upper right corner of the grasshopper interface. You can click on the name of your file and select another opened file you want to display.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service