Apologies for another long hiatus from posting. I have not had much free time to work on my own projects as I have been so busy with work. I did, however, spend a little time playing with the behaviors and the look of the flocking script I posted last month. Its always fun to watch the little guys fly around, but I will probably be dropping the flocking behaviors soon and trying something new.
Edit: And of course, posting a new video made the old one stop working. It seems this plugin cannot show more than one video at a time. So it’s back to figuring out a good way to share video.
Some of the recent drawing agent work I’ve seen has inspired me to revisit one of my first loves, multi-agent systems. I have a good bit of existing code for multi-agent systems already so the first thing I’ve done is put together the core pieces I need to get some classic flocking going. If you are not already familiar with him, Craig Rynolds is the great grandaddy of flocking behavior with his classic ‘boid’ rules. These deal with three core behaviors: Cohesion, Separation and Alignment. Cohesion is the tendency for each agent to try and move towards nearby groups of agents. Separation is the tendency for agents to move away from agents they are too close to. Alignment is the tendency for agents to travel in the same direction as other nearby agents. You may notice that these three behaviors don’t exactly overlap, in fact they almost seem to work against each other. The result is that the ultimate behavior of the agent is a negotiation between each of the core behaviors. So given a few simple behavioral rules, one can see some very complex group behaviors emerge.
I spent some time balancing the behaviors to get the results I wanted and generated a video. I then uploaded the video to vimeo and it looked terrible. I asked for help making it look better but was told that “given the nature of the video, vimeo’s transcoders would not be able to transcode it properly”. This is very frustrating. Once again I found myself searching for a better way to share videos. Ultimately I had to abandon the video sharing sites and host the video myself and play it with VideoJS. This means a little more work for me, but the results are much better. Now if I can just figure out how to make it stop autoplaying. As far as the video itself, there’s nothing really groundbreaking here. Just some basic flocking and random colors. This will be the foundation for some new experiments.
One of my current projects is photographing the Marion school district’s facilities. The photographs will ultimately be printed onto fabric panels and hung in the hallway of the Marion school district’s main office. I’ve gone out in a variety of lighting conditions and I think I finally have all the material I need to put the final layout together. I wanted to share some of the photos here, especially because there are a number of photographs that I like but unfortunately I will not have a place for in the final set. We’re hoping to have the panels installed by the end of the summer so I will post some images of the finished product when it is done.
Over memorial day weekend I got the chance to spend some time with a friend’s computerized telescope. I snapped a few pictures with my iPhone through the eye piece. I got a few nice shots of the moon as well an impressive mobile phone pic of Saturn! My photography, however, is no longer limited to a point and shoot. I have recently acquired a Nikon D3200. So far I’m really enjoying it and I’ve already ordered a new 35mm prime lens for it. I’ve primarily been using it for work, taking pictures of some local school facilities to be displayed at the school district office. I will post a few of those pics once they are finalized.
For fun I threw in some random color progression into the radial line script I posted yesterday. Color makes (almost) everything better.
I’ve been lucky to be very busy lately. I’m currently wrapping up the design phase for my first building project, hence the lack of updates here. One of the more interesting elements in my current project is a large canopy with an transforming column pattern supporting a long central beam. Before finalizing the pattern, I did some quick sketches using processing. While doing these, a typo resulted in a very interesting effect so I thought I would share it here. As new radial lines are draw from the left corners, their intersections create an interesting curving effect. It’s also interesting to observe how the consistent imperfections in the method the computer uses to draw the lines results in some interesting patterns as well.
I’ve got a working version of the Color Genome Lab I made set up online. You can check it out by clicking on the image below. I decided to link to it on a separate page because it loads a bit slowly and I didn’t want it making my front page sluggish. I actually finished it on Monday, or at least I thought I had, but I ran into several compatibility issues with processing.js. The biggest problem being that I had used some text for the UI and apparently processing.js does not support text. So I had to do some redesign on it to make it work without text. The only other major problem I had was getting the slider that adjusts the mutation rate to work. In the end I had to add a couple buttons to increase and decrease it. I also had to upgrade the wordpress processing plugin to use the newest version of processing.js which took care of some graphical bugs. So now, 2 days later, I’ve finally got it up and running. Check it out!
I’ve been very busy with work lately, which is a good thing. But I have been working on the genetic color progression project when I can. I finished up the meat of the project today and I’ve been having a lot of fun breeding color progressions! Now I just need to finish the UI, clean up a few things and upload it here so you can do the same.
I’ve compiled a couple videos showing the CA color progression script in action. They compressed very nicely, they went from upwards of 3 gigs to around 15 megs and they still look pretty good. The first video is seeded with a single white cell at the center. The second one is seeded with 10 randomly colored cells placed randomly in the field.