Welcome

Rhino developer tools are royalty free and include support.

This site is the future home of all Developer Documentation relating to Rhinoceros 3D. This website is a work-in-progress. The entire site is open source on GitHub. If you find errors or think a page could be improved, just click the “Edit page on GitHub” link at the bottom of the page. See contributing to this website below for more details.

Start Here

If you want to…

The above three paths are not the only options! Keep reading for more…

Overview

Rhino exposes purpose-built SDKs in C#, C/C++, VB.NET, VBScript, and Python…

SDK Platforms Languages Primary Uses
RhinoCommon WindowsOS X C#VB.NETPython via IronPython The cross-platform .NET API for Rhino and Grasshopper
Rhino.Python WindowsOS X Python via IronPython Cross-platform scripting.
openNURBS WindowsOS X C#C/C++ openNURBS 3dm file IO outside Rhino.
RhinoScript Windows Microsoft VBScript Rhino for Windows scripting.
C/C++ Windows C/C++ Rhino for Windows plugins.
Grasshopper Windows C#VB.NETPython via IronPython Grasshopper plugins.
RDK Windows C#C/C++Microsoft VBScript Renderer plugin development on Windows.
Zoo Windows C#C/C++ Zoo license manager plugins on Windows.
RhinoMobile AndroidiOS C# 3D mobile application development.

Still unclear? Browse the Guides. Ask a question in the Forum. Check out the FAQ below. Ask a developer.

Contributing

Hey, make yourself useful!

GitHub

Many McNeel projects are open-source and on GitHub. RhinoCommon - our cross-platform .NET API - is a great example. Even this very website you are reading now. Browse source, fork a repo, correct a typo: we welcome participation and pull-requests.

Discourse

discourse.mcneel.com is the McNeel forum. This is the fastest place to get help. Specific categories to post in are:

  • Rhino Developer: Customizing Rhino through VB.NET, C#, C++, RhinoScript, and Python.
  • Scripting: Topics related to RhinoScript and Python scripting.
  • openNURBS: Topics related to the openNURBS toolkit.
  • Grasshopper developer: VB.NET, C#, and Python in Grasshopper components.

Report Bugs

Whenever you encounter something that doesn’t work as it should, we’d love it if you could file a bug report. At McNeel, we use YouTrack to track issues and bugs. YouTrack requires that you create a login. The vast majority of bugs are visible to the public. Please report issues or bugs with our APIs or SDKs on YouTrack.

This website

This website is open source on GitHub. If you find errors or think a page could be improved, just click the “Edit page on GitHub” link at the bottom of any page. If you are a McNeel employee, you should already have permissions to commit to this repository. If you are a Rhino Plugin Developer, you can request permissions to commit. Anyone can clone the repository and submit a pull-request.

This site uses Markdown - specifically Kramdown - as the base-format for all content. In the Guides area of the site, in the Developer Docs section, you will find a number of references to get started contributing to this site.

Contacts

Who to talk to for what:

Developer Training

Developer training is a custom, one-on-one session designed to help you become more familiar with the Rhino C++ SDK or the RhinoCommon (.NET) SDK, and to get help in improving your Rhino plug-in product.

Rhino Developer Training is available at both the McNeel Headquarters in Seattle, and at our European Headquarters in Barcelona.

We provide

  • A room and a desk for you to set up your computer.
  • A high-speed Internet connection.
  • Access to senior Rhino developers for questions and support.
  • Inexpensive lodging may be available.

You should bring

Your computer with:

  • Rhino C++ SDK:
    • Microsoft Visual C++ 2010 for Rhino 5 64-bit.
    • Microsoft Visual C++ 2005 for Rhino 5 32-bit.
    • The Rhino C++ SDK.
    • Note, Visual C++ 2008, 2012, 2013, and the Express Editions of Visual C++ will not work.
  • RhinoCommon SDK:
    • Microsoft Visual Studio 2010, 2012 or 2013, with either C# or Visual Basic; or
    • Xamarin Studio (for Mac plugin development).
    • The RhinoCommon Templates.
    • Note, the Express Editions of Visual Studio 2010, 2012, 2013 will work.

    • Your Rhino plug-in project source code.
    • Any software you will need to test your plug-in, including copies of your own software.

Pricing and scheduling

Developer training is free. You are responsible for paying for travel, lodging, and any other expenses.

For scheduling and travel arrangements in Seattle, contact Janet Brock.

For scheduling and travel arrangements in Barcelona, contact Carlos Pérez.

FAQ

Which SDK is right for me?

It all depends on what you want to do. If you are looking to automate repetitive tasks in Rhino, writing a Python script is the way to go. If you are looking to write a full-fledged plugin or Grasshopper component, we strongly suggest the RhinoCommon SDK. If you are very proficient with C/C++, you should consider the native C/C++ SDK (only supported on Rhino for Windows).

Can I write plugins that run on both Windows and Mac?

Yes…even using the same code.

What is Mono/Xamarin?

Mono is an open-source version of Microsoft’s .NET runtime that runs on Linux, Mac OS X, iOS, and Android. Check out the What are Mono and Xamarin? guide for more information.