algorithmic modeling for Rhino

We don't like to make promises, as we're very bad at estimating. Basically Grasshopper releases follow one of two patterns. There are slow releases that roll minor version number (0.6, 0.7, 0.8 etc.). These sometimes take weeks or even months. One of these is usually followed by a flurry of revisions (0.8.0001, 0.8.0002, 08.0003) where reported bugs are fixed.

Current version 0.8.0066 and was released on January 22, 2012 (yes, a long time ago).

The next version will be 0.9.0001 and will hopefully be released in late May or Early June. I pasted the release notes below, as they were on May 18th:


  • Data Trees are now constructed differently in some cases, this may break files that depend on specific data tree layouts.
  • File format forwards compatibility has been broken. You may not be able to open files saved with 0.9.0001 on earlier versions.
  • Parts of the Grasshopper SDK have been broken. You may not be able to load GHA files compiled for earlier versions.
  • Component Data Matching menu items are no longer available, please use the dedicated Shortest-List/Longest-List components.

New features:

  • Grasshopper will now load GHA files that are part of RHI installer packages.
  • Moved a lot of components into the dropdown panels, reducing the default tab layout.
  • Added Preview Mesh quality settings to the Canvas Toolbar and Solution menu.
  • Shift+Click on a tab component icon now starts a component aggregate.
  • Clicking on the canvas instantiates the oldest component in an aggregate.
  • Shift+Clicking on the canvas instantiates all components in an aggregate.
  • Press Escape to destroy a component aggregate.
  • Alt+LeftClick on the canvas now starts the Split tool which pushes apart the objects on either side of the mouse.
  • MultiSave exit dialog now closes automatically when all documents have been saved.
  • Added Data Dam object to delay data across a network (Params.Special dropdown).
  • Added Sift Pattern component for splitting data without messing with the item index (Sets.List panel).
  • Added Combine Data component for merging multiple streams with nulls (Sets.List panel).
  • Added Partition List component for breaking up lists into smaller lists (Sets.List dropdown).
  • Added Match String component for comparing strings against patterns (Sets.String dropdown).
  • Added String Distance component for computing Levenshtein distances between strings (Sets.Strings dropdown).
  • Added Format component for creating formatted strings (Sets.Strings dropdown).
  • Added Cloud Display component for displaying point data as fuzzy clouds (Vector.Point dropdown).
  • Added Sort Along Curve component for sorting points using curves as guides (Vector.Point dropdown).
  • Added Barycentric Point component for creating points using barycentric coordinates (Vector.Point dropdown).
  • Added Point Groups component for finding proximal clusters in point collections (Vector.Point dropdown).
  • Added Populate Geometry component for distributing points on different shapes (Vector.Grid dropdown).
  • All Population components now use a faster algorithm.
  • Added Project Point component (Vector.Point dropdown).
  • Added Blend Curve component for G0~G2 blends (Curve.Spline panel).
  • Added Connect Curves component for blending multiple curves into one (Curve.Spline dropdown).
  • Added Curve Length Domain component for measuring lengths of sub-domains (Curve.Analysis panel).
  • Added Curve Length Parameter component for measuring lengths to and from parameters (Curve.Analysis dropdown).
  • Added Containment Ex component for testing a point against multiple regions (Curve.Analysis dropdown).
  • Evaluate Curve component has been replaced with another one that outputs kink angles rather than lengths (Curve.Analysis panel).
  • Curve Derivatives component has been replaced with another one that has variable output parameters (Curve.Analysis dropdown).
  • Curve Derivatives component now displays the derivative vectors in the Rhino viewport.
  • Added Pull Curve component for pulling curves onto surfaces (Curve.Util dropdown).
  • Added Intersect Multiple Curves component (Intersect.Physical dropdown).
  • Added Matrix Data Type and Matrix Parameter (Params.Primitive dropdown).
  • Added Field Data Type and Field Parameter (Params.Geometry dropdown).
  • Added Point Charge component (Vector.Field panel).
  • Added Line Charge component (Vector.Field panel).
  • Added Vector Force component (Vector.Field dropdown).
  • Added Spin Force component (Vector.Field dropdown).
  • Added Merge Fields component (Vector.Field panel).
  • Added Break Field component (Vector.Field panel).
  • Added Evaluate Field component (Vector.Field panel).
  • Added Field Line component (Vector.Field panel).
  • Added Field Direction Display component (Vector.Field dropdown).
  • Added Field Perpendicular Display component (Vector.Field dropdown).
  • Added Field Scalar Display component (Vector.Field dropdown).
  • Added Field Tensor Display component (Vector.Field dropdown).
  • Added Adjust Plane component for modifying plane z-axes (Vector.Plane dropdown).
  • Added Evaluate component to replace all old expression components (Math.Script panel).
  • Added Expression component which evaluates an internal expression (Math.Script panel).
  • Added Short List component for equalizing list lengths (Sets.List dropdown).
  • Added Long List component for equalizing list lengths (Sets.List dropdown).
  • Added Inside Multiple component for testing point inclusion with multiple breps (Surface.Analysis dropdown).
  • Added Collision component for testing one-to-many collisions (Intersect.Physical dropdown).
  • Added Collision component for testing many-to-many collisions (Intersect.Physical dropdown).
  • Added Mesh Inclusion component for testing point|mesh inclusion (Mesh.Analysis panel).
  • Added Mesh Closest Point component for finding the point on a mesh closest to another point (Mesh.Analysis panel).
  • Added Evaluate Mesh component for sampling position, normal and colour at a mesh parameter (Mesh.Analysis panel).
  • Added Face Boundaries component for converting mesh faces into polylines (Mesh.Analysis panel).
  • Added Mesh Edges component for extracting mesh edge lines (Mesh.Analysis panel).
  • Replaced Mesh Plane component with one that takes a rectangle (Mesh.Primitive panel).
  • Added Blur Mesh component for averaging mesh vertex colours (Math.Util dropdown).
  • Added Simple Mesh component for creating a minimal Brep representation (Mesh.Util dropdown).
  • Added Knot Style input for the Interpolate Curve component.
  • Added Knot Style input for the Interpolate Tangents Curve component.
  • Added four different display styles to the Legend object (accessible via the component menu).
  • Double clicking the Legend object toggles discrete vs. smooth display styles.
  • Added an extra input to the legend component which allows legend drawing in 3D.
  • Replaced Containment component with more sensible values for inside/coincident/outside.
  • Replaced the Recursive Voronoi component with a better one.
  • Convex Hull component will now solve for 2 points.
  • MultiDimensional Sliders can now be part of states.
  • Geometry Pipeline object now has a Locked filter, available via the popup menu.
  • Geometry Pipeline object now has a Hidden filter, available via the popup menu.
  • Geometry Pipeline object now has a 'Group By Layer' option, available via the popup menu.
  • Geometry Pipeline object now has a 'Group By Type' option, available via the popup menu.
  • In Rhino5, the Zoom Extents command will now include Grasshopper geometry.
  • Expression input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
  • Script input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
  • Script output parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
  • VB/C# script components now have tooltip override fields in the context menu.
  • Parameter nicknames that collide with language keywords are now automatically modified in Script components.
  • Added Wrap option to Text Panel entries. When Wrap is off, items will be trimmed using ellipses.
  • Added NickName support to Knobs.
  • Added a grip region for Knob tuning.
  • Added a specific window for changing Knob settings.
  • Copy to Windows Clipboard now tries a total of 10 times if there's an access failure.
  • Copy to Windows Clipboard now copies to internal Grasshopper clipboard on prolonged failure.
  • Aborted solutions now clear whatever data is stored inside whatever component was solving when the Escape key went down.
  • The state of the Escape key is now also monitored during data conversions, making Escape behaviour more reliable.
  • Rearranged the Params.Special panel into Input and Util panels.
  • Rearranged the Sets.String panel.
  • File Reader component now reads per line files in a more efficient manner.
  • Parameter modifier icons are now drawn as vectors rather than bitmaps.

