Why is Blender Bad for Commercial Add-Ons?

Blender obviously has fairly robust support for plug-ins, so why doesn’t it have commercial plug-ins? Blender Cookie put together a pretty slick modeling add-on, but it uses a very open license, and it’s strictly Blender exclusive.

I know the Blender fanboy answer is to say that everything should have open licenses, but people who actually make commercial software don’t often share that idealism. Listening to some discussion about Blender from outside the insular community, a lot of people think GPL code is problematic to work with (which is why Cycles switched to Apache). I’ve also heard some of the developers say that although Blender is open-source, the code base is only understood by a tiny number of individuals, and initiating a new developer would take months of study and training.

I don’t know much about the realities of development and commercial licenses, but what is keeping developers from supporting Blender? Why is it not worth a company’s time to make a port? Is it just that the user base is too small, or is Blender hard to develop for?

A few reasons jumps into my mind here.

They think they don`t earn enough with their Blender plugin to pay the port. Blender is mainly used by hobbyists.

It may need a complete rewrite of the plugin to get it to work with Blender. Which is a question of manpower.

Bad performance for the Blender version. Which may kill the reputation.

Inconsistent and bad documented Blender Api that changes every now and then.

And when this hasn`t stopped them already then there is the almighty GPL license that stops them to write the code they would need.

I agree with this–

I’ve also heard some of the developers say that although Blender is open-source, the code base is only understood by a tiny number of individuals, and initiating a new developer would take months of study and training.

In fact I believe it was Campbell that said in Andrew’s Podcast, that there was probably only 3 people on the planet that understands the code.

It sounds to me that this is actually a bigger problem than any of the pet peeves anyone else is griping about. Not that I don’t think the UI needs serious work, but if no-one can even develop commercial tools for Blender that’s frightening.

Hi, I use the commercial Blender to Octane Addon from Otoy.
The Addon is GPL and is connected to a closed source “Render Server” over local network.
Since the Addon is Open Source everybody could use the code and “Connect” his closed source application the same way.
IIRC the Blender Foundation is OK with it and even help to integrate other render engines, for example.
As Tiles mention, not many user buy the Addon.
Even 99 € is to much for many Blender user (You have to buy the Render Engine too for 199 €).

Cheers, mib.

Easy answer.

If you put a commercial add-on in a blender, it will be shredded apart.
conclusion:

blender is bad for commercial add-ons. (that came out more Endi-ish than I thought)

Correct reason: GPL does not allow linking an application with closed code. Maybe this can be bypassed by having a C API that plugins can use? Not an expert on that stuff though.

The license actually isn’t an issue in this case. The GPL’s viral license(if you stick it to gpl licensed code, you code becomes gpl) only works for distribution and reuse.

So a script connecting that interacts with Blender can be whatever license, as long as it doesn’t use actual Blender code inside it nor is distributed alongside Blender and/or it’s sourcecode.

Blender Cookie’s topology tools were made GPL not because they were forced to, but because they had always wanted it that way.

A bigger problem that has been noted is the lack of Api’s that aren’t phyton.

Can Blender’s add-ons (Python) be closed-source? (compiled? although I’ve never seen a binary blob of Python’s code)

The license actually isn’t an issue in this case. The GPL’s viral license(if you stick it to gpl licensed code, you code becomes gpl) only works for distribution and reuse.

So a script connecting that interacts with Blender can be whatever license, as long as it doesn’t use actual Blender code inside it nor is distributed alongside Blender and/or it’s sourcecode.

But that is the problem. Some plugins require deeper integration and interaction. Renderers for example.The Corona renderer developer will not create a Blender plugin because of exactly that reason. GPL is a real problem for plugins.

I don’t think you can, the nature of Blender addons and the GPL effectively make it nearly impossible for companies to produce extendable modules to Blender that you have to pay for. In this case, one might think of the GPL as an application prison, but Ton has stressed that it has benefited Blender’s goal of being powerful 3D software available for free and some of the developers we have now are mainly active because of it.

And Ton isn’t currently planning to make a massive effort to change Blender’s licensing either, one of his concerns on that is that it allow companies to sell versions of Blender that are far more powerful than the BF’s version and sell it as superior software (and this on top of the fact that the companies would be able to legally copy over any code from the open source project which would give pros no reason at all to support the BF version’s development). The way out of that would be if the Blender Foundation became the Blender Company and decided to close the source and continue Blender as a commercial project, but avid users who believe in free software would just fork it and continue development from the last Open Source revision under a new name.

