Recreational Computer Programming Group — Feb 10, 2013

February 18, 2013 — I’m a bit late in posting this. The 2nd meeting of the Houston Recreational Computer Programming Group was held this past Sunday, February 10, 2013.

Chris Ertel presented some cool effects applied in real time to web-cam output implemented via OpenGL shaders, as well as some code to procedurally generate a city map that he was using for a kind of zombie infestation game or simulation. Marlin Mixon demoed an Android application that he’s been working on to enable people to find and view passing satellites in the night sky in an urban environment.

I demoed a few different things. First up, qix-kaleidoscope, a kaleidoscope like application based on the ancient videogame called Qix. Here’s a video of it in action:

Next up, I demoed stipplebomb, a 200 line python script which converts a grayscale image into a stippled representation by an interesting method.

The method is as follows:

A rectangular field is mapped to the image so that coordinates in the field correspond to coordinates in the image.

“Balls” are introduced into the field. The radius of the balls is proportional the intensity of the image at the corresponding coordianate. The balls are given some initial velocity, and there is some friction to slow them down. The balls also have a repulsive magnetic field which varies in strength that is again proportional to the radius of the ball (and to the image intensity at the ball’s corresponding image coordinate). The force of this repulsive magnetic field diminishes with the square of the distance (so very rapidly falls off.)

As the simulation is run, the forces on each ball due to the surrounding balls is calculated, and the corresponding acceleration is applied to the balls.

Perhaps surprisingly, the balls eventually settle down to form a stippled rendering of the underlying image.

Here are some examples of the program’s output:





I got the idea for this algorithm from here: There you will find a much faster and better looking implementation of the same essential idea, implemented in C++ with the cinder library.

Last, I presented Laser Lander, a simple lunar lander game I’ve mentioned previously on this blog.

~ by scaryreasoner on February 19, 2013.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: