Using Rhinocommon for standalone application


#1

I read that Rhinocommon is now opensource. For a standalone application, would it be Rhino3dmIO that I use? I’m trying that now but finding I’m missing a lot of the functions, like Mesh.CreateFromBrep. Perhaps there is something that I’m not understanding?

Thanks,
Sam


(Menno Deij - van Rijswijk) #2

Hi Sam,

Indeed Rhino3dmIO is open-source, but that supports only reading and writing of the open 3dm file format and “simple” geometry operations that are part of the OpenNURBS library. The more advanced geometry operations, like Mesh.CreateFromBrep are only supported inside Rhino, because this uses the closed-source part. These more advanced operations also include brep and mesh booleans, curve intersections, closest-point finding, etc. etc.

So yes, you can use the 3dm file format and the whole geometry data structure + simple operations that comes with Rhino3dmIO, but you can’t use the more advanced functions. Think of the McNeel perspective: if they would open-source Rhino completely, another company could use their algorithms for these advanced functions and Rhino sales would most probably be affected. These algorithms are typically developed and fine-tuned over years.


#3

Hi Menno,

That is why I was so surprised to come across an old headline saying RhinoCommon goes opensource… I should have known it wouldn’t include the recipe for the special sauce :slight_smile: Nevertheless, the part that is open source will be enormously useful.

By chance, does there happen to be any documentation that lays out the differences between RhinoCommon and Rhino3dmIO?

What is the difference between RhinoCommonMono and Rhino3dmlo by the way?

I did get a couple errors building the project in both VS 2015 and 2017 as shown in images below.

Thanks for the help!


(Menno Deij - van Rijswijk) #4

Looks like you’re building it yourself? No need, use a NuGet package instead:

https://www.nuget.org/packages?q=rhino3dmio

As far as I know there should be no differences between RhinoCommon and Rhino3dmIO. Just think of the RhinoCommon being Rhino3dmIO + “the special sauce” :smile:


(Steve Baer) #5

Nuget is probably the best way to go. If you are building this from source, you need to make sure to use the Rhino3dmIo branch on github


#6

Awesome, thanks guys!

Sam