@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.
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
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.
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.
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.
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.
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âŚ
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.
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âŚ).
Then weâre on the same page 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
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
Bests
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âŚ
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
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.