On licensing and 3rd party plugins

Any remote chance to allow external developers to add plugins -non FOSS- to Blender ?
That could accelerate an integration in current pipelines and accelerate adoption in industry.
Trying to invent the wheel again and again leaves us far behind competitively.
My humble opinion.

Moderator note: This thread was split from the Blender 2.8 development thread

As long as Blender is GPL (and at this time, GPL v3 compatible) your chances of closed source plugins are basically Zero.

You can read an answer from The Boss himself about plugins:

https://lists.blender.org/pipermail/bf-committers/2016-January/046507.html

This can’t really ever happen. The GPL 3 license is just not compatible with that kind of thing. One of the things Ton always says is that all of Blender will be free, forever, and that means using a license that guarantees it. I find it quite refreshing to know that if an addon author disappears or decides to stop distributing it, anyone can pickup the ball and run with it.

how about V-ray for Blender, why is that possible?

They distribute a special Blender build for VRay users only, the GPL permits the creation of special builds like that (without source access) as long as you don’t make it available on a public website.

The issues it brings up though is the fact that Chaos Group has to do extra work just to make their engine usable for Blender users and a person using a special VRay build cannot make use of data created in other special builds (say you have one for Substance support and one for Realflow simulations). Ton himself does not like this situation, and the only way otherwise (if you want fast and deep integration) would be a sort of (C++ based) non-GPL API that could act as a bridge for proprietary solutions to hook to (which is unlikely).

This makes it all the more important to try to make Blender into something that excels in all areas of the pipeline (it brings the dual benefit of allowing anyone to make professional-grade CGI without a huge financial barrier). That last part would be more important now because of the major production apps. going to a rental-only model.

Hmm, the GPL doesn’t permit that. If you distribute Blender, changed or not, your have to provide the source of that build upon request to the person you distribute it to.

From the Chaos Group website: “Blender and V-Ray for Blender are free and open-source products licensed under the GNU General Public License.” Seems ok to me.

The source code for Blender for VRay is in a public repository on https://github.com/bdancer/blender-for-vray

They get away with it, iirc, by adding some specialized open source code to Blender, and then using sockets to communicate with the vray executable, slipping their way around the strict wording of the GPL license. Thea and Octane something similar. It’s a massive pain in the ass to code that way though. A dedicated MIT-licensed add-on API would open a lot of doors for Blender rendering and add-on development.

This would be really nice to see. Blender is a great base, but as many others have mentioned, it doesn’t mean that all related plugins should be open source as well.

It must be the only real target of BF, if is possible with GPL. Or change the license to MIT or LGPL. I think that the rest of targets are secondary, blender will be dead in productions without this, and BF don’t want to see it.

Won’t happen, can’t happen.

A plugin API for a GPL-licensed program is a derived work from that program, and therefore must itself be licensed under the GPL.

See: https://www.gnu.org/licenses/gpl-faq.en.html#GPLAndPlugins

But not the plugins that you created for that API.

It really true that BF don’t have anyway to allow companies to create plugins for blender?

Everybody can, at least those who are free (have the liberty/rights - so know your contracts!!!) to make it happen but they won’t make it happen because they don’t consider anything being free (0,0 ca$h).
Don’t ponder on things you don’t comprehend, accept or reject - join one or the other. Can’t be both.
But if you care & would like to contemplate more, have some Umberto Eco (ie. “The name of the rose”)

Now, please, get back on topic.

Yes, it’s really true. I don’t know how many times it has to be said but: They don’t want to. I was one of the original people who donated $50 to open source Blender and I don’t want to see commercial plugins in Blender. It’s completely antithetical to the spirit of the project.

Fun fact: I actually don’t like the GPL or think it’s appropriate for most projects anymore but it’s the right choice to keep Blender open and free and not fragment away the userbase between the haves(those who can afford expensive addons) and the have nots(those who can’t).

That API would be derived from Blender, therefore it can only be licensed under the GPL.

Create an API, release it under BSD. Integrate that in Blender. Independent of that create a plugin which uses the API. Blender still needs to be released under GPL of course, but the plugin can be released however you please. If the plugin is loaded at runtime, there should be no licensing issue.

All of this is answered in the GNU GPL FAQ. Please don’t make me quote it one by one.
https://www.gnu.org/licenses/gpl-faq.en.html#GPLStaticVsDynamic
https://www.gnu.org/licenses/gpl-faq.en.html#GPLPlugins

It is possible. But keep in mind that such an API would be an enormous amount of work to create and maintain. At this point, I know of only two developers whom have ever shown an interest in writing this API. Neither were core Blender developers and neither have finished. Developer interest in this topic is pretty thin right now (and has been that way for a while). This is one of those situations where if there’s sufficient user interest, then those users need to find a developer who’s interested in doing the work… and ultimately figure out a way to compensate that developer (generating an API isn’t exactly glamorous or exciting work that someone writes out of passion for the subject).

Since this is something that would most directly benefit 3rd party companies/developers, it seems to me that those would be the people that would be best suited for developing this API.

Let’s make a simple example to show how absurd this is. Let’s assume I create something like a universal API for render engines and release it under BSD. Now, I am creating plugins for render engines like Cycles, Arnold, … . Further, I am creating a proprietary 3d application which implements the API, such that it can use all those render engines. Now, I am integrating the same API into Blender. In order to not violate the GPL, it is necessary that Arnold becomes open source.

I totally agree with you! It would be necessary that stakeholder took over the responsibility. What I am saying is that there would very likely be a way to achieve it, even for proprietary plugins.