About Licensing: Google v. Oracle and Blender Addons - Is this true?

@PatBoy You actually described my idea a minute before I did. I know a lot of people who are happy using proprietary, closed software because it gives them exactly what they need. To arbitrarily say that it is good or bad for others seems absurd to me.

3 Likes

I don’t judge anyone or companies. I respect commercial businesses who make outstanding proprietary products. Houdini, C4D or Substance are good examples. Our mission is valid next to that. We have our goal to pursue, nobody else does it for us, you know :slight_smile:

10 Likes

So who writes the world-class free software then?

A larger ecosystem of people able to dedicate their working hours to developing the best tools in the industry is only going to bring more users, attention, and ultimately funding to Blender itself and the ecosystem built around it.

I’m sure there are a huge number of people who would love to be able to improve Blender for a living, but many times, businesses which rely on making money to stay alive might decide not to contribute to the Blender ecosystem due to the risk of not being able to recuperate the costs put into it. If people are legally able to redistribute your code for free (which is all GPL code) then it’s likely going to be a big fat no from many of the people making the calls (investors, business owners) about whether to put money into it. I’m sure Ton has a lot more perspective and knowledge of the landscape of people in this space, it would be interesting to see his take on this.

For some context, I’ve been working on building a performant and easy to use spectral version of Cycles in my spare time, for years now, yet it’s still not finished - not for a lack of desire to get it out to everyone, for free (hopefully to merge it one day) but simply because I don’t have the resources. Without people willing to pay significant amounts of money for free software to get written, it doesn’t happen nearly as quickly as it would or at the standard that it would if there was the money.

Maybe people fear that having addons with an incompatible license would make Blender ‘pay-to-win’, but I don’t see that as a likely outcome. Of course there are going to be a lot of people who disagree with this, and plenty of counter-arguments to everything I’ve said, I’m open to being convinced otherwise.

I too love Blender for what it has built and don’t know the ‘answer’ to this, but I don’t think it’s entirely a black and white situation, such as “money is the cancer of this world”. We live in a world where some people do care about the politics behind it out of necessity. People need to make a living. Some people will make a living contributing to open source software, and if they can’t, they’ll make a living somehow else.

5 Likes

As I pointed out in the first post of the thread, we know what the nature of the GPL license is regarding “give and take” or “tit-for-tat” as a fair model for all the participants.
As I have shown in the first message of the thread, we have the express declaration of the Blender project creator about his wishes for the chosen development model. We have the wishes expressed on Blender’s official site for how Blender addons should behave.
I have also shown the express statement of very important Blender developers saying how important GPL has been when deciding to join and contribute to the Blender project, at least in the initial decision. In this thread we have had the statement in this same direction from other Blender developers.
Addons in Blender are clearly not outside of that development model idea. The ability of analyze/study, modify and share Blender addons is essential for the project. Blender relies heavily on Addons, there are very important addons bundled with Blender. Blender 2.8+ jump showed us that model of being able to modify the code and share it was fundamental for addons, where the community took charge of very many addons to port them to 2.8+, many of those addons still bundeld with Blender thanks to that.
Just an example:
https://developer.blender.org/p/cwolf3d/

Even abandoned addons out there that have been ported to Blender 2.8+ by third parties and shared again for the community. Blender addons are not out of the development model chosen for all Blender.
It is clear what the wishes are for the development model for the Blender project, and Blender addons are a fundamental part of the Blender project.

If with all this you still cannot demonstrate in court how important GPL is and has been for the development model chosen for Blender and for its growth and success, including its Addons. And third parties can still find holes to circumvent GPL and wishes for the chosen development model, so we need to fill those holes with better clear rules for those addons, somehow.

1 Like

To me this topic is exactly the same as the “Right to Repair” movement.

Do most users care that they can’t repair their own devices?
No, they usually do not.

Is it beneficial to the user if anyone can repair and fix their devices if they wanted to?
Yes.

Does it benefit the manufacturer if their customers has to rely on them for repairs?
Yes.

Closed source software is exactly the same. The users are not provided freedom to fix or change things in it easily. If the developer or manufacturer decides to not support the product anymore, then the users are most likely screwed. (The is where the “in the long run” part comes in).

If Houdini was released as two versions that are exactly the same besides one being GPL licensed and the other being under a closed source licence.
Which one do you think most users would use/prefer?

Don’t misunderstand me, I don’t mind people creating and selling closed source software. That is their decision and their business model.

What I do mind is when people try to skirt around licence agreements that in sprit says: “If you use my work, then you have to share yours”. I understand concerns about monetization and the likes. Those are entirely valid. But trying to frame this as not limiting the freedom of the users so people can more easily monetize their work and not contribute back, is disingenuous in my opinion.

You are completely right.

A lot of people want, but can’t, work on open source software because they can no get funding for it. However as seen with Blender and the Linux kernel, a lot of companies has realized that if they fund or help out with development of open source software, they can have more benefits than if they went with closed source solutions.

If potential addon developers made the cost/benefit analysis and came to the conclusion that releasing the code as open source would not work for them, then that is of course fine. There are lots of other 3D software out there that they can target.

It is just the reality of things.

In the end the GPL is about providing freedom to the masses as a whole and that makes it harder for the individual sometimes.

4 Likes

Just wanted to chime in and say that Quad Remesher is a really bad example. Such plugins end up having to do some obj/fbx import/export which makes it highly likely to have worse performance than its counterparts in other DCCs.

