The tenth meeting of the Houston Recreational Computer Programming Group met this past Sunday, October 13th, at TX/RX Labs to bask in the LCD glow of computer monitors and share the latest goings on in local recreational computer programming.

First up, Frank Davies showed off his musical contraption, a 3D-printed hexagon filled with hexagonal LED illuminated buttons arranged in a manner similar to those on an accordion. Within the plastic hexagon, a circuit board fed button presses into an Arduino. Via the Arduino, the LED within each button is controlled by a cell in a cellular automaton simulation designed to loosely model a forest fire, so that each LED "lights" it's neighbors, and each LED "burns" for awhile until it runs out of fuel, and cannot be re-ignited until fuel (forest) regrows. The button presses are also converted by the Arduino into MIDI note-on and note-off messages which were relayed via MIDI cable to a Raspberry Pi (via a USB MIDI adapter). On the Raspberry Pi, a Pure Data process consumes the MIDI data and based on that, synthesizes audio data to feed the sound card. So it's kind of a combo cellular automaton/musical instrument.

Circuit board for an early version of the project

Frank demonstrating the instrument

The instrument

Next up, Chris Cauley showed us PlaceReddit.com. Placereddit.com is a way to get dummy placeholder images for any website. Placereddit spiders reddit.com and collects the top 60 images for every subreddit. To use it you specify a subreddit, height, width, and random number for an image and it will return an image of those dimensions. For example http://placereddit.com/r/turtles/200x100_5 will return an image of a turtle 200 by 100 pixels in size.

This is programatically interesting because it has been optimized to be able to serve 100+ images a second without any caching. Images are cropped in such a way that the least entropic (least interesting) edges are cropped first. For more information visit http://placereddit.com which has API instructions, a list of available subreddits, and a Django plug-in (sorl-thumbnail fork) allowing you to seamlessly integrate it into any site using Django.

Finally, Steve Cameron (that's me) presented some minor enhancements to the previously presented Cosmic Space Boxinator space skybox generator. Previously, the nebulas were essentially some Perlin noise sprayed into a circle. To make things more interesting, a fractal line is constructed across the surface of the skybox. Two endpoints are selected, the midpoint between these two endpoints is found, and displaced by a random amount which is proportional to the distance between the endpoints. Two new lines are formed using as endpoints the first original endpoint, the new displaced midpoint, and the original 2nd endpoint. These two lines are subjected to the same midpoint displacement subdivision, recursively, until the produced points are "close enough" to each other (this limit is arbitrarily chosen). The result of this process is a list of points which forms something like a jagged, fractal coastline. Additionally, each point may randomly be selected to sprout a branch off the main line, recursively. Iterating through the produced list of points and painting small, circular patches of Perlin noise centered on the points results in a fairly nice looking nebula, although there still remain some scaling and quantizing issues with the noise, which resulted in a kind of "camoflage" effect which wasn't quite what was wanted.

And here is another example.

Last of all, Steve showed off a throwaway gimmick, "Word War vi Collidoscope", which was nothing more than the Word War vi video game hacked to reflect every line drawn across the x and y axes and also about axes at 45 degree angles.

The next meeting of the Houston Recreational Computer Programming Group will be held on Novemeber 10th, 2013. If you've got any kind of cool computer programming related thing that's interesting that you want to show off, bring it in and let's have a look at it.

See you next month.