At this months recreational computer programming group we discovered that you can solve any problem using general artificial intelligence and hope, but then we immediately abandoned this pursuit when we realized that we could not implement it in pure CSS.

MS Paint in the Holographic Universe

Chris C. presented an MS Paint clone written in HTML5 using javascript and the canvas element. Currently this project features foreground and background colors, full alpha support, a select tool (which can be used to cut and move selections), as well as the usual brush and ellipse tools. The latest stable version (which may have more features than enumerated here) can be viewed at

Next Chris showed a few minor improvements to the Holographic Universe program he's been working on (pictured above). This is a variant on Conway's Game of Life that will (eventually) take a picture of a projected Game of Life and calculate the next state based on the picture. This will allow things in our world to interact with the game. Last month the game had the ability to "zoom in and out", altering the grid division mid game, creating a new game based off the new divisions. New features this month include 3 separate games played on top of each other in three color channels (red, green, and blue).

Basically if you click any square it will change it to the current color (selected using the drop down). After adding a pattern, you hover over "auto" or "autox2" to automatically increment the game. The game is currently three isolated layers (red, green, and blue) and the layers do not interact. However, if you create some artifacts in red and some artifacts in white, then start the game, the red disturbs the red component of the white game, creating interesting color effects.

Creating gifs with Haskell and Imagemagick

Next Patrick presented an exploration of creating animations with haskell's diagram project emulating an existing animation explain the meaning of radians. The goal was to create an image similar to this image, and the result is pretty good:


After generating the individual frames with haskell, imagemagick's convert command is used to convert the series of png frames to a gif. Alternatively the animation can be rending to canvas using the blank-canvas library and severed from a small Scotty3 server. A gist of the code used can be viewed in this gist page

Advice on Simulating an Electronics Problem

Mark Sullivan asked for advice on a project inspired by a control problem at his day job.

The problem is modeling of a thermal system consisting of an insulated chamber whose temperature is driven by a heater and by leakage to the ambient environment. Mark had modeled thermal time constants as lumped-component electrical circuits. Thermal insulation is represented by a resistor. Latent heat capacity is modeled as a capacitor.


After some discussion, the group concluded that Mark was asking for a general-purpose algorithm to find the values of multiple hidden parameters inside an underconstrained system of differential equations. This seeming to be insurmountable, members offered alternate ways to solve the problem. The problem remains unsolved, but discussing it was very interesting.