Also, Brecht didn’t relicense Cycles out of disapproval of the GPL and out of having problems with it, his plan all along was to eventually see the technology available for integration in other apps. and readily agreed with Ton to do initial development under the GPL so as to protect the code. Ton himself have stated before that his intention is to not force the GPL on developers, if a developer wanted to code a module for Blender that was under an open, but commercial-friendly license, he can do that.

[Edit: not if Ace dragon says it can’t! As he does in the post above!]

You can absolutely have closed source add-ons, the user just has to install it on their own (easily done). And then maintain it on heir own (by paying for updates, downloading them etc). But Blender users know this about Blender: it gets maintained. Open-source add-ons get maintained. Closed -source add-ons: if the original developers decide to do a bunk and then Blender’s next version doesn’t accept the original add-on, you’re out the cost. This is what happens constantly in commercial software, which is why only a handful of Photoshop commercial plugins make it in the long run from version to version, (for example).

There’s always a big performance hit when code is external to the compiled parts of Blender, though, and that part has to be open licensed.

Bsurfaces is an interesting example of how an external add-on worked like a charm and had great functionality through very good coding. The maker generously promised to release the code at a certain time, sadly causing people to wait instead of paying the money up front … It’s a great add-on and many people supported it but not enough…

Python code isn’t linked. It’s the same thing as with Quake engine and QuakeC virtual machine. QuakeC code and be closed-sourced, if written from scratch.

Well, that’s the idea of commercial software development - you have to maintain your app / add-on in order for people keep using it :slight_smile: Maybe charge a small fee for updates, maybe charge nothing. And keep making sure it works with new Blender builds.

There are plenty of GPL, open source add-ons that died with the release of 2.5x version. LWO export is a good example. I e-mailed author and he said he isn’t going to port it. If that was a paid add-on, the author would be more likely to put an effort into supporting it.

So if it’s possible to have closed sourced Python add-ons, I’d like to know how.

@all, Octane Addon and extended Octane Blender code is Open Source and the Render Server is Closed Source.
There is no problem to develop Closed Source software for Blender if you have a good legal department. :slight_smile:

Cheers, mib.

I don’t think anyone suggested that it was a principled stance, I only heard that Cycles was re-licensed under Apache because that was the only way it was useful to commercial developers. I also remember Brecht saying early on that he wasn’t particularly planning on making a version of Cycles that wasn’t integrated into Blender, but the plan changed. I may not be remembering correctly.

Blender core being under GPL probably isn’t necessarily a problem in itself, since I’m sure the Foundation would be willing to give out special licenses for commercial projects (or sell them depending on the circumstances), but it’s sounding like maybe the API being Python-only is a limiting factor? And that the API isn’t actually powerful enough?

@Motorsep, as long as you can distribute the add-on seperately from the Blender executable/sourcecode, you can have it in a different license, including privatised ones.

Like noted before, this means that unless you are expecting your users to build their own version of Blender, C-based privatised add-ons are impossible. Which is why there’s people clamoring for a C-api. (Aside from speed, that is).

I think if you start really asking around, it’s the lack of C-api that puts the nail in the coffin.

No, I am asking specifically about Python. Anything that is linked dynamically or statically will fall under GPL. Thus regardless of what you guys think can be done with C, it won’t work license-wise.

The only way to monetize with GPL is via assets and services. Python add-ons fall under assets, as they aren’t linked in no way. I recall that .pyc files are binary blobs for Python code. The question is how to compile Python add-ons into binary blob and if Blender will work with it out of the box as if it’s a regular open source .py add-on.

It’s not the only way, it’s just that many companies prefer more permissive licenses (for various reasons).

Blender core being under GPL probably isn’t necessarily a problem in itself, since I’m sure the Foundation would be willing to give out special licenses for commercial projects (or sell them depending on the circumstances)

This is pretty much impossible.

If I were to go that route I’d just compile the py-code with cython and distribute the resulting dll/so.

It coughshould work though I haven’t tried to compile a complete addon and import it into blender like the pure python ones.

but isn’t dll/so makes it a runtime lib and thus dynamically linked ?

Here is what I found: http://effbot.org/pyfaq/how-do-i-create-a-pyc-file.htm