On licensing and 3rd party plugins

GPL is great, until you’re a production studio without an R&D department. There are dozens of off-the-shelf solutions in the CG world that Blender could benefit from with a simple plugin that will never see the light of day in a Blender studio because of licensing restrictions. As others have already pointed out, GPL necessitates reinventing the wheel every time you want a new feature. It could even be argued that Blender is impossible to use in certain productions today because of shortcomings and failures in the particle, hair, and physics modules, all of which would be considered vital, immediate to-do items in a commercial house. In the Blender world, we’ve been meandering around these broken pieces for the better part of a decade, simply because (understandably) no one has the interest or knowledge (or funding) to complete these tasks.

A pure GPL ecosystem is great for those who never intend to spend money, but really lets down those who are willing to. The merits of either system could be discussed from here to kingdom come, but I don’t think that anyone in good conscience could argue that a permissive bridge to Blender wouldn’t attract a lot of high-profile attention to the project that simply doesn’t exist now for any developer whose interest is making a living adjacent to the Blender world.

That’s a bit like saying, “this farmer’s market would get a lot more foot traffic if we built a shopping mall next to it”. The short term effects may be obvious, but the longer term effects are not.

Ok, that’s of course an imperfect analogy, and I don’t know if commercial plugins would be a net positive or negative in the long term. But I don’t trust anyone who claims to be sure it’s one way or the other.

You didn’t mention the part where users might have to spend over 1000 USD to get professional VFX, rendering, sculpting, and UV tools (and that does not include upgrades or subscriptions).

At that point, it’s not that much of a leap to just purchase Modo or even Maya and forget about Blender (since the latter would devolve into just a base that requires some big spending to make it feel like a truly professional DCC app.).

One of the purposes of Blender is to provide professional-quality 3D technology to everyone, a non-GPL Blender with the devs. just working on the base means hobbyists and individuals will be limited to just basic 3D technology (professional stuff will only be in reach for studios). This would be especially true now since Blender has about killed off the lower-end of 3D applications (don’t see much activity from Carrara, Bryce, and Lightwave anymore. That leaves just a cut down version of C4D, “Indie” versions of big apps. with major restrictions and limited production ability, and Japan’s Shade 3D for solutions without a 4 digit price tag).


The BF knows about the resource burden due to the need to ‘re-invent the wheel’ in many areas, that is why they are putting more focus on patch review/onboarding new developers than in years past, getting sponsored development, and putting out services like the Blender cloud to help fund the creation of production features and content that can be used to showcase Blender. Then you have the development fund (another avenue to use to help ease resource constraints).

It’s easy to allow for GPL plugins. Anything else, no. Changing the license is not an option, as it would require the permission by everyone who has ever contributed code to Blender.

If you want an open source 3D program that allows for non-GPL plugins, blender is not it. You would beed to start from scratch and write another one.

Well, BTolputt have mentioned a (possible) solution in a earlier thread :

and from Campbell’s reply in the next post :

The legal situation of the Nvidia Linux driver is a matter of dispute. You’d have to fight that in court to get a definitive answer.

BTW, that hypothetical independent MIT plugin API would require that such an API be developed independently and outside of Blender by a third party, and be reasonably disconnected from Blender’s internal workings so that it cannot be considered a derived work. It would need to work with other 3D applications too. Seeing what a struggle it is just to get a rigged and textured figure from program A to program B, I don’t have high hopes for a universal plugin API that would support particle systems or physics simulations.

The suggestion that Blender could have a permissive API (to bypass the GPL - even in a limited way), is similar in some ways to suggesting we re-license Blender.

To add an exception to the GPL we would need copyright holders of Blender’s source (including authors of 3rd party GPL libraries) to accept it.

The gray area here is we could allow people to violate the GPL on their own systems (which relies on not distributing Blender with the plugins that aren’t GPL compatible).

And footnote that inter-process communication (IPC) can work around this already, it’s just not very convenient for many tasks.

If it is legal then it is not a violation of GPL - right ?

So the correct term for this gray area must be ‘a potential violation of GPL’.

But FSF have done nothing about NVidia’s code in the Linux Kernel (and it’s been there for years now). So that should give a hint on what shade of grey we are talking about.

The Nvidia/Linux situation isn’t fully comparable, as the Linux kernel exports two kinds of symbols, one of them marked “GPL only”, the other “vanilla”*. Don’t ask me about details though, I’ve never touched Linux kernel programming.

In the end though, this is a hypothetical question, since I don’t see any generic 3D plugin API out there that Blender could adopt if we wanted to.

It’s the business model of maya, modo, houdini,… and also unreal, valve, unity,… and it work for all of them and they obtain millions in benefits. It is not a unproven model, is the typical business model in a economy, you don’t work alone, you colaborate with thousands of companies. From a laundry to a multinational, and they colaborates with a farmer in the middle of africa or a hightech company in california.

