Posts Tagged ‘OpenGL’
Immersive Environment for the TransLab Space (MAT 261 A/B : Transvergence, Fall 2010)
The TransLab is a space installed with IR trackers, multiple projectors and a 16-channel speaker system. This project involved creating an immersive environment where the user was surrounded by a fluid field that he could measure, interact with and manipulate with a sensor in his hand. The sensor was implemented with touchOSC on an iPhone. The fluid density values around the user were displayed on the iPhone as well as the projector screens and also played back as frequency modulations of sine tones, hence making it natural for the user to explore the space around him in trying to locate the fluid source. The sensor screen as seen by the user is displayed in the image below.
The 3D fluid field simulation was implemented by adapting Jos Stam’s 2D real-time fluid simulation algorithm for games using 8000 points, with OpenGL in C++. Check out the video to see how the simulation looks in it’s mouse interactive version:
( …Continued from Visualizing Cellular Automata – II )
The possibilities to explore these structures were immense and so I skipped the next logical part where normally I would simulate 2D Cell Automata (a more specific example of which is “Conway’s Game of Life”) with 4294967296 (2^(2^5)) possibilities to explore. Instead I moved on to explore 3D CA. With millions of possibilities to explore again, it becomes crucial to constraint the system. So I explored Totalistic CA, where the rules are not updated based on state of a single cell, but based on the sum of their states, in a cell’s neighborhood. I ended up getting some interesting structures as shown in the images below. The sonification for this is rather primitive with the number of Cells being updated directly affecting the frequencies.
Genetics has been a topic I was interested in for as long as I can remember. Recently I started reading about how biological systems function and how their principles are applied in creating programs. This led me to read more about genetic programming and AI, and eventually I came across Complex Systems and Cellular Automata. A quick google search was enough to get me excited about its generative nature and emergent patterns. The fact that I could create a purely rational system on my computer which applied logical rules on a set of states to generate such complex structures- orderly and chaotic at the same time, encouraged me to explore this as a project for 594P.
The origins of Cell Automaton lie in Von Neumann’s simplification of the process of Kinematic Automata, a system designed to create self-replicating robots, due to Stanislaw Ulam’s insight on his methods. Though it became popular within a small computing community with John Conway’s “Game of Life”, it was Stephen Wolfram’s publication of “A New Kind of Science”, a book that explains how complex systems emerge from seemingly simplistic ones like Cell Automata, that reintroduced its concept as a thoroughly systematic investigation. The basics are very straightforward- you start with a set of initial states, iterate through all the cells, checking each cell’s neighborhood (a finite number of cells around it) and mapping its states to the rule being employed to calculate the next state of the cell. All the cells are updated once the rule is employed and then the process is repeated.
I started with Elementary Cellular Automata- 1D structure of cells, where each cell’s neighborhood is composed of itself, the cell on its right and the cell on its left, and there are only two possible states for each cell: ’0′ and ’1′. With this configuration you have a possibility of 256 (2^(2^3)) rules to govern the behavior. Interesting behaviors emerge when the evolution of 1D cellular automata is tracked for a number of iterations. The following images display some of the interesting rules. The major observation Wolfram made was how some structures were very orderly while some very stochastic in nature. Although some of the most interesting ones are with a combination of both, order and randomness in their structure, for example rule 110.
( Continued on Visualizing Cellular Automata – II… )
3D doodles in Processing when I first started using OpenGL for 3D designs in the software. Somehow everything I do ends up in a doodle.
I need to explore this deep relation of doodles with my destiny further.