Music & Fractal Landscapes

A short 3D animation based on and inspired by the article ‘Music and Fractal Landscapes’ by Douglas Adams in his Book ‘Dirk Gently’s Holistic Detective Agency’.


A 3D printed bust made last night at our local maker-space, AssentWorks.

I stand by my prediction that the wide-scale piracy of physical objects is just around the corner. Especially considering that Fuji Film is already capable of printing near-flawless reproductions of Van Gogh’s paintings.

Related: Digital Grotesque, a 3D printed room designed by programming algorithms. “A fully immersive, solid, human-scale, enclosed structure that is entirely 3D printed out of sand.”

Update: A reply from Kerry Stevenson, the man who actually printed this head, addressing my piracy comment.

For complex objects, I agree with Kerry that 3D piracy still has a long way to go. However, a search on Thingiverse (a repository of 3D printable designs) shows that boardgames like Settlers of Catan have already been cloned. (Side note for Catan / Game of Thrones Fans: Settlers of the Iron Throne.)

I witnessed the growth of media piracy from tape-swapping to mp3s to HD BlueRay rips. Seventeen years ago I found my first mp3 online. It took me an hour to download. Napster appeared a few years later to simplify the process, followed by high-speed internet to speed up the downloads. Now, if you’ll excuse me I’m off to print-up a copy of Pandora’s box. ;)

p.s. If you’re fascinated by this technology, drop by AssentWorks on a Tuesday open-house night. I’d also recommend dropping by the 5th floor of the Artspace Building (corner of Arthur & Bannatyne) on the evening of the first Friday of any month. There you can see how jeweller Bryan Johnson has been using CNC milling and 3D printing in his artistic workflow.


Beautiful projection-mapping on moving objects. The graphics you see were not added in post-processing but were projected onto the two moving screens in real-time. What you see in this video is exactly what you would have seen had you been present in the room during the filming.

The video ends with my favourite Arthur C. Clark quote:

"Any sufficiently advanced technology is indistinguishable from magic."

Related: Winnipeg company PO-MO wants your help funding an interactive projection toy for children.


Putting Time In Perspective:

"Humans are good at a lot of things, but putting time in perspective is not one of them."

A detailed look at the past, present, and future of the universe with an eye to scale.

Related: The Solar System - Our home in space. [video]


Verb: That’s What’s Happening (1974). via

I put my heart in action. Verb! To run, to go, to get, to give. Verb! You’re what’s happening. — Lyrics


Nopiming Provincial Park => Tulabi Lake => Bird River => Elbow Lake. Four days in the boreal forest. The same route I took in 2007.


Yesterday I bought the iOS programming app Codea and a BlueTooth iPad keyboard. This video shows my first Codea/Lua program, coded and executed on an iPad. I’ve used Lua in the past to code for my PSP, but the experience was nowhere near as slick as using Codea.

What the video doesn’t show is my use of UI sliders to control the movement, size, and colour of the bouncing ball. With a few tweaks (like touch control over the circle) this will already make an interesting game for my 21 month old daughter.


Acelyn asks for ike-ides.


The power of ideas. (at The Tom Hendry Theatre)


Music for the Eyes

Three distinct takes on the visualization of MIDI-based music.

I imagine videos of this sort would be a helpful addition to music lessons, helping students explore the structure and melody of the songs they are learning to play.

2013-05-29 13:10:00


Music Visualization #1

Rimsky-Korsakov’s Flight of the Bumblebee visualized by Andy Fillebrown using AudioCarver.

This one has a Guitar Hero feel to it. It’s also the closest in feel (imo) to plain old sheet music.


Music Visualization #2

Resonant Chamber by Animusic a company that specializes in the 3D visualization of MIDI-based music.

My 19 month old daughter loves this one the most.


Music Visualization #3

Bach Little Fugue in G Minor visualized by A. P. Anderson using the MAM MIDI Player.

This is the most abstract of the three visualizations, but I feel it conveys the most information about the structure of the song.

Related: Music Visualization: Beautiful Tools to ‘See’ Sound


Kin’ cans at the watering hole.


The Dual timer 556 - one of the oldest integrated circuits still being manufactured. Part of the 555 family, a favourite amongst electronic hobbyists. These chips can be used as timers, oscillators and flip-flops. The silicon elements shown here are acting as transistors, diodes and resistors. The size of this die is 0.2066cm by 0.1576cm.

From the insides of microchips.


A Scientific Approach to Debugging

This list, taken from John Regehr’s How to Debug (via), aligns nicely with my process for debugging software.

  1. Verify the Bug and Determine Correct Behaviour.
  2. Stabilize, Isolate, and [Reproduce].
  3. Estimate [Likelihood of Probable Causes].
  4. Devise and Run an Experiment.
  5. Iterate Until the Bug is Found.
  6. Fix the Bug and Verify the Fix.
  7. Undo [Unwanted] Changes.
  8. Create a Regression Test.
  9. Find the Bug’s Friends and Relatives.

My changes/clarifications are shown within square braces. Trust me, read the full post. Each step is explained in detail.

I’ve just finished re-reading Robert Pirsig’s Zen and the Art of Motorcycle Maintenance, where a similar debugging approach (the scientific method) is explained.

“For this you keep a lab notebook. Everything gets written down, formally, so that you know at all times where you are, where you’ve been, where you’re going and where you want to get. […] Sometimes just the act of writing down the problems straightens out your head as to what they really are.

The logical statements entered into the notebook are broken down into six categories:

  1. Statement of the problem.
  2. Hypotheses as to the cause of the problem.
  3. Experiments designed to test each hypothesis.
  4. Predicted results of the experiments.
  5. Observed results of the experiments
  6. Conclusions from the results of the experiments.

“The real purpose of scientific method is to make sure Nature hasn’t misled you into thinking you know something you don’t actually know. […] One logical slip and an entire scientific edifice comes tumbling down. One false deduction […] and you can get hung up indefinitely.

As a programming instructor I help students when things go wrong with the applications they’re writing. Because of my experience with the types of apps they are coding, I’m usually quick at spotting the source of the bug. Pointing out these bugs may fix their immediate problem, but it does little to correct the error in logic that led to the bug. Perhaps before coming to me, students with buggy source code should work through steps 1 through 4 from either of these lists.

If I were to mandate this for my classes, I’d have to add a step zero:

Be Prepared to Learn From Your Mistake.

New programmers are often quick to blame the language or framework they are using when their code doesn’t work. I still catch myself thinking “IT isn’t working” when I encounter troublesome bugs in my code. However, experience has shown me two things:

  1. My tools are rarely the source of my problem.
  2. If I’m not prepared to accept responsibility for my bugs, I’m doomed to repeat them.


Recommended reading:

2013-03-09 12:58:00