Differential Growth Addon

Hello everyone :wave:

I’m excited to add my humble contribution to the community. Meet Differential Growth Addon — a procedural mesh generator that produces nice curly organic shapes.

A couple of examples:

If you like what you see please check out the tutorial video and let me know what you think.

30 Likes

Ermahgerd YES

this is all the right kinds of weird

4 Likes

It also doesn’t have to be a flat shape. Just to give you folks some ideas, here are some 3D-printed pendant lamp shades which I created with this very addon:

9 Likes

HEEEEEELLA slow for me with solid objects tho.

it would be really cool if it could automatically convert the weight paint to vertex color for use in shading

there’s a script for that but i don’t know any python myself or how to work with these things at all even.

https://bitbucket.org/kursad/blender_addons_weight2vertcolortransfer/src/42070d95e0063df441b4f2d617492669b690592c/src/vertex_color_weight_transfer.py?at=master

Yep, it can be slow (or even hang as per my note here), especially if:

  • the repulsion radius is too high with very high resolution (means more vertices are processed for calculating a single vector — O(N^2) + k-d tree performance cost)
  • the number of vertices is generally high; on my machine it becomes sluggish at 50-60K vertices and outright slow when above 200k vertices or so, and applying subdivision surface on top can take a few minutes)

I currently don’t know of any reasonable workarounds, but lmk if there are some things to try.

@Boris_Okunskiy

Thanks!

Great fun to play with, found it last night over on r/blender

Any chance you have any plans for better control of animating it?

I can obviously run bpy.ops.object.diff_growth_step()

but controlling via Geonodes with #frame would be great!

1 Like

Yep, still watching the development of geonodes; at the time of writing I can’t see how to fit the simulation based algorithm (i.e. each step depending on the result of a previous step) into a node model (i.e. a function executing right-to-left); plus the tools for working with topology aren’t nearly as powerful as Python’s BMesh. But I keep looking.

2 Likes

Yes, I realise the problem, until we get loops in geonodes, not possible yet,

But how about some sort of hybrid?

a kind of one way animation tied to the frames and an initial state, much like baking?

Baked mesh anim save every model (since vertex count is gonna change)

Or animating by shape keys until the vertex count changes, then load next mesh on frame x.

Maybe I should just rip each model at each frame, and save to Alembic.

Thoughts?

Hey @Boris_Okunskiy, I just discovered the addon and I love it! I was thinking, this plugin would fit perfectly into the simulation nodes framework that’s coming with Blender 3.5. Do you have any plans of extending this addon in the future?

Hey :wave: Simulation nodes is a definite game changer. It feels like everyone could do something similar to what my addon is doing by simply putting together a few nodes.

That being said, one potential blocker is the adaptive edge subdivision; the algorithm relies on being able to insert new nodes (analogous to cellular mitosis from where the whole “growth” part emerges), and the results you see are largely possible due to a nice topology created by the addon. This functionality definitely exists in Python APIs, but I haven’t seen anything similar in the nodes just yet.

On that note, does anyone by any chance know whether there’s any development planned for adding selective edge/face subdivision nodes?

2 Likes

still working with 4.0?

I am wondering how you “screen-captured” then animations in your demos?(since the growth add-on can’t be animated).
Thank you.

Beautiful work, mate :+1: