algorithmic modeling for Rhino

Is RhinoCommon available to use as a library outside of the Rhino visual environment?

If it was, it would open up the potential for the development of "Rhino powered" applications, which could be a powerful alternative to something like OpenFrameworks for comprehending geometry.

It sounds like the idea may have been on the roadmap a while back.

Views: 1275

Replies to This Discussion

Here's my understanding (I haven't tested explicitly yet but plan to do so ASAP).

I'm not sure if you're studied openNURBS, but it's the dotNET framework used in Rhino v4 (and earlier) that could be accessed outside the Rhino application (and more advanced methods could be used inside Rhino). This can permit you to use a decent part of the geometry kernel where ever you like (including reading/writing 3dm files).

I downloaded the rhinocommon source from GIT yesterday, and one of the example projects enables 3dm reading/writing outside of the rhino application (I didn't explicitly test) and using a define flag (absence) to filter out the aspects of Rhino common only available in Rhino.

Steve or David might add more to this, I have been using openNURBS in my Revit plugins and will be testing switching to RhinoCommon as soon as I get the chance.

Hope it helps,


Many parts of RhinoCommon rely on the Rhino C++ SDK, which is only available while Rhino is running. However as Jon pointed out, we have a special build that doesn't include any of the Rhino-specific stuff and this can be used as a standalone.


David Rutten

Poprad, Slovakia

Cool, I'll have to check it out. Sounds like there is a lot of potential here.


I have tested accessing RhinoCommon from Dynamo/Revit and it works great. My question is about accessing Grasshopper directly. I want to skip baking geometry to Rhino and instead access it while its still at the Grasshopper level. How would I go about this task? What libraries do i need to load? Any examples that i can look at? Thank you in advance!


You'll need at least rhinocommon.dll and grasshopper.dll. Then you need to somehow 'get inside' grasshopper from within another appdomain. Perhaps you can make a gha project which doesn't expose any components but which runs some sort if server which can be accessed through a specefic port by another assembly elsewhere.

I've did some tests compiling a rhino 5 to rhino 4 backwards conversion tool; which worked quite fast and easy with adapting 3 lines of code.

 I used the instructions placed here:

Exploring the options that where exposed in the api I was amazed at how much advanced functionality was available: geometry, transformations and intersections seem to be available. Kudo's!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service