Git Product home page Git Product logo

growthnodes's Introduction

GrowthNodes

An iterative approach to simulation of organic growth on polygonal surfaces using displacement and procedural textures

GrowthNodes 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 for Blender 2.8
Download for Blender 2.7

Compilation

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

Watch video

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/non-organic, fungal, molecular, microscopic, and macroscopic features.

Created with master branch

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

Created with master branch

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 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.

Created with experimental RD

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 user centric design.

enter image description here

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.

Coral growth simulation on text

Future Plans

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

If you have any suggestions feel free to contact me @hiradsab on twitter.

growthnodes's People

Contributors

hsab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.