Saturday, February 28, 2015

Cellular Automata


What is Cellular Automata? To define it I will take directly from wolfram:
"A cellular automaton is a collection of "colored" cells on a grid of specified shape that evolves through a number of discrete time steps according to a set of rules based on the states of neighboring cells. The rules are then applied iteratively for as many time steps as desired."
It is pretty much the study of Conway's Game of Life. And there's a lot more to study than you'd expect. There are repeating patterns which return to their original states after a certain number of steps, and patterns in stable states that just don't move at all. The most interesting of all are the stable patterns that move, called spaceships or gliders, they will work their way across the grid until they collide with other things or just go off screen. Here are some examples.

A poor lost and lonely cell
So I decided to make my own implementation, with a twist. I would like to make the cells just slightly smarter than your average Conway's Game of Life cells. My rules are much more complicated that the typical rules in a cellular automaton, but I believe that it will still be possible to study some interesting interactions among the cells.

So, to each cell I have added the properties of hunger, and energy. I plan to have a cell that is out of energy and food to become food itself, and I plan to make cells that are fully energized and full of food to make new cells. Perhaps eventually the reproduction will require other cells around, but for now they will reproduce asexually. You can see the code on my Github.

At the moment my project is sort of halfway there, and needs another day or two of love and attention. I will try and get some work done this week and perhaps post my progress here when that happens. Thank you for reading, and feel free to comment if you have questions or comments.

Revival of my blog

Even though I originally created this blog to update my professors and advisers on my senior research project with Dr. Rida Bazzi at ASU, I have decided that the URL jeffmilling.blogspot.com is a perfect URL to use as a personal blog. Why let it go to waste?

I will be posting interesting things that I learn about, and small projects that I am working on. I can't guarantee regular posts, but I do feel like maintaining a blog is a good way to document stuff that I am working on and things that inspire me. These will likely be various things from my ridiculous range of interests. To list a few of the topics that I would like to post about: quantum information, quantum field theory, voxel programming, virtual reality, artificial intelligence, cellular automata, graphics programming, and last but not least linux. So thanks for reading, and I hope you learn a thing or two.