Posted by Tim on Jun 13, 2011 at 9:20pm
A cellular automaton is a cell on a grid that changes states based on the states of itself and its neighboring cells. The next state is found by looking at the current state of the current cell and its neighbors and then applying rules to determine the next state of the cell. Once the next state of all the cells have been determined, all of the cells are updated to their next state. This process can then be repeated as many times as desired.
The most well known set of rules for cellular automata is Conway’s Game of Life. In Conway’s Game of Life, each cell can either be alive or dead. Each cell that is alive (in the alive state) will stay alive if two or three of its neighbors is alive, otherwise, the cell will die (go to the dead state). Each dead cell will remain in the dead state unless exactly two of its neighbors is alive.
Another example of a cellular automaton system is wire world. In wire world, each cell can be in one of four states: empty, conductor, electron head, electron tail. An empty cell will always remain an empty cell. A conductor will become an electron head if one or two of its neighbors is an electron head, and remain a conductor in all other cases. An electron head becomes an electron tail. Lastly, the electron tail becomes a conductor.
The cellular automaton program that I created uses both sets of rules. To use the program, the user simply clicks on the grid to change the state of cells. Once a pattern for the grid has been chosen, the user can go to the menu and click Control, Start. The program will then calculate next the states of the cells. Other options in the menu allow the user to choose between using the rules for Conway’s Game of Life and Wire World as well as to save and load patterns. I have included a few patterns below to demonstrate some of the more interesting features of cellular automata.
Download
Cellular Automaton
Screenshots


Additional Download (Files that can be loaded into the program)
XOR gate
OR gate
oscillators
glider
glider gun
Posted in Programming | Leave a comment
 
Posted by Tim on Apr 21, 2011 at 10:20pm
Introduction
Over the past few weeks, I have been working on creating a program that will send an e-mail to a list of e-mail addresses. There are programs/systems that already do this, but all of the ones that I found either required that recipients opt-in for the e-mails, required that you pay before you use it or just didn’t work.
Details
My mailing list manager sends e-mail via SMTP and requires that the user has an existing e-mail account that supports SMTP. In order not to overwhelm the mail server, there is a delay of twelve second between when e-mails are sent. In addition to sending out e-mails, my program also monitors the e-mail account to see if any e-mails are undeliverable; if any e-mails are undeliverable, then the e-mail address is flagged by the program. Lastly, my program also monitors the e-mail account to see if any recipients have requested to be removed from the list; to be removed, recipients simply reply to a message and include the word “unsubscribe” to the subject; my program searches the subject line and if it finds the word unsubscribe, then the recipient’s e-mail address is flagged.
I have included a demo version of the program below. The demo version is for testing/evaluation purposes and has been limited to send a maximum of 10 e-mails per mailing.
Screenshot

Download
Mass Emailer
Posted in Programming | Leave a comment
 
Posted by Tim on Apr 18, 2011 at 4:15pm
About
I created the chaotic pendulum program to visually show qualities of a chaotic system and show the differences between a non-chaotic system (simple pendulum) and a chaotic system (chaotic pendulum).
Simple Pendulum
A simple pendulum consists of a mass on a rod. The mass is attached to one end of the rod and the other end of the rod is fixed, but the rod is allowed to rotate about this point. The mass is raised up, using the other end of the rod as a pivot point. The mass is then released and free to fall, making the path of an arc, as the rod rotates.
Chaotic Pendulum
A chaotic pendulum has the same setup as the simple pendulum with the exception that the rotating point on the rod is fixed to a motor that we can control. As a result, in addition to the normal motion of the pendulum, we are able to turn on the motor is short bursts, thereby applying an additional force to the pendulum, can affect its motion. A system in which we have the ability to drive the pendulum with a fixed force at a fixed time interval has the potential of being chaotic, while simple pendulums are never chaotic.
Chaotic Systems
While there is no universal definition of a chaotic system, two key feature are that the system must be deterministic and it must be sensitive to initial conditions. Since the system must be deterministic, then no matter how many times we run the system, if we start with the same initial conditions, we will always end up with the same result. However, since the system is sensitive to initial conditions, if we change the initial conditions, even very slightly, our end results will be very different. In non-chaotic deterministic systems, if our initial conditions are off just slightly, we can expect that our end results will be off, but they will be off only slightly. With chaotic systems, a slight change in the initial conditions will result in a large change in the outcomes. As a result, chaotic systems, even though they are deterministic, are very hard to predict and can be considered unpredictable.
Screenshots

Download
Pendulum
Posted in Programming | Leave a comment
 
← Older Entries