A collection of components for distance, area, and volume unit conversion




Caterpillar is a collection of Grasshopper User Objects which allow for the conversion between different systems of measurement. Designed for simplicity of use, the primary conversion all takes place in a single component in which three inputs convert a “value”, an “input” unit type, and an “output” unit type resulting in an output from the component whose value has been converted from the specified input system of measurement to the output system. The result is fast simple conversion between common systems of measurement covering, Length, Area, Volume, and Mass. Under each one of these classifications a series of components is available which contain units of measure under a single system of measurement. For example under Length, there is a component for SI (Metric), US Customary, UK Imperial, etc.. Each of these components then contains a comprehensive set of units of measurement from each system. For example under US Customary units such as Inch, Foot, Mile, etc.. are available for selection. If two complimentary systems are used, the component simply uses the SI base conversion to convert the value from the specified unit type to the SI equivalent then converts that value to the specified output unit. Each conversion value  is rounded to the 30th significant digit when needed. The converted value is then returned through the “result” output. If the two systems are not directly compatible, for example converting a length to a mass, the “result” output will return a null value and the “status” output will show the compatibility issue. Because there are a total of 29 unit sets in the first release of Caterpillar, each unit set has been collapsed into a single user object. This allows editing down of the options available in grasshopper by simply removing the user object from the User Objects folder in Grasshopper. In addition to these categorized unit types, the Rhino Units component, returns the Rhino scene’s current value type as per the components last refresh. The conversion component will take this output and match it to either length, area by squaring, or volume by cubing the units conversion value.

Built primarily for conversion from US & British units to Metric, common architectural practice, the component set was expanded to cover a series of units in academic precedent study and was then expanded to cover a several other unit types as research into the history of units of measurement grew. In response to the common need to share files among multiple team members Caterpillar was initially developed as a safeguard against shared files being opened in rhino scenes where units were different. A common issue of a grasshopper file being developed in a scene set to meters and using a divide by distance component would be opened in a scene set to millimeters. The result of which was often a sever lag if not crash of the file. The Rhino unit and metric conversion were developed to anticipate this issue, by allowing grasshopper to detect rhino’s’ unit, such as millimeters and convert them to the unit for which the file was developed, such as meters. This coupled with other common issues such as converting lease depths from metric to standard, calculating areas for zoning using surveyors units, US and SI units, and volume conversions for 3d printing, were eventually all collapsed under the common unit conversion tool, Caterpillar.

Caterpillar is currently an alpha release, as all values available have been triple checked and vetted across three sources each, the accepted source is linked to in the Conversion Table document. However these components have not gone through a complete debugging and have not been tried in all possible combinations. It is recommended that preliminary conversions are verified from in independent source before use, see Notes section for list of sources.

Caterpillar 1.0.0 User Objects - no change log at this time
Caterpillar Sample Files Zip Collection of (.gh) files demonstrating Caterpillar component use
Caterpillar Unit Conversion Table Excel Table Reference of unit types and conversion factors used in Caterpillar



  • To use Caterpillar you will need the Rhino 5 and the latest Grasshopper 3d installed.
  • Download the Caterpillar User Object Collection.
  • Because Caterpillar is a collection of user objects, it does not have a gha or installer, rather the user files contained in the downloadable zip folder can simply be copied into your local grasshopper user objects folder which can found by going under grasshoppers File > Special Folders > User Objects. (see: )
  • All user objects have the prefix “CP-” designating them as Caterpillar files followed by the unit type, ex. “Area”, “Length”, “Volume”, “Mass”, “Rhino”, “Unit_Converter”, and end in the specific unit type.
  • Once the files have been copied to this location a new Caterpillar tab should appear in the Grasshopper component ribbon
  • The “Rhino Unit” and “Unit Converter” are VB components and fully modifiable. All other components are standard Grasshopper “Value List” components pre-loaded with conversion values as well as an index which tells the conversion component what unit type, Length, Area, etc. is being passed.
  • The Conversion Table Excel Workbook can be used to generate additional conversion types and contains the formula to generate the “Value List” text which can be copied and pasted into a blank “Value List” component extending Caterpillars capacity.


All conversion values are credited to their sources in the Conversion Table document and though conversion values have been cross checked, accuracy of conversion results cannot be guaranteed.

Please report and discrepancies of inaccuracies.

Conversion Values sourced and cross checked include: