Deleted

On the matter of manpower, again it really depend on how useful the code really is and how clean. Even with limited power if you create a fork of blender with 50% faster Cycles, you can safely assume that Blender developers will do their best to have it included inside Blender core source ASAP. So I would say in that case, keep improving your code, make sure you create a lot of noise around it and the more you do that the faster in will come inside even with limited manpower. After all Blender like any software out there wants to keep users happy.

Cycles was created after the BF started requiring that copyright on all commits be assigned to the BF.

Brecht actually went through the GPL-mandated process of getting the permission of all contributors before he changed the license, though it’s not like it was that difficult because his licensing plans were probably known to Ton and it’s easier when you don’t have a long list of contributors to contact.

Blender has had perhaps hundreds of contributors over the years meanwhile and in some cases might be impossible to even reach them to get an answer.

Cycles was easy, because it’s technically separate from Blender. An email went out to myself and probably 6 or 7 others that said “We want to change the Cycles to a new license, respond to this email and tell us if you’re okay with this.” And, clearly, everyone was.

Blender, on the other hand, would have to track down a HUGE number of developers, many of whom have been inactive in the community for up to a decade or more at this point. Some may not even be able to be found. (Interesting side question, who do GPL rights revert to in the case of death?) Those who disagreed or couldn’t be found would have to have the entirety of their code redone from scratch. Not impossible, but not a weekend project either.

While I personally have been critical of the GPL license mainly due to the inability to interface cleanly with commercial packages (namely renderers), I see why the foundation chooses to keep it this way.

Isn’t it clear what I’m saying??? People are implying that a C/C++ plugin system is useless because of the GPL. THAT is why the discussion of GPL in this thread. I am remarking then that the python plugin system is just as useless and yet plenty of python addons (INCLUDING COMMERCIAL related) are created.

If you read the first post here is NO comment about commercial plugins or GPL, purely his post is about a C++ plugin system for efficiency and more deeper modification possible through plugins.

There is ways to commercialise a plugin to blender without using direct sale of the plugin and the discussion of GPL has been done to death.

Thread is about C/C++ API.

This is incorrect, BF does not require copyright assignment.

The reason cycles could have its license changed its it had very few developers (and over a shorter period of time ~ guessing 6 or so).

Check the text where patches are submitted, it only asks the code be GPL compatible, not to hand over any licenses.

It doesn’t? I was sure i had read something about copyright assignment somewhere… In any case I stand corrected, thanks.

Do you need a C++ plugin API? Then I assume you know Blender and know C++. How about you write that plugin API? As a potential user of said API, you’re a prime candidate for designing and implementing it, as you will already have use and test cases.

Python is in Blender for the precise reason its just a way easier language to learn than C. Also the Blender python API is easier than understating Blender source.

The same argument could work in favor of a Plugin system. But , and here comes the big BUT, the reason to move from python to C is of course speed. But speed also requires a good understanding of the architecture, as such you need to read the source. Which defeats the purpose of the Plugin API in the first place.

Also about compilation, its not really that much of big deal. It takes 4 and a half minute to build blender from scratch with CUDA GPU acceleration included on my iMacs mobile quad core. Not bad for 1+ million lines of code.

To be honest,if you look at the python addons,none really extend and improves Blender at the level of a commercial plugin.
Addons are useful only for small little tasks,so at the end the only real development will be always made by Blender foundation.

One should also narrow down the bottleneck before focusing on a solution. A C API will only improve performance, when the Python API before was the bottleneck, that is the interface between a plugin and Blender. If the plugin itself has the main bottleneck (let’s say it’s doing an expensive simulation), then the plugin needs the optimization and not the API. One can very well write a whole plugin as a C dll, and use a thin layer of Python glue with ctypes to connect that C dll to Blender. Ignoring licensing, this is how one would fully integrate Arnold or Mental Ray into Blender. Only when that thin Python glue layer is the bottleneck, then a C API would make a difference, and for that to be the case, the rest of your plugin must be really fast.

Also about compilation, its not really that much of big deal. It takes 4 and a half minute to build blender from scratch with CUDA GPU acceleration included on my iMacs mobile quad core. Not bad for 1+ million lines of code.

Also note that when making changes just to parts of Blender and rebuilding it, only the parts affected by the change will be recompiled.

none ? See this is what annoys me, how you people draw these conclusions ?

