This guide describes the main requirements to develop for Rhino.
There are a number of prerequisites required to do Rhino development. Broadly speaking, these can be divided into three categories, ranked in ascending order of difficulty:
If you are reading this guide, you likely already have a computer that can run Rhino. (If not, Rhino has some minimum System Requirements that you should review before acquiring any hardware). Generally speaking, any computer that can run Rhino ought to be able to run the developer tools outlined in the Software section.
If you are a Windows user and wish to develop plugins for Rhino for Mac, you will need an Apple Mac computer. Conversely, if you are an macOS user and you wish to develop for Rhino for Windows, you will need a computer that can run Rhino for Windows (however, virtual machines running Windows under macOS can potentially work just fine).
Depending on what you want to do, the software prerequisites vary. However, in general, you will need:
- A code editor. There are many options…here are a few:
See the SDK-specific guides for the software prerequisites…normally found in the “Installing Tools” guides.
Acquiring programming knowledge is the most labor intensive prerequisite. However, learning to program - even trying out a new language - is fun and enriching. Learning to program using Rhino is a great way to begin…
Learning C# .NET
If you wish to write plugins with RhinoCommon, you will need to understand a .NET compatible programming language like C# (or VB). We recommend C# (C Sharp) because it is modern, safe, and easy to learn - and you can develop in C# on both Windows and macOS.
- Beginning C# Programming By Eric Lippert - Published by O’Reilly Media
- C# Fundamentals for Absolute Beginners on Microsoft’s Virtual Academy
- C# Essential Training with David Gassner on Lynda.com
- Programming C# 5.0 By Ian Griffiths - Published by O’Reilly Media
- C# 5.0 in a Nutshell By Joseph Albahari, Ben Albahari - Published by O’Reilly Media
To write plugins for Rhino using the C/C++ SDK, you first need to learn the C++ programing language itself. C/C++ is sometimes considered an “advanced” programming language.
- C++: A General Purpose Language on Microsoft Virtual Academy
- C++ Essential Training with Bill Weinmann on Lynda.com
- The C Programming Language by Ian Kernighan and Dennis Ritchie
- Practical C++ Programming by Steve Oualline - Published by O’Reilly Media
- C++ Primer Plus by Stephen Prata
Python is a fantastic first language and an amazingly flexible additional language to add to your toolkit.
- Google’s Python Class by Google for Education
- Up and Running with Python with Joe Marini on Lynda.com
- RhinoPython Primer by Skylar Tibbits, Arthur van der Harten, Steve Baer, and David Rutten
- The Python Tutorial by the Python Software Foundation
- Learn Python the Hard Way by Zed A. Shaw - despite the title, this is a beginner’s book
- Automate The Boring Stuff With Python by Al Sweigart
RhinoScript is a scripting tool based on Microsoft’s VBScript language. RhinoScript runs in Rhino for Windows.