Bug fixes:

  • Components with Preview=Off would not display in selected only mode, this is fixed.
  • Instantiating number sliders via the popup box would not work if the first number was negative, this is fixed.
  • Copy to Windows Clipboard would not fail gracefully on error, this is fixed.
  • Interpolate Curve component would not warn on invalid degrees, this is fixed.
  • Knob menu control was not correctly initialized, this is fixed.
  • Knob menu control did not correctly respond to Limit On/Off, this is fixed.
  • Curve Discontinuity component would sometimes return invalid results for C1 discontinuities, this is fixed.
  • Certain exotic cases of Data Matching and Input Access would yield faulty output data trees, this is fixed.
  • Expressions in Point parameters would affect shared instances of points, this is fixed.
  • Editor window would not reflect saved/unsaved state of the loaded document, this is fixed.
  • MultiDimensional Slider would not undo on grip drags, this is fixed.
  • Image Sampler would not behave nicely when an image file went missing sometimes, this is fixed.
  • Upgrader for Null Item component generated an invalid result, this is fixed.
  • Text Panels would not display a scrollbar for local text, this is fixed.
  • Vector Display component would remain visible after disconnecting, this is fixed.
  • Vector Display Ex component would remain visible after disconnecting, this is fixed.
  • Adding or removing output parameters from VB/C# script would not update the script, this is fixed.
  • A CCX overlap intersection would sometimes result in erroneous parameters, this is fixed.
  • The tooltip over the abort icon would not show, this is fixed.
  • The canvas wouldn't always redraw when the solver was locked, this is fixed.
  • Transform Parameter Set menu items did nothing, they are now greyed out.
  • Occlusion Component would always return a null topology, this is fixed.
  • Group crossing selection would fail on concave group outlines, this is fixed.
  • Transform input parameters on components would have an empty transform by default, this is fixed.
  • Sweeps sometimes outputted surfaces with internal kinks, this is fixed.
  • Output parameters that output lists now have tooltip suffixes indicating them as such.

