The Blender development paradigm, ideas that can be borrowed from other FOSS projects

The point of this thread is this, my personal opinion at least on the way that Blender is being development is that the system has improved since the last couple of years, but I can’t help but notice that there’s a new breed of FOSS application emerging that appear to be doing certain things better and with more efficiency.

Noting that, I do wonder if there’s anything from applications such as Krita, Godot, and Natron (in terms of the development model) that could be useful in accelerating the rate that the Blender app. becomes more powerful and professional in the eyes of serious 3D users.

For instance, the points I can at least see from Godot’s development

  • Having at least a decent focus on usability attracts new developers (as in those who contribute to the source, not just users). It seems to me like people are more likely to become a contributor if the program ranks high on the usability scale.
  • Having a timely patch review process in most cases (especially for smaller changes) attracts more developers and help give the project an impression of being truly driven by the community. The Godot team has someone who more or less is dedicated to reviewing patches for starters, as a result, the total number of contributors have quickly got to parity with Blender and is now pulling ahead. Now it is true that Blender has seen more community contribution in the past year, but the rate which Godot’s volunteer numbers have grown should be notable (remember that it’s been less than a couple years since Godot 1.0).
  • The two points above allows for more development to occur without needing as much funding (Godot is being developed at a rather decent rate now despite being on what might be considered a shoestring budget compared to Blender), that is because of the large number of volunteer contributors that sharply reduce the dependence on paid devs.

With that example in mind, what other things do you think the BF could learn from other FOSS applications (please note that I am not asking for a complete replacement or upending of the current model, but more in the vein of integrating ideas that we know are working well for other projects)?

EDIT: Take Fweeb’s numbers into account

HYDRA/USD…

I was on Blender Coders IRC the other day and was told that Ton, “was not impressed” by USD/Hydra, and that it “isn’t the magic bullet we need” for Blender. Drawing 100billion polygons should definitely count as “impressive” and real-time animation/development with extremely high poly scenes is definitely a “magic” bullet.

My previous points completely skip over the fact that USD would allow for tighter render integration and a superior alternative to Alembic for pipeline integration.

I’m working on a USD integration. I would love some help. When industry leaders put out Free Open Source software solutions you pay attention. You pay even more attention when those solutions solve quite a few of the problems plaguing a product you develop.

Hi, if you have any points about the way Pixar is developing these libraries (things that that the BF can learn from) then feel free to outline them (considering the fact that whatever they’re doing, they are getting the attention of the industry as a whole).

Otherwise, I would try to keep all HYDRA/USD debate over whether it should be integrated in the thread dedicated to it on the news forum.

Since I work on blender, I feel that Ton doesn’t care about the industry.
I like the fact that blender can do everything, but I hate the fact that blender is really a closed software.
If a studio had not give us the alembic patch, I think we could have wait years to have it.

If you took Natron as example, they add all the free/open source solutions they can like openFX etc, Blender don’t do this, it’s like having a free/open source software without any free/open source technology.

As a freelancer, I would love to have a great viewport like hydra with cycles shaders etc like the PBR branch.
Maybe it’s not compatible.

not impressed(?) while Blender struggles with a mere million vertices being edited
i’ve observed that static hierarchical rule (dictators, kings… life-long) approach is destructive and inefficient, while dynamic community with acceptance to change always prevail… feels better to be part of, has more fun, is alive & kicking… tho, nothing new, ancient knowledge: Iron rusts from disuse; water loses its purity from stagnation… even so does inaction sap the vigor of the mind.

You’re going to need qualify this with some real numeric data. Looking at the last 30 days of development (on OpenHub), Blender had 581 commits from 33 contributors (3 new) while Godot had 486 commits from 39 contributors (13 new). Specifically, which part of that puts Blender to shame? The 13 new contributors number is interesting, but but in terms of flat numbers, there seems to be a lot of parity. What’s more interesting is the fact that an increase in Godot development seems to have coincided with their decision to adopt a shorter release cycle and the recent push to a 2.1 release.

There are things to be learned, sure, but I’m not sure the numbers necessarily align with your conclusions.

