Opening to modifier addons

Hello,

This is my first participation here, so I hope the point I will talk about makes sense and I’m in the good place to talk about it.

The idea is to develop the ability to make addons that can be plugged as modifiers, so that potentially many operations could be done in a non destructive way.

A secondary idea in the same scope is to have hierarchical modifiers instead of linearly chained modifiers.

But before diving into the code to see the how to, I’d like to have some feedback about these two points, as probably, some people already had the same idea.

Does that make sense?
Is it a “so good” idea?
Is there some structural impossibilities to do it?

Thanks for your replies.

Kinda sounds like the modifier nodes proposal , i don’t think that ever went anywhere though, would be neat if someone picked this up again.

Thanks @LazyDodo for this answer. That will make me think more about the approach.

At first glance, concerning the usage of it:

  • Is it so different from existing addon node systems (AN, Sverchok)?
  • From an user point of view (subjectively), it is easier to set parameters in the properties panel
  • But node vs. properties panel can be handled the same approach as for material: allowing both
  • Node system is very powerful, but hard to read and maintain as things get more complicated (that can lead to huge maps of nodes)
  • But node system can also include calls to Python scripts
  • And of course node systems are accessible for people who are not in coding things
  • Node systems can allow more easily code generation (by the way I’m not aware of that in Blender except for the shaders, and I don’t think there is any JIT C compilation, but what about integrating Lua scripts, for instance?)

In parallel, I have to say that the wiki is great about how to install the source code and make it compile correctly (same for how to add a new modifier, so that I now have a new “hello modifiers” set up in the modifier panel). I’m now trying to learn the inside of bpy and am looking for a solution to handle eModifierTypeFlag_xxx dynamically as I may need to.

PS: I don’t know if forums like discussions are allowed here, or if it is just supposed to be question and pure answers like in stack exchange sites… so please tell if I do bad here

I’d love to have python modifiers. Is there a specific reason why this hasn’t been implemented ?

Modifier nodes sounds much better but also way more work.
Python modifiers on the other hand wouldn’t be that hard to implement, right ?

@Macelaru_Tiberiu, can you explain a bit more as what you said is one of the main point of my question?

One of the fracture modifier guys once did some testing in this area as well, you can find his work here

https://blenderartists.org/forum/showthread.php?441715

1 Like

If i recall correctly, from core devs point of view, main python modifier stack issue is the lack of multi-thread support.