Blender, Addons, BGE, & the GPL

Say someone writes a decent integration plug-in for Arnold and say it doesn’t comply with the GPL. Then say someone else who’s received the plug-in - we’ll call this person Developer 2 - wants to modify/improve it, but can’t because they never got the source. Developer 2 would have to sue to get access to the source, and they’d be within their rights to do so (because of the GPL). And after winning the suit, they could take the plug-in and freely redistribute it with their modifications.

Meanwhile, the original plug-in developer gets a bucket of crappy PR, lost expenses if they choose to fight in court, and lost revenue (as they see it) from losing control of their source code.

And it gets potentially scarier for the original developer. Let’s say the original developer is Solid Angle and they distribute their closed, GPL-violating plug-in with Arnold and it’s not sufficiently sequestered from the Arnold code. If Developer 2 were a sufficient enough jerk, that person could argue that because Arnold is tied to this plug-in (which, by all rights, should be GPL), then Arnold (or parts of it) would also have to be GPL. That case is much, much harder to make (and less likely to win in court) and Developer 2 would have to be a monumental douchebag to make such a claim. However, douchebags do roam the Earth and that knowledge is sufficient enough to scare some people/companies away from commercial development with the GPL. Yes… it’s kind of an irrational fear, but there’s no denying its existence.

I am not talking about making commercial plug-ins with non disclosed codes, I am talking about all that talk about code that is not GPL, who cares if the plug-in uses the same process as Blender libraries or not, as long as it is freely distributed and if peoples can modify the code!

As for a commercial plug-in, then of course its the responsibility of the original developer to comply with GPL, as with any copyrighted material, and they should make sure that their code does not run on the same process as Blender’s libraries, it comes with the territory when you work on such a project.

And you are right, plenty of douchebags out there, and yes there is enough grey area to keep large company from willing to invest in a GPL application like Blender, which is a bad thing for Blender in my opinion, but there are also several ways to go around GPL, at least to some extend, especially GPL 3, to allow an individual some leeway to develop a plugin to extend Blender with commercial software!

I talked to our legal lady at the studio, she’ll get back to me on this, hopefully its not as bad as some seem to believe it is!

Put it to the vote on blender.org !

“Do you mind having non-GPL open source plugins created and sold for Blender?”

then if there are major influx in people being totally ok with it, next step would be signing a petition, locating as many contributors as possible, having them transfer copyright to BF for the code they contributed, rewriting code of people who refused to transfer copyright and bam!, we will have a stream of high quality plugins that help Blender eat both Max and Maya for breakfast! Or not?

I think it’s all being overthought. BF should probably recognize the fact that people want to make commercial games using Blender, and make a FAQ explaining pros and cons, clarifying GPL clauses. I think as long as .blend files, shaders, nodes, etc. (“assets”) remain proprietary, there is very little to no harm in having Py code under GPL in a commercial game. You can forget about microtransactions and all that f2p monetization, but GPL won’t prevent you from making and selling “standard” games.

