Blender Edit Mode Performance

The way to extend Blender is through Python. Python is simply not performant enough to be used in modifiers or geometry nodes. So, C/C++ plugins would be needed. The Blender Foundation is not interested in this and no one else has shown up to take on such a project.

3 Likes
7 Likes

So, what about the shipped modifiers? And the code behind geo nodes?

I meant someone with a solution that is ready to be deployed or is very close to it. I really like this project, but the last time I had a closer look, it was still being worked on.

Edit: Just found this page where they mention a C/C++ plugin API would not be accepted. https://wiki.blender.org/wiki/Reference/AntiFeatures . So I was apparently wrong.

1 Like

C/C++ and there is a good reason for that: Python would be too slow…

Oh, right. So Blender itself is written in C, but is only internally exposed for extension through Python? Sorry, if that’s a silly question. Just trying to understand the reasoning, beyond the performance loss.

Yes you are correct, Blender is C/C++ and the only language it supports for addons is python. I recall reading they used to have a more low level language supported, but not anymore. Considering all that’s done in Python it makes it even more commendable what addon makers manage to squeeze out of Blender.

5 Likes

Yes, that’s what actually happens. The actual code which does the heavy computations is all written in C/C++.
Python is awesome as a scripting language. It can be used sometimes for heavier computations, if there are fitting Numpy functions or something like it. But that is not always the case. There are other difficulties with Python, such as parallelizing the code which is quite difficult.

2 Likes

In the latest video, he is using Max 2022.

I also liked this project and honestly i though it died, but apparently it is still being worked on.

Imo its even better than custom modifiers API for Blender. Cause whole 3d community could benefit from those truly openMFX modifiers independent on DCC.


Anyway. Blender users could really benefit from low level API.
But i don’t have hopes for it cause it is in that awful list: https://wiki.blender.org/wiki/Reference/AntiFeatures

Python is great for things like UI tweaking and light scrips that just execute blender native commands in some ways, but when it have to do computing it tends be too slow.

Even when you do computations in external process C++/CUDA/etc. python I/O just slowdowns workflow.

5 Likes

So technically, C plugins and modifiers could be submitted to the devs and added directly into native Blender, but devs don’t want to do it?

Blender simply don’t have the concept of SDK nor API because it is against their philosophy. If anyone want to add anything in C/C++ level, they should added to the source code. There is no 3rd party in Blender. Everything should be contribute to Blender itself.

7 Likes

We are taking about right now about plugins/addons that could be added to instaled Blender. So user could install modifier or something from internet that does the job as performant as native blender operations.

Thing You mentioned: Sending code to Blender foundation is called making and submiting Blender patches, and this is how community is continously helping develop blender on https://developer.blender.org/ .
But thats also tricky and have new modifier accepted is very very hard.

5 Likes

Thanks. That clears it up. In Max the modifier list is wide open. Lots of the 3rd party plugins are modifiers. Max Creation Graph(MCG) allows users to build modifiers and add them permanently, and now Bifrost will allow the same. Always seemed strange to me that Blender wasn’t designed to allow for this. Such huge potential missed out(particularly now with geo nodes), but I now understand the reasoning. :+1:

3 Likes

Although convincing devs of the convenience of an edit mesh/ poly modifier is even more difficult. I don’t know why though, it seems like they are all in for geometry nodes, yet the ease of use and simplicity of modifiers has not even been fully been experimented and fleshed out. Simple things are always more difficult with nodes and easier with modifiers until it turns around at a certain stage.

I always found the MCG idea in Max a stroke of genius, granted I’ve never used it, but the idea of creating something with nodes and to turn this into a modifier that’s the pinnacle of convenience imo. Imagine community node based modifiers, well, that’s both portable and user customisable (just download the ones you may need).

E: I recall seeing some of geometry nodes being used as modifier, but obviously it now only support just a portion of what you could and want to do in Blender (which is more than scattering and instancing objects and pieces of meshes).

2 Likes

The inherent learning curve of nodes is why the devs. decided to go from the original design to something more like Cycles. It is a lot easier for artists to visualize and create operations with Fields.

Then there is the argument that Everything Nodes will ultimately make things easier for developers, because with the nature of nodes increasing possibilities exponentially as new nodes get made, the devs. won’t have to spend as much time creating specific tools for various use cases (as the user can just build what he needs).

In addition, 3.1 is slated to see additions to Geometry Nodes that bring it well beyond the object scattering meant to validate the design (such as the first actual modeling nodes). I do agree that high performance traditional modeling is still needed though (because even Houdini’s legendary node system can’t beat traditional modeling and sculpting for numerous cases).

3 Likes

‘Project Xcalibur’ is what made me give up on Max and, after some swerving: switch to Blender
I had high hopes for it, and I’m always in favour of developers that can commit to a rewrite for longterm benefits, but sadly the reality of it was just always a deep disappointment. Not to mention that ribbon. It took a minute to open at release!

If geometry nodes become slightly more general, there is some potential they could be used instead of a plugin solution. Plugins would still be preferable in several cases, but as far as I can see a lot could be covered by geometry nodes.

4 Likes

It looks like it is paying off for performance in the end. The Ribbon never took that long to open. Which version was the last version you used?

Yes indeed, when they added that Ribbon it was a nightmare for a long time. I never used it. Just took the few useful tools and hotkeyed/quad menu them. That was the beginning of the switch to QT. The Ribbon was so badly designed. It was like something from some office program that someone who never modeled in their lives designed.

3 Likes