FlickerShowMedia
YaBB Newbies
Offline
Posts: 14
New programmer, designing a cellular autonoma
Apr 11th , 2009, 10:31pm
I'm new to the processing language, and I'm trying to learn it as fast as I can, because it looks like it suits my needs rather well. I'm interested in making technological art, and I'm in the middle of a few projects, hung up on programming. I am building a large scale, maybe four-five feet in height) piece modeled after a lava lamp, with IO indicators covering it, like pixels. For one of the animations on it's surface I'd naturally like to have a lava lamp type animation running. For several reason's Id like to design a cellular autonoma to govern the motion of the cells (bubbles of lava). The first reason is that I don't want to program five minutes+ of bubbly animation and, as this is an installation in a gallery, it will be running for quite some time, I'd like for it run for a while without looping. The second is that I've always had an almost unnatural (it's healthy.. i swear) fascination with self governing bodies. I love the concept of creating a set of rules for a body, and then seeing how it behaves in a society. The indicators on the surface are either on or off, so colors and such are no problem, and they're about the size of a dime, so there won't be too too many. So I'm thinking some simple(ish) rules for the cells should be as follows: 1) Each lava cell needs a variable for heat. 2) Getting within the bottom fourth of the display, the lava cells should begin to heat up. 3) Getting within the top fourth does the same, only cools the lava cell. 4) The background cells needs to be graded in it's heat value from the bottom to the top. 5) The lava cells should slowly acclimate to their surrounding cells, be they lava or background. 6) Once two lava cells touch, they should not detach. 7) The higher the heat value for the lava cell, the more drawn it is to the top, the lower, the more it is drawn to the bottom. 8) If the lava cell is the same temperature as the background cells around it, it should be pulled down (for both gravity and to avoid an oddball instance of a static environment). So, those rules, now that I look at them, are a bit complex. I think if I define the rules in a class, I can just call up a certain number of objects as the lava and let them do their thing. Unlike a real lava lamp, this automation is running on teh flat surface wrapping the Shape, instead of floating within it, so it's a 2D animation, instead of a 3D. My hangup is that I'm not too good with converting those rules into math, although that math is exactly what I'm fascinated with. If anybody has any ideas on how to implement this idea into working code, I'd be thrilled. Also, after this is all said and done, I need to map the pixel grid to an abnormal shape, each horizontal row will be straight, but the width of each row, for end to end will vary, as I'm essentially wrapping it around a cone, and the diameter varies as it reaches it's vertex.