Another way is to look for a rock solid GPL/non-GPL engine that allows keeping game code (at least partially) proprietary (not to mention assets), and make sure Blender works nicely with that engine in all possible aspects (hint - Storm Engine 2 is one of those engines, based off Doom 3 BFG :wink: https://www.youtube.com/watch?v=0r-SOxXFM3c )

Free software ideology, to prove a point, to troll, because someone pays them to, because it’s Wednesday, because they can, etc.

It doesn’t matter why they do it - the point is it can be done and that must be taken into account when justifying work into such a non-GPL compliant addon. and one must remember that it is not just people that have contributed to Blender itself one has to consider, but any contributors to the GPL libraries it uses. This is not just about people that have contributed to Blender and moved on - it’s about all the code that goes into Blender and the expanding likelihood one of them has one of said ideological “douchebags” on the team.

Remember, to some people, Richard Stallman is a douchebag, whilst to others he’s a visionary. Just because we disagree with someone doesn’t mean they won’t feel perfectly justified (& even supported by others) in acting to keep the use of their code free from the corruption of “proprietary profiteers”.

I’ve done the “check with legal department” on this before and, legally, it’s a slam dunk. The GPL is pretty solid about it, the authors of the GPL pretty upfront about the intent of the license, and (here’s the kicker) copyright holders of the code in question GPL have stated their interpretation of the license in public (meaning that one cannot beg ignorance or ambiguity of intent).

The thing to remember here is that the FSF has a clear goal of ensuring any code covered under the GPL (and code using said GPL covered code) is to be shared under the GPL as well. They too have lawyers on the payroll, a substantial number of whom had input on the license in question. The only two major things that have caught them unawares in recent memory was the use of patents & code signing to make the code shared under the GPL illegal or impossible to use. That was what version three of the GPL was about fixing.

Oh my, that would be a legal can of worms. You’d first need to determine under what jurisdictions those code contributions happened and if and how copyright transfer is even possible. In Germany for example you cannot transfer copyright - it stays with the creator no matter what.

Besides, just the exact opposite could happen in that theoretical scenario: developers could pick the cherries out of Blender’s source code and turn them into profitable closed source Max/Maya plugins.

I think I forgot to put a wink somewhere there :slight_smile: It was a scenario that could never happen :slight_smile:

They already can - learn from the source, implement it from scratch for MAX/Maya.

note re #36:

Even though anyone holding copyright could sue, they can only sue to the extent of the copyright they hold.

If someone writes 10 lines of code the damages would be so small as to make it practically not very worthwhile, Though I suppose you could try - just to prove a point but I dont think it would be a strong case.

So any legal cases involving GPL need to be done on behalf of companies or people owning significant copyright.

If I had to guess, based on individual contributors and libraries used by Blender - I would guess there are approx ~15-30 people (and the BF) who could reasonably claim damages… but this isn’t clear-cut.

Technically, this is right.

The GPL in this case can only guard against duplication, not inspiration. There actually have been features available for Autodesk’s product line that use a custom implementation for features similar to what is in Blender.

If the majority of the community really don’t mind the idea of Blender being GPL, then we could at least have an effort to add a GPL-exception to Python code and the Blenderplayer. That way we can have secure commercial addons and games, but no one will be able to produce hardcoded premium features or rip code into another app. Some people seem to be close to the idea of outright subversion of the GPL on the idea that no one would sue for damages, but the correct way would be to use every legal channel and action that can be used.

Adding an exception isn’t any easier than changing the license outright. You’d still have to chase down all the copyright holders and get them to agree or replace their code.

That’s why I said it would still take an effort, but if it’s anything like the re-licensing of Cycles, we would only have to track down the contributors who have directly touched the API and Blenderplayer/BGE code, right?

Why bother at all ?

Eh, if someone was (purely hypothetically) chasing down contributors, that’d be a huge effort, so it’d be more cost-effective to add a linking exception to all of blender in one go. That’d enable proprietary plugins of all kinds - render engines, particle systems, animation tools, modelling plugins etc.

We’d have to bother sooner or later if Blender gets to where the current license starts to outright block any further increase in adoption. Ton’s dream is to bring Hollywood to Blender, and he may need to confront a reality that the GPL may soon become an affront against him to an extent if he wants to see success in that pursuit.

Case in point, Cycles has been re-licensed and it has allowed commercial companies to start taking a serious look at it for integration into their software, a level of adoption that would be impossible under the GPL.

In the case of Blender in general, simply editing the GPL license for the parts I mentioned to add an exception may be enough, and may actually be the only option since some of the developers would not want to see their code in a commercial 3D production suite like Max.

so it’d be more cost-effective to add a linking exception to all of blender in one go

And how can this be done in one go (without chasing down contributors)?

Hollywood develops a lot of in-house software. GPL doesn’t prevent you from developing something super awesome for Blender in-house and never release it to the public.

Instead of struggling with this issue, might as well use another game engine. I don’t see any advantage of using BGE vs UE4/Unity/Source/other established GPL engine.

It would be better to adopt existing engine and make add-ons / features that allow better integration than keep working on BGE when it’s already an issue (theoretical) license-wise.

And what companies are integrating Cycles ?

http://lists.blender.org/pipermail/bf-committers/2014-May/043529.html

Quite possible it wouldn’t have happened if Cycles was still GPL.

Apache 2.0, was looking into that for an upcoming addon!

EDIT, but I will probably go with MIT

Who are these ideological “douchebags” you refer to? And what makes such?

As for your repeated mantra of this ‘repository of commercial blender plugins’ could happen (it’s starting to sound more and more like you are trying to make it happen through not-so-subtle brainwashing), these plugins can be copied even if they are proprietary, and they WILL be copied even if they are proprietary.

And certainly it can happen, however unless I’m mistaken some (many, most?) of these commercial plugins are already up on repositories courtesy of the actual developers themselves already, yet the sky isn’t falling.

Again there is a direct parallel with the rampant software piracy out there, any plugin or 3d software application is most likely no further than a Google query away, yet there is a ton of commercial 3d applications and plugins, and they keep coming, being developed (unless they are bought by Autodesk to be killed off as unwanted competition that is).

This means that in the ‘digital market’ where a copy costs absolutely nothing to produce, and the potential customer always has the opportunity to get the ‘copy’ for free, in the end it boils down to the ‘value’ for the customer.

Many commercial software companies offer technical support which certainly add value, but above all is of course that if you as a company or individual really rely on a piece of software to exist and be maintained and enhanced, then it is of great value for you to support that software, even though you could get it for free.

And that is in my opinon the most important aspect in a niche market such as this, and unlike you who thinks that the open source requirement due to GPL will be a huge problem, I say it instead adds great value to the product in the eyes of the potential buyer and supporter, you are not buying and supporting the equivalent of ‘black box’ functionality here as is typically the case, instead you are getting the best of deals for your purchase, which includes the source code.

So even if the author of the plugin you rely on would croak the following day (extreme example), it doesn’t mean that development of that plugin you depend on ends with him/her.

In short, if it’s legal or illegal to copy Blender plugins will not be the deciding factor in terms of it being commercially viable to produce them, it’s going to be about the value the potential buyers find in said plugins and their continued existance and development.

Heh, yeah like the GPL licenced Linux kernel which is the cornerstone of pretty much all Hollywood SFX and 3d production these days, I believe it’s you who needs to ‘confront reality’ if anyone.

So I suppose Rhinoceros will open source their nurbs engine so that it can be implemented in Blender now, great. What, no? Bummer, well atleast they got cycles, good for them.

No software licence can prevent this, and not being proprietary either. I’ve worked under contract on clean-room reverse engineering of code where one guy (never met him) examined disassembled code and figured out what it did and wrote it down, which was then passed on to me where I implemented the functionality he described as c code, a straightforward (and boring) job as I recall it.

Obviously this is a poor substitute for being able to use the actual source code in question (and thus typically a last resort), but I brought it up to point out that all software licenses rely on copyright, which does not cover (clean-room) re-implementation.

The GCC compiler has a GPL exception in place that allows commercial companies to create Linux builds without being subject to the license. Something which Blender doesn’t have for scripts and games made with it.

So I suppose Rhinoceros will open source their nurbs engine so that it can be implemented in Blender now, great. What, no?

The Apache 2 license isn’t really viral like the GPL (meaning you can link closed source code to it without repercussion), This really seems to give the impression that you’re starting to grasp at straws in terms of the idea of keeping anything proprietary (or commercial) far away from Blender (even if all of it is code written with Blender’s own API).