Logistic Map Bifurcation Diagram
In the process of learning about non-linear dynamics I created this image:
Modules With Juliabox
I am using juliabox to write code for the Nonlinear Dynamics course over at the complexity explorer. The complexity explorer is a project setup by the Santa-Fe institute. Check it out. It’s awesome.
Simple Debug Method And Evolved Shapes
A Way To 3d Print Skeletons
Metaball Skinner: Update (Mar 24, 2017): I made this functionality into a blender add-on! Get it here: https://www.blendermarket.com/products/metaball-skinner
Genealogy Graph of an Evolution
Searching around in the documentation of deap, I came across a neat example of displaying a genealogy graph (a.k.a. family tree). I ran an evolution and here is the associated genealogy graph:
First Evolved Shape, Hairball
The first shape has been grown using an evolved program! This is part of the plant grower project I am working on. It doesn't really look like much, but that's because it is evolved to grow as many nodes as possible in a set amount of time. So it is not surprising that it looks like a dense hairball. I suspect that results will get more visually interesting when the fitness criteria encourages compromise. Here is the shape:
More Randomly Generated Growth Rules
Here are some more plant-shapes that are 'grown' in the same simulation environment, but with different randomly generated growth rules. Note the variety in shapes! See the previous post for a detailed explanation. I am posting the most interesting structures I have come across, but many of the randomly generated rules result in 'boring' shapes, like a vertical line. Beware my aesthetic bias!
Randomly Generated Growth Rules
Last post I was figuring out how to get a genetic programming package inside of a 3d modeling program called blender. Today I got the simplest use of the genetic programming package woking: generating random trees of functions, to make a sort of 'processor.' I took the randomly generated processor and plugged it into the plant/coral simulation I have been developing. In this simulation a bunch of spherical particles jitter downwards, roughly simulating the diffusion of nutrients in water or light in a forest. A point, or collection of points, acts as a 'seed.' When a sphere collides with the seed, it creates a new point and an edge. I will refer to the points as 'nodes.' Each node decides where to put the new node. For the moment this decision is based on the position of the collided sphere, and it's relative position to its parent node.
Getting DEAP (or any python module) into Blender
In my quest to make lots of different interesting shapes, I am attempting to use DEAP inside of blender. Deap stands for Distributed Evolutionary Algorithms in Python. Deap has a module for implementing genetic programming, which I am curious and excited to use as a way of automatically generating growth rules. Genetic programming evolves computer programs to perform some sort of task well. I am not really sure, at the moment, if it is important that the growing tree-structures perform some task well. However, the deap package includes an interface for easily generating random programs from a collection of predefined 'primitves' or basic functions. It also allows one to easily construct a genetic algorithm which uses the randomly generated programs as 'genomes.' Anyway, first I need to make the deap package available within blender!