Plug-in licensing and best practices

Continuing the discussion from What can McNeel do to improve your development?:

The Rhino SDK does not provide any plug-in licensing capabilities (CD/license key generation, online license validation, etc.)

But, if you do have a way of licensing your product, Rhino can help manage it.

Just to make sure: zoo-plugins extend the zoo to validate 3rd party plugins.
There is no way for the plugin to be bound to a specific rhino license?
There is no way to limit a rhino license to allow only a specific plugin?

Correct. By providing a Zoo plug-in, you can play in Rhino’s license management system. Your license will show up on the Licenses page in the Options dialog, for example.

Using our license management, no. But you could probably do this outside of our license management.

Let say, for example, somebody adds one of your licenses to the Zoo. Any Rhino would obtain your licenses from that Zoo would be able to use it using our system.


That’s a real shame. Just a few days ago I was thinking how developers of professional simulation tools spend half their valuable time to code crappy 3d editors and half-assed file imports. They could just use affordable and constantly updated programs such as Rhino as editor and importer.

Now if you could limit Rhino to that one plugin, but get it for, like 50% off, that would be nice if you only wanted to use that simulation plugin. You could always use the plugin with an existing full Rhino-License or update the restricted version to a full license by paying the other 50%.

Well, if I’d expect more than 300.000 turnover a year, I’d happily pay two or three guys just to code an interface tailored to my needs.

I have no idea how to interpret your response…

Just thinking out loud here. The following is currently just a mind-game, but I thought it might be interesting for other developers in a similar position. I didn’t know about OEM before and really like your system of discounts, but the requirements are quite high. That is entirely acceptable, since you actually get a full Rhino license for a really good price. My original idea was just a bit different…

To give my line of thought a little more context: I am using acoustic simulation software and comparing what’s on the market, I find them all lacking in the UI and import functionality. I draw my models up in Rhino, export via DWG and still need to redefine all the surfaces I a crappy 3d editor. That’s just frustrating since those packages still cost a lot of money.

Then again, I have some basic coding skills and already tried (and failed) to streamline the import/export via grasshopper. Right now I do my own basic simulation in grasshopper. I like the scalability of Rhino and use it for a lot of other things. It’s a wonderful tool to create 3D geometry. But if I coded a plugin for Rhino, the subset of functions, that I’d actually use would be pretty limited. Obviously, a plugin for a software that has no additional benefit for the typical user of the plugin is hard to sell if the host software makes up half or a third of the stand-alone-plugin.

I don’t know any exact figures, but I expect the market to be a pretty limited one. Especially if you are just getting started. I would not expect to sell anywhere near 200 copies in the first year and I don’t think I could for the 150% of the price of a Rhino license as required for the OEM program. If I could be sure of that, I think it would be entirely plausible to use that money and find some guys to code up that very limited subset of 3D functionality, that I’d actually make use of.

So please don’t take that as anything against Rhino or your licensing options. I was just hoping, I could somehow license a subset of your framework.

1 Like

can you suggest a method to license a plugin created with the Rhino Script Compiler ?
I read the Zoo licensing options, if I understand correctly to use the Zoo as a license manager for my X plugin, I need to build my plugin in RhinoCommon and create an additional plugin for Zoo (the latter is pretty much done in the examples you provide, right?).

Now - what if I don’t want to re-write thousands of lines of the current plugin (which is not R.Common) and want to add some basic licensing functionality ? I assume the quick way would be to check a machine ID string given by customer ? Do you see better options for an existing plugin built with the Rhino Script Compiler ?

You understand correctly.

Sorry but I really don’t know anything about the RhinoScript compiler. I’m probably useless when it comes to licensing in this area.