OctaneRenderer and GPL


I am currently reading a lot about GPL and add-on development to understand, what is allowed and what not. I now stumbled across a blog post from 2019 published by Ton Rosendaal. There, it is clearly stated that making bridges to proprietary software is allowed, if the bride itself is put under a GPL compatible license. OctaneRenderer by OTOY is cited as one example. On the website of OTOY, they state

To conform to GPL rules, the OctaneRender® for Blender® plugin consists of two parts:

  • OctaneServer®
  • The full Blender – OctaneRender edition®

OctaneServer® is the server for getting the TCP/IP render-commands and scene data from the client, rendering the scene, and returning the rendered image to the client.

The Blender – OctaneRender® edition is the special compilation of Blender®, which includes the internal OctaneRender® module. The module collects the Blender® scene data and communicates with the OctaneServer® as the client by sending the data to the server, getting the rendered image from it, and showing that image to you.

Such a way GPL is not violated by OctaneRender® for Blender Plugin: as the source-code of Blender – OctaneRender® edition (which is under GPL) is available for users of the Plugin, and the source-code of Otoy‘s proprietary closed-sourced OctaneServer® does not need to be published, as OctaneServer® is not linked to Blender and works with render-clients through TCP/IP communication.

I understand, that this can be interpreted as GPL compatible in the sense that - using the wording of the Free Software Foundation - both the closed-source OctaneRender Server and the Blender Octane Render edition developed by OTOY communicate “at arms length”. They could, thus, be considered a mere aggregation.

Now my question is:
Why is OTOY using a completely own Blender version? Why don’t they just distribute a Blender plugin? Does anybody know If that has any further legal reasons or if that just has technical reasons?

Thanks a lot!

1 Like

Disclaimer: I have not looked at any of their code.

Not everything is easily extendable form python and C/C++ changes can be are required, and for those you end up having your own blender build.

The main reason is probably performance. Scene conversion in C++ is faster and less memory intensive than in Python.

In the LuxCore addon, we don’t use a custom Blender build and do many performance-critical parts in a C+±module, but there are certain things we can’t do in C++, for example iterating through particle instances has to happen in Python, which can be very slow with many particles in the scene. The Octane Blender build can do this in C++, like Cycles does.


Ok, that is what I suspected, but I was not sure. Thanks for your answers!

17 posts were split to a new topic: Render engine add-ons performance