This poem is a little bit of a departure form the last ones. There is a vector field that spreads across the entire screen. Each vector is randomly pointed in a direction according to the simplex noise algorithm (comparable to Perlin noise). Essentially the algorithm takes into account 3 dimensions, with the third being time. What’s interesting about this is that the noise can be thought to be a 2d slice moving through 3d space. After the vector field has been calculated, a separate canvas layer is drawn onto for the color “walker”. This walker moves a set distance evenly through...
I changed up the coordinate space and size of the random color “walkers” on this fourth version of the poem. I had to wrack my brains but I remembered polar coordinate space from my high school math class. The sizing difference creates an interesting effect I think.
This third sketch is a variation on #2, but it adds a lot of personality to the random color “walkers”. They grow and multiply this time, again at a random rate. What is interesting about the growth was that I had to make it a linear growth instead of an exponential. The poem was not nearly as interesting with exponential growth because the “walkers” became too numerous too quickly to be visually appealing. The rule for growth on this one was a random chance every frame for one “walker” to be born, rather than one random chance every frame per...
This variation on the previous poem changes the way that the probability of the random color “walkers” is portrayed. Instead of walking randomly up, down, left, and right, they walk randomly up, down, and right only. There is a fading a effect that helps visualize how the distribution changes over time. The color of the “walkers” continues to shift randomly as they move.
I’ve started a new series of programming poems exploring the idea of stochasticity. What is stochasticity? It’s a fancy word for the process of random events. The opposite of a stochastic event is a deterministic event. Computers are inherently deterministic machines, but I’m interested in the stochastic process for visualization and processing. Heady stuff, right? Well I’m trying to make visually appealing pieces that let me explore these ideas so that I can have an intuitive grasp of these concepts. Screenshot:...
I’m working a new and improved version of the 3d evolution simulator. I abstracted all of the vector math so that it doesn’t matter if it’s in 2 dimension or 3 dimensions. Currently I’m working on updating the UI, finishing up some 3d specifics for determining mouse position in 3d space, and then I will probably tackle optimizing the rendering code. Three.js doesn’t have anything built in that I can tell that is good for cloned geometry. I’ll probably end up writing my own shader.
It’s amazing to see the various emergent behaviors from developing an evolution simulator. These screenshots are unintended behaviors that are essentially bugs in the functionality. However, these bugs are generally related to the way the entities are taking advantage of properties of fitness in an evolutionary sense.
Here is another example of my schooling fish and motion detection. It’s going to be used in an interactive kiosk to talk about predators and prey, about the strategies used for protecting themselves, and the ones used to exploit those strategies. You must have a webcam for this example to work, and it must be enabled, otherwise it might not look right. You can also view a larger version here. If it runs too slow then change the quality settings by right clicking.
Here is a video of an opening title I’m working on for an interactive kiosk. The fish move based on an algorithm I wrote, it’s not a pre-set animation. It’s modified off of my webcam motion sensitive algorithm I’ve posted about previously which I’ve posted (and subsequently improved). This will play in Flash on the kiosk, but it might be fun to experiment programming animations for more traditional things.
Here’s a little demo of an interactive exhibit kiosk I am working on using motion detection. This is the implementation of the swarming red dots example I posted previously.
Here’s another little fun thing I’ve been programming. Move your mouse through the water’s surface and click to interact with it. The artwork is really just filler graphics at this point.
There are lots of examples on the web of people doing motion detection in Flash. Here’s my own script to add to the mix. It’s for an interactive kiosk, but I figured I’d share the base code as it’s pretty fun to play around with. You can download the code here. I’m releasing it under the Creative Commons Share Alike license. If you use it please include a credit line and a link back to my site. The method for actually detecting the motion has been pretty well documented, but the part that stumped me was how to decide where the...
Most of the time I can’t share what I’m working on while programming as there is nothing really visual to show. This little test that I’m working on is pretty cool though.