This point is completely false.
Blender uses Alembic, Bullet, Freestyle, OpenEXR, Jack, OpenAL, LibMV, LLVM, OpenCOLLADA, OpenColorIO, OpenImageIO, OpenMP, OpenNL, OpenSubdiv, OpenVDB, Python, Cycles, OpenShadingLanguage…

Thanks Fweeb, for that info.

Blender is like a rat among dinos after the meteorite has hit the earth…

If you talk statistics, then I’d also point to Miika Hamalainen’s website which gives per developer stats, so that people might realize better the number of committers there is, and how much work they put into it. I don’t want to dismiss the committers (I am one, and a lazy one for sure :wink: ), I just want to hopefully open people’s eyes on the subject. Maybe they’ll stop considering the (unpaid) Blender developers to be on par with the 2000 engineers working at Adobe, and stop whining when they don’t see their pet feature being developed by some unpaid random randy.

You forgot OpenGL, it’s quite important, since it makes a cross-platform Blender possible.

Alembic is new, opensubdiv is not finish ^^

camembert, cheddar, roquefort, what kind of cheese would you all like to accompany your whine with. Only less then 400 donators to the development fund, Blender community you truly have nothing to complain about.

You are unconscious. You are opening a door to Vulkan’s trolls.
Why do you think I forgot OpenCL ? (It is not a ccmake target when I build blender). :wink:

Do you really not understand what open source means ? It does not mean you are entitled to whatever you want, as a business owner you should understand that

But if the BF did a few changes such as getting a dedicated patch reviewer, then the chance of a random randy coming along to code their pet feature may very well increase :slight_smile:

Now I am aware of the argument that the person committing the patch should have knowledge of the area of Blender it impacts, but it doesn’t mean a patch reviewer isn’t a good idea (instead, he could do things to facilitate and accelerate code review such as checking for obvious errors, checking for possible quality issues such as mass duplication of code, checking to make sure it follows style guidelines, checking by way of applying the patch to a build to test regression files with, ect…).

Aren’t the paid developers consciously spending time each week for code reviews since several months already?

I never said I should have all I want, don’t make me say what I did not said, I said that Alembic is a industry standart open source, in other software since years.
For interoperability between blender and other softwares that should have been taking in consideration since a long time, not only for caching.
Right now we have it and this is really great, that will change a lot blender.

Due to their work, they can only spend a small fraction of their time helping people get their patches included.

Godot meanwhile has someone who does little more than look at and review patches (note that this does not have to be a paid position if there’s someone willing to volunteer their time, which is the case with Godot).

This is even more important now with Campbell stepping down from his duties (he was one of the top patch reviewers on the developer website). In addition, recent dev. departures highlights the continuing importance of volunteer developers and ensure that Blender development only speeds up rather than stagnate.

Obviously, there is no one who is willing to volunteer to basically only review patches. That’s a fact. If there was someone, we wouldn’t talk about it here. I am pretty sure that talking about it won’t change that.
When people leave, there is a chance for others to take their position. That’s just the way it is. When Brecht left, a lot of people feared that this was the end of Cycles, but obviously it wasn’t. Other people who were already involved and new developers continued with it and are progressively improving it.

As you seem to be looking for reasons, why there aren’t more developers, you may also have a look at this community. This community is the main forum for Blender and for many it is very much the Blender community. Since this forum is very much about freedom, including inappropriate behavior. If interested developers look for topics, they will very likely find a lot of threads from this forum that are everything but welcoming for developers.
I can’t speak for other, but this is the reason, why I am not a volunteer developer. At least for me, that’s an important factor and I would be surprised if this doesn’t have an impact.

I strongly believe that one thing that can be done to have more volunteer developers is to have stronger rules in this forum that don’t allow inappropriate behavior, that don’t allow turning every productive discussion into a political debate about what at the end Ton does wrong and that the programmers are not listening and not participating in this community, in which they are not welcome due several very loud members.

OpenGL and OpenCL are totally different… my understanding is that OpenGL is for 3d acceleration on the gpu (viewport and what not). OpenCL is general computations on the gpu (cycles / compositor)