You could toy with ctypes and directly access pointers but come on, devs aren’t dumb and they can see how easy it is to protect their work in other DCCs vs in Blender. If they’re fine with their source code being GPL that’s the best case scenario, but if they’re not, the BF should at least write some guidelines on best practices of linking data and avoiding performance hits because of the IO operations.

Yes Substance is finally making a plugin, but how many years did this take for them to figure out? these are some of the most brilliant engineers in the world and they’ve been thinking about this problem for at least 5 years. They’ve had plugins in every other DCC for nearly a decade.

It’s great that this discussion is taking place, but I don’t think the current method of linking Blender to closed source is anything to even be encouraged as a long-term solution unless there’s a) clear guidelines on how to deal with plugins and GPL licensing, and b) clear guidelines on how to avoid them when bridging closed source code.

Like everyone else making plugins for Blender, it is my hope that this thread clears up the whole licensing issue with regards to plugins.

2 Likes

asking for documentation on “best performance practices for bypassing both the spirit and letter of our license” is like asking the local police on a guide on how to not get caught speeding/driving drunk, I mean you could ask, but…

2 Likes

I meant it’s a good example of how an add-on can currently be closed source and not violate Blender’s GPL license. I agree that it would be more convenient if (closed-source) add-ons could be better integrated. For example, Quad Remesher for other DCCs is or will soon be modifier-based. That’s not possible in Blender.

3 Likes

Sorry if my comment was phrased in a way to suggest that the BF should write guidelines on how to bypass GPL, that was not my intention.
To quote Ton:

You can create bridges between the domains. This is how Blender can work with other proprietary tools or engines. The bridges (if using Blender code) have to be fully GPL compatible. The closed sw such bridges lead to can not be bundled, it’s your own concern to connect it.

source: https://twitter.com/tonroosendaal/status/1135229219464785920

Now are there any tutorials/guidelines for how such bridges can be created, is all I’m asking for. I don’t think we can look at the creator of Quad Remesher in the face and tell him that FBX import and export is the future of plugins and where computer graphics are headed.

If the Blender Foundation doesn’t think its role is to write such docs, that’s fine, but that’s exactly why people make these threads every month every year everywhere (facebook groups, devtalk blender artists, twitter, etc…).

3 Likes

Then we’re on the same page :slight_smile: I think it would really help if someone with deep knowledge of the C api wrote some guidelines of how such bridges can be created more efficiently.
I mentioned ctypes pointers earlier as a much better alternative to FBX import/export, but I’m not exactly the best programmer out there to write any guideline on this subject, hence why I felt it necessary to mention.

If this topic is cleared once and for all, I highly doubt the ambiguity around GPL and derivative work would still be as much of an issue for some people/companies as it is right now

2 Likes

I just wanted to throw this here, i looked a Houdini presentation the other night…
Hopefully we’ll be able to find a middle ground one day :sweat_smile:
Bests

2 Likes

It may not have been your intention, but given the only reason for such a bridge to exist is to get out of the license, it is essentially what you asked. Following it up with

which once you realize the implications of what you are asking is essentially “once the BF provides a convenient way for people not to respect their license, we can finally put this GPL issue behind us” which may again not be your intention, but… oof…

5 Likes

The problem of making a “tutorial” here is there is so many ways for a programmer to make this sort of software. Here’s an interesting point I think @StefanW made to me once (and apologies if I butcher the explanation):

If you want to make an add-on that has some non-GPL part, (and clearly the part that interfaces via python with the blender API MUST be gpl-compliant), the non-gpl compliant part of your add-on must be able to function on it’s own if not connected to blender, even by a socket or whatever.

That is for example with the remesher example I think the way they work is that you export some geo from blender, send it to the external program (closed source) and remesh there and then import back in. But there’s nothing about that remesher that is reading blender data or really aware that blender exists at all.

Another example is what we did with the RenderMan plugin was we wrote out rib files from python and then spawned the PRMan.exe to render the rib file. PRMan can run just fine on rib files from anywhere

4 Likes

I’m sorry for the long delay in getting back to this thread. At the time the discussion was going on, I was extremely overwhelmed with work, and didn’t have the time to invest into the discussion. But I feel like there are a couple of things that are still relevant to address.

I have been pondering how to approach my reply, and have decided that the most productive thing to do is to simply put the facts in a row, and refrain from speculation or opinion in this post. Unlike my previous posts, in which I expressed my personal opinions and interpretations, here I just want to talk about the undisputed facts (please let me know if you spot any mistakes, so that I can amend them).

  • APIs are not subject to copyright in the EU.
  • API copyright in the US is currently unspecified/undefined.
  • The SCOTUS has ruled that a major case of API reimplementation fell under fair use (did not rule on the matter of API copyright itself).
  • The US operates under common law, in which precedent has a major role, and therefore future rulings on API reimplementation are very likely to have a similar outcome.
  • In light of the previous points, API reimplementation is definitely not copyright infringement in the EU, and probably fair use in the US.
  • The GPL puts not restrictions whatsoever on use or modification (the only restrictions are on distribution).

Make of that what you will.

But in particular, I’d like to highlight the fact that the GPL puts absolutely no conditions on use or modification, but only on distribution.

There were a couple of posts on this thread, claiming that it would be perfectly fine for someone to develop and distribute a GPL incompatible add-on targeting an alternative implementation of the Blender API, but that it would then be a violation to use this add-on with Blender. This is factually incorrect. A user can use, modify, and combine GPL software in anyway, and in conjunction with whatever else they wish, with no restrictions at all, as long as they do not distribute the result.

That’s all. Wanted to keep it short, and mainly address the matter of unrestricted use of GPL covered software. Again, let me know if you spot any inaccuracies in this post.

5 Likes