ivyGenerator -> procedural generations of plants
ANT landscape -> procedural generation of terrain
Bsurfaces -> curve based modeling based on grease pencil
Inset Polygon
Fracture generators
City generators
Asset managers
importers and exporters

Tons upon tons of crucial tools and enhancements brought to blender via addons. The list is almost endless. They are all tools and tools are what Blender is made of.

The bottleneck is the not the API itself its cpython. Dynamic variables come with a big cost. Take a look at numerous cython benchmarks replacing dynamic types with static ones, the speed up start from 2-3 times and end up to 50-100x times , i think i saw one that was 1000 times faster. And cython is basically cpython with added C capabilities.

So you could get away from it by coding in just python and cython. But using the very features that make cython fast is like coding in C with the added bonus you get python syntax as well. So you end up doing it in Blender source since integration is still more flexible , you implement a modifier and you are done. So no even in that case a C api would not make much diffirence.

I agree on your note about compilation, which further proves my point, that a C API may be desirable but not really needed. Frankly I would prefer if developers spent their time in areas that are far more useful than a C api.

hmm i see no reason to be annoyed by renderdemon’s statement. I think what he refers to is plugins like Frost, Rayfire or Phoenix FD. All work on a huge amount of data and need a tight integration into the host application’s event system.

None of the examples you listed come any close to the complexity of these plugins, although they are indeed extremely useful.

But still I think the current state of blender would offer ways to integrate such systems (putting aside the licence issues) but it would be very hacky and a pain to code.

Plenty of crappy and mediocre commercial plugins out there, why we should pick only the top ?

well Bsurfaces used to be commercial. Addons are made on people free time , but nothing stops someone from coming up with an addon that far exceeds commercial plugins. And the problem with commercial plugins is that there too few of them that are really that good. Addon on the other hand are tons of them out there. I rather have tons of good features , rather a hand full of great ones. Thats my vote.

here is his quote

Addons are useful only for small little tasks,so at the end the only real development will be always made by Blender foundation.

I dont see a city generator , plant generator and Bsurfaces as small little task. Because they are not. An addon can save you hours of work.

Yes,I repeat,nothing in this list can be considered for me comparable to a commercial plugin.
Importers and exporters are simply too slow to handle an huge amount of polygons(there are exceptions,like the work done by Bdancer for the vray exporter,but you need to download a modified blender build,so I can’t call it a “python addon”)
Bsurfaces was a good addon(I bought it),but it’s not parametric,so, it’s really not a curved based modelling tool(to call it like that you need an history).
Other tools are useful,I’m not saying they are not,but are not complete enough.
Not to underestimate the work made by a lot of talented people here,but everytime someone starts a good python project at the end it’s clear that they are only prototypes.

this will doom blender to the shadows

n00b question:

its possible to make a new blender build/trunk with ONLY the features done by active developers, change this new trunk to Apache or MIT and to have 2 versions… as community build -GPL- and commercial build -Apache- ?

Suse, RedHat, have both version… commercial and community… what about Blender ?

*Ty very much all to take time to reply my question :smiley:

To be honest,if you look at the python addons,none really extend and improves Blender at the level of a commercial plugin.
Addons are useful only for small little tasks,so at the end the only real development will be always made by Blender foundation.

I disagree with renderdemon on this. To say that AddOns are only for little tasks is to show how little you know about the power of the the existing python API.

With my AddOns I strive to extend Blender functionality to the point where the AddOn does actually add a new viable feature to the system. There are many basic features that are missing from Blender that other 3D packages have. My entire RE: series adds Mograph like features to Blender. If you check the Maxon site you will see that Maxon does not have any problem at all considering the features to be of value and requiring payment/licensing for such features.

no its not , since it will be derivative work and so it will be “polluted” by the GPL. The only way to do this , is to rewrite Blender from scratch. Even a single developer’s one line of code which is GPL will “pollute” the entire Blender and force it to be GPLed.

Also the new code will have to have absolutely no relation to the old one. So it wont be a remake of Blender, it wont be Blender at all.

In short “Once you go GPL there is no way back” and hence why GPL is not very popular licence.

Ok,I’m waiting for an addon that can deform 100000 vertices in realtime(to say a number),or an addon that can do fluid simulation.
The point it’s not How much I know about the api,the point is where are addons that handle a large amount of data without waiting forever,this is what I’m talking about(frigge understood correctly what I’m trying to say)
As far as I know they don’t exist,and not for lack of skill by the python coders.
If python is so good,why other applications use a c api to extend the program?