The Blob computing project

Animations showing blob primitive transformations

Homogeneization of particles A Cellular Automata rule, moves an initial set of particules so as to converge to an homongenous layout. The rule is tested on two dozens of initial configurations, with increasing number of particles, initially densely packed. When the CA is converged (every cell quiescent) the next configuration is launched automatically.The rule works for any grid size, any number of particles, of couuuurse! Movement is worm like, i.e. particles can span many sites.

Control keys (click on animation before). Every 8 steps is display, use the keys '/' and '*' to change rate of display, the spape bar to pause and step, the key 'p' to play. There is approximately 200 bits of states. We show by default the particles, voronoi walls ('m') and the hexagon ('h') centered on particles reaching the walls. Type other keys from 'a' to 'z' and 'A' to 'Z' to see the other state. The states are organized in two quasi symetric layers, The keys 'x' and 'w' are modifiers controlling wich state of each layer will be shown (try them with 'm' after). For example if none is set, nothing is modified in the display while if both are set, both layers will be modified in the display. The key 'q' is the quiescent flag. For the fun, you can try (non exhaustive!) 'I' , distance to particle and wall, 'r' inner radius of voronoi cell, 'R' outer radius, 'z' border between region of different inner radius , 'Z', distance to that border, (upper and lower), 'a' axis of voronoi cell, 'g' warning flag detecting over-oblong voronoi cells, 'u' detection of particle movement in adjacent voronoi cells, 'P' prioriy of trigered movement rule, 'E' random bit. All the mentioned values are adjusted dynamically and locally, and therefore will be 100% correct only in the converged CA.

Performance The time to converge is predicted to be grid diameter ^ 3/2 , the quality of homogeneization: (smallest inner radius / largest outer radius) lies withing a constant factor 1/5 of the optimal. Outer radius is at most twice innner radius, and discrepancy in inner radius is at most one.

Processing Source code readily usable in Processing
Java Source code

This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.

Blob division. Each Particle has already divided into one green and one red copy. First the greens go down, and the reds go up, a depression is automatically created around the equator, this depression finally creates a tunnel. which is cut by a (pink) centered master particle
Finding the blob center . We use a wave reflecting on the blob frontier to push a master particle towards the center
Blob movement and collision using a physical model with real coordinate and two kinds of particles: membrane particles with an attractive force between neighbors, and gas particles, with a repulsive force. We illustrate two chocs: a frontal choc where blobs bounce horizontally, and a "side" choc where they bounce at right angle.
Blob movement on an hexagonal grid, realized with MGS (master thesis Oulaghan). The discrete model uses n particles per site, and spring force preserving uniform density. The movement is sustained, the quantity of movement is preserved.
Blob movement and collision on cellular automata only perfectly squared blobs have been implemented. The choc is perfectly elastic
Adapting membrane size to maintain constant particle density. If particles are added [resp. suppressed]., the frontier enlarges [resp. shrinks]