The main focus of 0.9+ is to improve cluster GUI and implementation.


David Rutten

Poprad, Slovakia

Views: 4966

Reply to This

Replies to This Discussion

Done, I added state-awareness for Knobs and ValueLists. Note: if you change the items in the value list, it will try and restore the item at the same index as the saved state.


David Rutten

Poprad, Slovakia


thanks again. can wait for the release!


Hi David,

1. (Tree branch)... Thanks for changing this it will be a great help.

2. (Record)... Maybe wrong but with regards to the record toggles would they not have the same logic as stream filters and stream gates that can only accept one value.

thamks matt

This all sounds great, looking forward to the new version.

If it is not too late, I have a few requests for some hopefully minor changes/additions :

  1. In Document Preview Settings, the option to colour surface edges/isocurves differently from the surfaces themselves - I find it is hard to get a good contrast between them when the transparency is low.
  2. A List Explode component. Flip Matrix then Explode Tree can sometimes accomplish this, but not with certain tree structures, and I still sometimes end up having to make multiple List Item components and manually set their indices.
  3. More default inputs - eg. evaluate curve set to t=0.5, Domain set to A=0, B=1, etc.
  4. Selected wires to be highlighted green along their entire length - not fading to grey. When opening definitions made by others with very long wires and many tangled connections, this fading makes it much harder to see what is connected to what.


# 4, you are right, I go nuts following those cables... :-)

Hi David

If its not to late can i request a Geometry index output on the pull component as it seems to work well for pulling closest points to multiple crvs but there is no way of finding which crvs match to which pulled points.

thanks matt

Hi David,

I was wondering if you could make an updated estimate on when GH 0.9 will be released?



Looking forward to the release!






  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service