Grasshopper

algorithmic modeling for Rhino

(Edit. David sez: Please append your (well explained) ideas/suggestions/wishes. I don't care much for what you want, I care why you want it.)

Perhaps this topic has been covered recently, but I don't see any active threads.  We're looking for a plugin project and I'd like to get some feedback from the power users before choosing something.

So...

What is missing from grasshopper?  

What would you like to connect to that you can't already connect to?

What kind of bottlenecks do you run into?

What secret wish do you have for Grasshopper that doesn't even seem possible?

What project have you been meaning to undertake but haven't had/won't have the time?

Just trying to brainstorm a few ideas here.  There are so many great and useful plugins out there, it's hard to discover the gaps anymore.   

Looking forward to your thoughts!

Cheers,

Marc

Views: 21370

Reply to This

Replies to This Discussion

Great!

Just a few large and small wishes for useful and/or fun functionality, in no order at all:

  • Rigid body simulation, preferably 3d.
  • Make2D, outline, decorative graphic curvature/face normal accentuation - fast and with flexible options for meshes.
  • "Project curve to plane" with the parts obscured by a list of brep/mesh obstacles removed.
  • Adobe illustrator (svg?) export with lots of options regarding visual appearance and document structure.
  • Vectorisation of bitmap images.
  • Reconstruction of perspective and (textured) 3d geometry from single/multiple image/video feed.
  • Drone/UAV communication and control.
  • Ability to kill the Grasshopper process without killing Rhino.
  • A more powerful Esc-button.
  • Industry leading, robust, fast, native GH, never failing offset/fillet curve.
  • Return of the Lolcats.
  • Javascript component (ok, Python seems nice, but I still miss JS).
  • More exotic DateEx (for those of us driving Mars rovers with GH).
  • Enable/disable components in groups (with bool input?).
  • Data dam controlled by bool input.
  • More file import/export, be it 3d geometry, raster image or other formats.
  • Clothoid curve type.
  • Animated wires when data changes and solution recomputes.
  • "Select orphaned components", that just litter the canvas without contributing to the solution.
  • Minecraft export/import/realtime interaction with server and/or single player map.
  • Smartphone/tablet/web app with automatic remote control panel pairing.
  • Treemaps.
  • All relevant data types and components generalised for n dimensions.
  • GH antivirus (we'll get there eventually).
  • A visual drag-and-drop path mapper.
  • Auto arrange selected components neatly.
  • "Convert curve to wire" for decorative code layouts.
  • Choice to use any bitmap to represent a cluster on the canvas.

I realise a lot of it would have to be implemented GH, and not a plugin.

Maybe some of the above already exists in the overwhelming fauna of plugins? If so, please tell me.

/ola

  • "Project curve to plane" with the parts obscured by a list of brep/mesh obstacles removed.

This seems totally do-able using existing RhinoCommon tools. Can you elaborate a bit more on how exactly you want this to work?

  • Return of the Lolcats.

All I need to put it back is a giant textfile with one image url per line. We might be able to crowdsource it if you want.

  • Animated wires when data changes and solution recomputes.

Like, animate them during solutions.. or?

  • "Select orphaned components", that just litter the canvas without contributing to the solution.

What is the metric for an orphaned component? Pressing (and holding) Ctrl+Shift+A for a while allows you to select all objects connected to the existing selection. Ctrl+Shift+I inverts the selection. Del removes the unconnected components.

  • Treemaps.

?

  • All relevant data types and components generalised for n dimensions.

?

  • A visual drag-and-drop path mapper.

?

  • "Convert curve to wire" for decorative code layouts.

?

  • Choice to use any bitmap to represent a cluster on the canvas.

You can drag+drop any 24x24 pixel image from Windows Explorer onto any component and override the icon. Is that what you're after?

--

David Rutten

david@mcneel.com

  • "Project curve to plane" with the parts obscured by a list of brep/mesh obstacles removed.

This seems totally do-able using existing RhinoCommon tools. Can you elaborate a bit more on how exactly you want this to work?

Yes, that one is on my own to-do list. I'm going to make it as a hidden lines elevation tool to prepare the geometry for presentation in autocad/illustrator.

  • Return of the Lolcats.

All I need to put it back is a giant textfile with one image url per line. We might be able to crowdsource it if you want.

I really liked having lolcats available on the canvas, but completely understand the volatility of cat image sources on the web. I could start a thread on the forum to compile URLs for the Image gallery component.

  • Animated wires when data changes and solution recomputes.

Like, animate them during solutions.. or?

Yes. To visualize where things are happening and what is already solved. Could be useful for showing new users how the definition is solved. Or if there is something constantly updating, without it being obvious in the preview.

  • "Select orphaned components", that just litter the canvas without contributing to the solution.

What is the metric for an orphaned component? Pressing (and holding) Ctrl+Shift+A for a while allows you to select all objects connected to the existing selection. Ctrl+Shift+I inverts the selection. Del removes the unconnected components.

Oh! Yes, that solves it for me.

  • Treemaps.

?

Generation of treemap geometry, based on a datatree structure and its content. http://www.cs.umd.edu/hcil/treemap-history/

  • All relevant data types and components generalised for n dimensions.

?

I'm happy with 4d coordinates, vectors, polytopes, transformations, boolean operations, intersections with 1D-4D objects and projecting down to 3-space. Completely generalising everything might be overkill, I admit.

  • A visual drag-and-drop path mapper.

?

To visualise datatrees and allow an interactive re-arrangement of paths and data by dragging and dropping (and cutting, etc). It could help new users understand the datatree concept. And maybe useful in debugging very hairy trees.

  • "Convert curve to wire" for decorative code layouts.

?

The effect can be simulated by placing a vector image of the desired wire shape on the canvas, adjust component placement, and turn on hidden wire display. Probably a bad idea.

  • Choice to use any bitmap to represent a cluster on the canvas.

You can drag+drop any 24x24 pixel image from Windows Explorer onto any component and override the icon. Is that what you're after?

No, I'm thinking more like free-form cluster anarchy for the people. Like early 2000s winamp skinning. But, mentioning winamp skinning, I realise it would cause more harm than do any good. Forget it.

Path mapper is such a powerful way of organising data. It would be good if it could also manipulate and map from the data too. Below shows an illustration of how this might work.

Also in no order, and possibly some licensing issues for one or two, but:

  • Implementation of more computational geometry algorithms & routines that can be found in other libraries such as CGAL or OpenCASCADE - eg, polygon Straight Skeletons, 2D & 3D Minkowski Sums, Convex Decomposition of Polyhedra, Surface Recomposition from Point Sets, Polygon Partitioning, and so on. Some of these require specific data structures like half-edge meshes, which are in the process of being developed in plugins like Plankton.
  • Better Rhino-viewport visualisation of tree/branch structure for all types of geometry (ie, like "Point list" but with more tree-structure information)
  • David has written about his ideas and attempts to get something like SolveSpace into GH, but it would be fantastic to access a geometric constraint solver a la what you find in ProE/Creo/SolidWorks/Siemens NX/BRL-CAD.
  • Robust CurveBoolean operation

One (reading Ola's list) very simple and humble need that I have:

  • Approximation of remaining computation time to complete the solution.

Or something similar that would indicate the current phase of computation, e.g. percent value based on the number of elements that are yet to be processed. With RhinoScript, this was the first thing I usually wrote to the script, as then you could see the overall progress. But with Grasshopper - make one wrong wiring and you could end up waiting for hours (without any clue or visual feedback on how long it would take in the end).

This could be coupled with Ola's suggestion for a more powerful ESC as an emergency exit for a solution.

-toni-

Add my voice to these suggestions & programm let ask me ( if it taks very long time) you want to compete or not ?

if i choose no so thse componts 'll disable 

if i choose yes complete ...

somthing like that i feeling lost when I worked in larger definition are need more time to complete or it have error from beginning to saving time

Well … I’m an engineer (Architect) and therefore I’m after AEC matters.

I could focus to the narrow aspect of things and suggest “focused” GH improvements … but there’s a far bigger image out there (currently within a fake euphoria framework - blame China/UAE) and a potential decision about doing/developing this or doing that … well …anyway … read and enjoy.

 

AEC matters: The good, the bad and the ugly.

The bad news: Rhino is NOT suitable for the job (although some use it … but only in the sense that people use Modo for the so called “hard modeling”). By job I mean things up to shop drawing level + specs + you and me (we call it Final level) – nothing to do with sketches and outlines of some abstract “schematic” topology. 

 

The ugly news: The so called Design-Construct approach gains exponentially momentum especially in countries the likes of China/UAE/BRICS (95% of the whole AEC activity worldwide happens there). DeCo means: AEC engineers deliver some kind of study in a preliminary level and the main contractor splits (outsourcers) the job and assigns the study completion AND the construction to various sup-constructors. That thing appeared first – in a large scale  - in Dubai 15 years ago. This means that the era of Sergio Pininfarina is over and out: welcome anonymous Toyota designer. In plain English: days of construction corporations fast replacing practices. Dead men walking.    

 

The good news: All AEC related apps (Revit, AECOsim, Allplan and the likes) are in a lethargic state as regards the brave new world (based on the archaic level driven organization schemas etc etc). Of course they all claim the exact opposite and point that support BIM (nobody mention PLM) better than the other guy. But the 21st century – helped by 2 forthcoming unavoidable crisis (a) about shortage of water (b) about transition from carbon to hydrogen economy – isn’t about bureaucracy: think cost/resources optimization and “fitness” rather than China/UAE type of liquid trend. Days of euphoria fast approaching the Wall.


Top to bottom and visa versa.

 

Old days Titans (Oscar, Mies, Walter, Pierre Luigi, Frank, Eero, blah blah) outlined things (mostly using crayons) and the rest were struggling to translate these in reality in an one way vector like process : Top to bottom that is. These days the inverse gains momentum : when in the whole consider the part … validate … redo … validate … redo. This means bottom to top geared with top-to-bottom. In plain English : child imposes rules to parent and parent imposes rules to child. This means classic MCAD feature/history modeling (CATIA/NX/MS). This is something that Rhino can’t do (not to mention that Rhino is a surface modeler – a rather critical fact).


The parts that are bigger than the whole.

Go there ( http://www.behance.net/gallery/2885057/a-myriad-of-cables) are inspect the whole thing: it’s a parametric nightmare made with the other guy (Generative Components – slower than a Skoda + bugs + why bother?). But the whole (masts and membranes and the likes) means nothing here: focus to the details that are critical for connecting this with that. Complex feature driven solids that are made with internal (on a per se basis) parameters (like fillets required for casting or radius for cable anchoring) whilst they comply with external rules/parameters (cable angles, topology clash issues etc etc). So the whole outlines possibilities … and the part either can follow…or the part must change…or the whole must change. Can you do that with GH/Rhino? And if not what’s missing?  (lot’s of things to be honest).

Some other "similar" things:

The narrow picture.

 

I agree with what others already said and with pretty much all Ola’s points – especially the visual drag-and-drop path mapper (i.e. a visual data manipulator so to speak) and the enable/disable components in groups capability.

 

Some other suggestions:

 

  • A multi canvas capability. As things are right now…it’s like working in Rhino in one view (rather unsuitable I guess). In fact …since overlapping views they don’t work in Rhino…well…you know, he he.
  •  A working auto profile arrangement capability (non twisted Loft/Sweep and the likes). Worth 1Bn dollars that one.
  •  Ability to locate components that caused this or that in the Rhino view: meaning a 2 way communication approach : GH makes things happen in Rhino and things can indicate their cause in the GH canvas.  
  • A robust collection of components that bake stuff in nested blocks (emulating some primitive assembly/component way of thinking). Why may you ask? Well … the whole objective is to talk to CATIA (via STEP) don’t you agree? CATIA makes things happen in real-life not Rhino.
  • A robust collection of components that can create real-life parametric tensile membrane solutions (get some inspiration from FormFinder: useless because it’s academic but good to point the way). Membranes (and geodesics) are the future.

 

I could continue at infinitum but IMHO the big picture is worth 12345,67 “focused” GH improvements.

 

May the Force (the dark option) be with us all.

 

Hi Peter, your posts are always controversial and fun.

Your comment about membrane components. I agree. Have you looked into the Forten components Gerry Danza has been developing? I haven't myself but worth looking at it seems.

The whole "specification tree" a la Catia where there is a clear child parent hierarchy of grasshopper components would, I agree be great. The ability for constraint based modelling is also great.

However, grasshopper is not a true constraint based parametric modeler like CATIA.

It is also a generative algorithm editor and really shouldn't be compared to tools like CATIA. It could be argued its primary purpose is as a means of providing a visual scripting alternative to traditional text based scripts. I would also argue Grasshopepr itself is very flexible in providing a bespoke blank canvas to set up work flows between different tools such as Catia/excel. This is something I see no other solution out there that can do this. 

I love CATIA but however great it is, it is an extremely heavy and unfocussed piece of software. Until Dassault take it seriously as an alternative to REVIT and produce a light-weight version, its dead in the water as regards realistic implementation in the AEC world. 99% of the work benches you don't need for AEC work. It is never going to take off.

Hi Steve

Well ... I know all membrane related apps known to mankind (and some that they are not). That said, I don't like the Forten suite (and Rhino membrane) for a variety of reasons - not to mention the inability to be a real-life member within a parametric workflow (same kind of issue with Evolute Tools Pro).

As regards strictly AEC matters the main problem with GH is Rhino itself (not feature/constrain driven, not a solid modeler, not AEC oriented by any means and not biased towards assembly/component modeling). Other than that and due to the known GH inability to handle/manage blocks/nested blocks at bake time ... well... I hardly can see how "to set up work flows between different tools such as ..."

I'll post soon 5 - rather "trivial" - AEC cases that are totally undoable (shop drawing level) with anything other than CATIA (or NX).

BTW: since international practices grow and grow in numbers these days (and individuals are dead) I can't see any realistic limitation for creating dedicated teams (kinda like Frank Gerhy did) that can easily deal with the "extremely heavy" nature of the beast.

BTW: this is a job ad (Project Architect role) from one of the biggest US AEC practices (rather a corporation, he he)

How things change these days ... don't you agree?

best, Peter

Yeah I know quite a few membrane aps having written a DR solver for soap films 17 years ago. I wish I had the tools then that we have now, crazy.T he key thing with membrane apps is to understand the load path and what is a realistic and buildable structure vs one designed ad-hoc that looks cool.

No GH isn't geared to parametric constraint based modelling like CATIA. Then again, neither is CATIA a graphical algorithm. You are comparing apples with oranges.

Having used the CATIA API a lot, I understand the differences.

I disagree as regards the deployment of CATIA. It is very much still a "ivory tower" tool and the knowledge of its use in the AEC is very small and not shared widely. It will continue to do so until it becomes accessible to a wider audience much like rhino and GH. It has also stifled now for over 10 years, and with the release of V6, I don't see it ever catching up. The business model of rhino is better in that it encourages hobbyists to push the tool instead of waiting for a gargantuan software developer to make changes.

With constraint based parametric modelling and parametric modelling per se, the naming convention and ordering of data is key. I agree this is where more work is needed mote  in GH.

Interesting job ad you shared, shows how little the person advertising understands parametric modelling. Understanding means nothing unless you have applied it.

To add, by work flow, what I implied is that we have an interoperable  work flow to go form Excel to SAP to rhino to Tekla. All of that can potentially be set up on the canvas, on the fly, with the use of plug-ins. You cant do that with GC/CATIA or anything else. They don't provide a medium to define work flows.

Interesting job ad you shared, shows how little the person advertising understands parametric modeling. Understanding means nothing unless you have applied it.

Well Steve...not quite :

This firm is looking for a project Architect meaning an individual who knows top to bottom the whole route:

1. 1% is the conceptual/"sketch" design phase be that smart or traditional (in fact is less than that since everybody does "wild" things the one way of the other these days: finally it doesn't make any difference, just another twisted thing among other twisted things)

2. 99% is the shop drawings + specs + quantifications + tech descriptions.

3. 1345% is the ability to deliver something that is not laughable (and avoid the design construct alternative, the end of days that is).

BTW: making a Boeing 777 (the very first thing made without "papers" around) isn't convincing enough for mastering "work flows"?

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service