If the BF have a goal of a complete open Source 3D software… how could you do that if you can not, or you are not interested, or you don’t have money to implement all things in a complete 3D software? and if for example we want to make a crowdfunding, the developers are not interested in review it, or they decide that it is not a good way to make plugins.

OK, for a hobbyist could be a good way. But I need the tools now, and I need to go to modo/maya/unfold3d/… to have the feature and it is not optional. If I need hair tools for a complex hair, I need it, I cant do a bold women.

The farmers are richest than ever. And the shopping mall buy things to the farmer (because shopping mall don’t have farms and they don’t obtain milk from “capitalism”). It’s a basic economic principle that works in all the world.

I can not tell that I’m not sure, because I’m sure that blender will need it, in some moment blender will need to talk with the rest of the industry if they want to be a complete tool.

And people pay it, all studios pay and use modo, maya, max, substance, arnold,… why?

Because pay 3000$ in software for a worker is cheapest that to have that worker without tools months. And use blender is more like to have faith, and I do it, but I see every day that ask it to the rest of people is not usefull. Because people preffer to use a pirate reliable software.

If the purposes of blender is to provide a professional quality software, maybe Blender needs to take in account to the professional developers and workers.

Right, I should have said: A configuration that would violate the GPL if it were distributed.

You’re mixing up the farmers market with the farms.

Companies do not like “gray areas” and the mere possibility of being sued.
It has already been explained the practical impossibility of changing Blender license and the impossibility of allowing third-party proprietary plugins. I’m not sure what is still being discussed. About wishes that are not and will not be possible to fulfill?

Sorry, I confuse the name because in my country have different names.

In that case, the example will be that actually you have a giants malls centers, all together (autodesk, foundry,…), and you try to enter with your little shop and tell to people “I could satisfy you exactly like this mall, but more expensive”. Of course that is not the same sell a product that a service. Blender and 3D suites are a long term service (in the shape of a product).

I didn’t see that it impossible, only hard. Are different things.

In my case I’m learning from developers pov, and seeing if I need, at the end, change to modo because my wishes to have a reliable tool for my work at long term. I know that people know to uses various program, but know perfectly a software is a different thing that needs years of learning. Because for my 3D is my work, the thing with I pay the bills. And I cannot risk my future to a software because have a good phylosophy.

I don’t tell that I won’t use blender, I love the modeling tools. But maybe I must desist to see the tools that I need and spent my time learning other software deeply.

Even in the mainstream apps the importance of commercial plugins diminishes and importance of open standards as Alembic, OpenVDB takes foothold.

If anything, it would be very welcome to have ability to do scripted MODIFIERS - a facet currently missing.

Let’s see, what could one do:

  • Weighted normals could have been scripted modifier

. Having after SubD would result in dense enough mesh to be used as mask in Shaders for edge wear with no render time penalty.

  • Non destructive primitive creation (as in Max, Maya)
  • Complex primitives such as foiliage (trees, ivy) without destroying history
  • Fixing manifold geometry such as triangulating only Ngeons(bad in gamedev pipeline)
  • Custom Duplication, Arrays (e.g radial) and scatter to points without current overhead.
  • Custom Deformers and noises
  • Remove doubles/Weld closeby points (3dsmax welder). Useful for Bevel modifier and many other areas.
  • Clipping + Symmetry modifier like 3dsMax
  • Solidify/Extrude with Profile
  • Subdivide limited by Vgroup
  • Creating mesh for Cloth Simulation including mesh resolution independent Seams/Stitches so simulation could be scaled. (e.g Marvelous Designer)
  • Close Holes/Polycap!
  • L-Systems (trees, plants, feathers, complex animations - ground cracking etc)
  • Custom Mesh readers (e.g Mesh Cache). For example obj sequence reader or why not communicate by modifier with any external independent app such as InstantRemesh having auto retopology?
  • Tension and wrinkle maps!
  • A lot of mograph effects in animation

… the list goes on and on.

In Houdini you do not need plugins nor you have such problems, because user can help oneself with nodes as well as scripts (VEX, Python nodes). Max also has MCG nodes, Maxscript. Maya Python + nodes. Kind of feel left out here :slight_smile: Power of blender, a side of it’s amazingly talented developers, is also community. I think means should be created to harness that in this sphere included.

There are technical reasons for that. First of all, Pyhon is considered as being too slow for that in general and it is not possible to make it run nicely alongside the dependency graph. Jump to 53:01 in case it doesn’t automatically.

Well, nobody is stopping the community from contributing a patch that enables Python modifier scripts. If you know how to write Python modifiers, surely you’re smart enough to write a Python modifier API. *hint *hint :wink:

Check the video. At least right now, Sergey is going to stop everyone :smiley: