algorithmic modeling for Rhino



Welcome to Human for Grasshopper!

Because humans are animals too!

Any similarity to my own name is, of course, a pure coincidence.

What does it do?

There are two sets of components with different functions:


Extends Grasshopper's ability to create and reference geometry including lights, blocks, and text objects. Also enables access to information about the active Rhino document, pertaining to materials, layers, linetypes, and other settings. 

Includes the following components:

(Those in bold are new components with this release.)

  • Object Creation
    • Bake Geometry with Attributes
    • Create Hatches
    • Create Justified 3d Text
    • Create Lights
    • Define Block
    • Place Blocks
    • Create Object Attributes
  • Display
    • Custom Display with Variable Lineweights
    • Custom Display with Bitmap Textures
    • Render Text to Screen
    • Render Mesh to Screen
    • Render Curve to Screen
    • Render Point to Screen
    • Screen-Oriented Text
    • Screen-Oriented Mesh
  • Document Information
    • Font Table
    • Material Table
    • Layer Table
    • Hatch Pattern Table
    • Linetype Table
  • Document Modifications
    • Create/Modify Layers
    • Create/Modify Materials
  • Miscellaneous
    • Document Units
    • Directory Contents
    • Delete Objects on Layer
    • Dynamic Item Selector
  • ​Reference
    • Dynamic Geometry Pipeline
    • Explode Hatches
    • Explode Blocks
    • Explode Blocks Recursively
    • Get Object Attributes
    • Light Properties
    • Sort Objects by Type
    • Text Object Info
    • Get Objects by Selection
    • Get Objects by Layer
  • Texture Mapping
    • Planar Mapping
    • Box Mapping
    • Spherical Mapping
    • Surface Mapping
    • Cylindrical Mapping
    • Custom Texture Mapping


This add-on includes a set of components to aid in the advanced manipulation of data tree structures.

Includes the following components:

  • Assign Paths 
  • Graft by Data
  • Match Paths (this is pretty much the same as GH's native "Unflatten" - but it came first so I'm leaving it in :D )
  • Path Description
See the images and reference files for a detailed explanation of the function of these components. 

I'd also like to acknowledge the creators of Horster Reference, the first Grasshopper add-on to expose advanced reference functionality. These components definitely build on the work they have done, although they take a slightly different approach.

To install:

  • In Grasshopper, choose File > Special Folders > Components folder. Make sure you delete all earlier versions of HDTReference.gha, TreeFrog.gha, and Human.gha if there are any. Save the gha file to that directory.
  • Right-click the file > Properties > make sure there is no "blocked" text
  • Restart Rhino and Grasshopper


Members: 360
Latest Activity: Apr 27

Reference Guides

Discussion Forum

New version of Human for download 51 Replies

It's been more than a year since the last release of Human - so I'm excited to share with you the latest version, packed chock-full of new functionality. See the release notes for details on the new features. A few of my favorites:Ability to define…Continue

Started by Andrew Heumann. Last reply by Nick Tyrer Jan 26, 2016.

Comment Wall


You need to be a member of Human to add comments!

Comment by Mehrad Mahnia on January 14, 2016 at 8:33am

Hey all;

I have a problem, I used the "Render Tet to Screen" Component, the problem is that it goes behind the scene's objects when I'm rotating the view ... is there any way to solve the problem?

Comment by Dan Weissman on October 29, 2015 at 3:14pm

You are a beautiful human.

Comment by Andrew Heumann on October 29, 2015 at 1:58pm

Hi Dan - 

Try the attached script. It will move an existing layer to be the child of another existing layer.

Comment by Dan Weissman on October 29, 2015 at 11:21am

Hey Andrew -

is there a way to move already existing layers with geometry in them into sublayers?  i'm working up a definition that turns off a bunch of layers when importing geometry from Revit, but i'd also like to move those layers to an 'off' layer automatically. 

Comment by Jonathan Russell on October 5, 2015 at 12:42am

Hi Andrew - loving these tools! I've been working on a definition to let me animate and render a point light along a curve, but have come across a roadblock: the CreateLight component doesn't allow access to all of a light's properties. Specifically, I'm looking to change the Decay option and to radically increase the light's intensity (giving CreateLight a maxed-out intensity of 1.0 in GH results in a light intensity of only 10% of what I need in Rhino).
Am I missing some way to alter these properties? I tried using LightProperties to grab the attributes of an existing reference light, but the intensity just went back to 1.0). Any thoughts?

Comment by Tim Halvorson on September 25, 2015 at 3:38pm

As I've been working and adding new layers with GH iterations, the layer will shuffle and get screwed up. How were you thinking to use the persistent layer ID to match? When the C# code gathers up the data, it was giving me an error because there were more IDs than layers to match.

Comment by Tim Halvorson on September 25, 2015 at 2:57pm



Hi Andrew- I got it working. You can see in the image that I was able to extract the naming preface. The example added to brand new layers to my Rhino model tagged with "04-" and you can see how they are used to sort the data. I wasn't aware until now there was a separate text sorting component. The result in the 2 panels on the bottom right is a sorted list either by full name or layer name. This little move should really help stay organized moving forward. Thanks for helping to clear this up for me!

Comment by Andrew Heumann on September 25, 2015 at 1:55pm
Hey Tim - first of all, to sort the layers by the sort index, you'll have to feed one of the outputs from the layer table (like the layer name or full path) into the "A" input of your sort component - this is how you sort one list by another.

Secondly, if you replace "SortIndex" with "Id" in that script, you'll get each layer's unique ID, which should persist.

At the end of the day though I think you're interested in a persistent sorting that respects layer nesting structure. What about just a text sort on the layer full path, using 04_ style prefixes on parent layers as you describe?
Comment by Tim Halvorson on September 25, 2015 at 10:39am

Thanks for the response Andrew. So I have used the script to gather the layer indexes and sort them but I'm not sure how to apply your suggested sorting techniques. (By Material, Color, etc..) My thought or question is this: Can there be a unique identity number tagged to each layer as it is created? This way, no matter how I choose to organize my layer hierarchy in Rhino, Grasshopper can track along and not break the connection. In the example image, this simplified Rhino file is focusing on the facade development. I typically have separate top-level layers for each major component of the project similar in scale to Revit Worksets. It would be ideal to keep the flexible layer control from Rhino and have Grasshopper responding. 

- The other thought was a selective sort. So, for example, my top level layers are organized by a number (03-Facade, 04-Interiors, 05-Lobby, etc..) but then keeping the nested layers in their current organization inside.

- Final thought. Maybe I am simply overthinking this and I need to adjust my layer naming strategy from the beginning to be more methodical. What do you think?

Comment by Andrew Heumann on September 22, 2015 at 10:57am

Hi Tim - this one-line c# script should get you a "sort index" property for all layers that you can use to sort the output of the layerTable component.

    A = RhinoDocument.Layers.Select(L => L.SortIndex);

I don't do this naturally - I use the layer index by default so that as new layers are added/rearranged, the entire order of the set doesn't change in unpredictable ways. The SortIndex changes every time you click one of the headers (Sort by color, linetype, visibility, name, etc).


Members (359)






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service