[Addon] GrowthNodes - Explore surface growth simulation (Updated for 2.8)

GrowthNodes: This is a Blender plugin for generative content creation and simulation of organic growth processes on polygonal surfaces. It is based on an iterative approach to simulation of organic growth on surfaces using displacement and procedural textures.

Download 2.8
Download 2.7
Follow development: https://github.com/hsab/GrowthNodes

GrowthNodes is a Blender plugin for generative content creation and simulation of organic growth processes on polygonal surfaces. It can be utilized for both destructive and non-destructive content generation. Simulation is stored as a series of shapekeys which allows fine grain control over the baked data and enables easy transferring of blend files from one user to another.

Video Overview:


Background: I was inspired by Computational Growth by Deskriptiv and Wanderers by Mediated Matter to create a surface based growth simulation toolkit. The addon can be used for a wide range of content creation, including but not limited to the generation of geological, organic, fungal, molecular, microscopic, and macroscopic features.

Branches & Features: The master branch is maintained against the latest version of blender and contains only the features whose maintenance and future development proves feasible. Much is borrowed from Animation Nodes developed by Jacques Lucke for nodetree management. His addon was inspirational in how GrowthNodes approaches user interactivity.

The master branch includes the following nodes and features:

  • Mesh objects
  • Procedural Textures (Blender Internal Textures)
  • Image Textures
  • Vertex Groups
  • Shapekeys
  • Animation
  • Geometry Displacement
  • Geometry Dissolve
  • Geometry Subdivide
  • Slope Detection
  • Crease Detection
  • Integer, Float, and Boolean Operations

The experimental branch has many additional features that require compilation, external python modules, are not fully tested, and are often hacky. Moreover since development on this branch has been halted, it only works in Blender 2.76-2.78. However this branch deserves much attention as it offers many advanced and optimized features beyond what Blender could provide. These are:

  • GPU computed Gray-Scott Reaction Diffusion
  • Support for both 2D and 3D (solid) textures.
  • Cython optimizations
  • An experimental engine implemented in Cython without calling Blenderā€™s Mesh API with up to 50x performance boost for select operations.

Usage: GrowthNodes uses Blenderā€™s PyNodes API to facilitate user interaction. Functions and data blocks are represented as self-contained nodes. Such an approach allows for scalable and customized node systems that surpass all static GUI implementation.

Targeted Geometry: GrowthNodes can behave intelligently with regards to existing geometry. User is able to select specific regions based on geometric attributes such face slopes or the angle of crevices. Furthermore one can introduce additional detail by subdividing specific regions on the fly and apply growth only to selected regions. Essentially these are simplified yet powerful utilities to obtain dynamic topology.

Future Plans:

  • Intersection prevention
  • Correct texture preview
  • Additional parameters fo targeting geometry
  • Persistent vertex groups
  • Mesh sequence export

Please report bugs in the issues section of the github repository.

Feel free to share screenshots or videos and let me know what you think about the addon and what suggestions you have.

3 Likes


[Reserved for future posts]

1 Like

Really nice idea! Thanks for sharing :slight_smile:

By the way, are animation timeline connection is mandatory? It`s hard to use such tools on scenes where animation is already set up and complex. Of course, one can always make separate blend just for object creation, but this is not so convinient.

Hi,

interesting add-on,it installed fine,
unfortunately I get following error, if I press set first/last keyframe or ā€œBake Nodetreeā€

File ā€œā€¦/scripts/addons/GrowthNodes-master/umog_addon/operators/frame_operators.pyā€, line 13, in execute
tree = context.area.spaces.active.node_tree
AttributeError: ā€˜SpaceView3Dā€™ object has no attribute ā€˜node_treeā€™

Edit: It works fine in the Node Editor, but not in the 3D View.

Will fix this for the next release. Added it as an issue to github:

Hi, addon install well from zip, but it sont apear the UMOG tab.

Amazing addon.

Could you extend functionality to particle system so you could make various simulation with PS?

Using displacement that way is a really good idea.


(ambitious cochleas)

Now i can add this to my arsenal of warping toolsā€¦


(unbreakable carapaces)

Thank you very much, and I hope you are going to build on the already good concept.


(molly poxies)

Iā€™m gonna try that experimental branch if Iā€™m able to make it workā€¦

Hi,

I made a video with your addon, hope you like it.

will show up as GrowthNodes not UMOG. Unless youā€™ve installed the experimental branch but I doubt it

These examples are great.
Thank you both very much. Excited to see what else youā€™ll be making.

Iā€™ve tried to build the experimental version. Everything seems fine, anyway when I try to start it I get this error:


Am I doing something wrong? Moreover, could you shed some light about whatā€™s behind this? I see itā€™s using Alembicā€¦
Thank you

Hello,

This looks like a very interesting addon. Unfortunately I am getting the same error message as @DERBENDER
I am using Bender 2.79 on a Mac.

Cheers

Nice addon, it works for me on 2.79 nightly on Win 10

Addon has been updated for 2.8! Please test and let me know if there are any issues.

4 Likes

So. Gave it a try right now. Iā€™m on 2.83beta.
It shows two kind of problems. One is on textures. I create a default procedural texture and when I save I get the error:

The texture list on N panel is empty, and previews doesnā€™t show. Iā€™m trying a very simple nodeset:

When pressing on bake, I get:

Looks like it cannot find the default plane obj Iā€™ve added for testingā€¦

Nice one, though it only works up to 2.82 for me.
No 2.83 or 2.9.

Textures and Objects dont get recognized/listed as in 2.82.

EDIT: ah, kabu was a bit faster :smiley:

I think this is a great direction to explore, especially as we see remeshing integrated so effectively to Blenderā€™s topological toolset. I have tried it on several versions - all mentioned above - and oddly enough, my results have only ever jumped into existence; no animation. Any ideas what Iā€™m missing?

1 Like

Just tested with 2.90.1 and seems to be working. There were some minor issues that should be fixed in the latest version 1.0.1. Strangely enough I didnā€™t have any issues in 2.90.1 with textures and objects. Is this specific to 2.83?

Is this specific to 2.83 or does it also show up in 2.90.1?