Procedural Meshes using Automata

Many of you have probably heard of cellular automata, popularly known as “game of life”. Here, I use a similar technique to generate meshes in 3D. The main difference between what I did and cellular automata is that my approach is based on automata that walk around and write things on a 3D grid, while cellular automata consider each cell to be one automaton that does not move.

A simple example of what can be done:

The automata are based on Turing Machines, with the main difference that they can also duplicate themselves.

Also, in order to avoid the cube-ish effect one often sees with the “game of life”, I used spherical coordinates instead of Cartesian (the usual x,y,z). The script is meant to be generic enough that you can choose another coordinate system if you want.

Attached is a standalone sample script. You can just load it in Blender and call it, and it will generate one mesh with around a million vertices. The code is released under GPLv3, and you can tweak it for your own projects. If you have any questions or feedback, feel free to comment.

automaton_generate.py (10.4 KB)

12 Likes

Great work Millani.
Thank you for sharing!!

1 Like

Hi Milani.
Nice script, I´ve toyed around with it today.
Thanks for sharing.

1 Like

That looks really cool, specially the second one!