Palm held a competition to promote their PDK. Ancient Frog was eligible, but (possibly because it had passed its peak before the competition started) didn't fare as well as I'd hoped.

On the other hand, there was a category for free apps, and for a while the number of entrants was smaller than the number of prizes on offer. This looked like a good opportunity to bang out some free apps - it meant I might win something, I could experiment with what genres of app generate the most interest, and I could have a bit of fun doing some rapid prototyping. All models of Pre and Pixi have OpenGL ES2.0 hardware, so I could go to town with shaders.

I gave myself no more than two days per app. The speed of development and the limited scale of what I expected to achieve meant that it was a proper hackfest. All the code went into one ugly C file. Magic numbers, hard-coded data, copy-and-paste coding - everything that shaves a few minutes off writing a bit of code at the expense of making it unmaintainable, bug-prone and difficult to build upon. I felt simultaneously dirty and liberated.

Earth NowThe first thing I made was Earth Now. It shows a 3D view of the Earth (rendered using NASA satellite imagery, including normal mapping from the height data and specular mapping for water / ice), and downloads the latest global cloud cover imagery to display on top. I thought it would be a quick app to ease myself in to things, but it ended up taking two days - most of which was locating a decent source of cloud imagery, and writing my own http code to get at it through its content network.

Liquid PlanetThe next one was a sandpit app called Liquid Planet. It combined a bunch of tricks that I found useful in museum interactives - GPU-based interactive water and earth, with a bathymetric model of the Earth that you can flood and drain. It's quite fun drowning continents, or seeing just how much land there was during the last ice age (New Zealand was huge!). This one took less than a day, but was unfortunately a bit too demanding of the phone's GPU. (I'm used to doing this sort of thing on high-end PC gaming cards, and while it's impressive how much you can do in a shader on a Pre, it can't really handle the number of textures I wanted).

Tonal PoolThen, a music app called Tonal Pool. I've traditionally been very bad at handling sound in my games, generally seeing it as the area responsible for the majority of the game's data footprint, the majority of the annoying configy crashy bugs, and the least important part of the experience. (Throughout my time in the games industry, I'd hear people repeatedly argue that it's the most important part of the experience, but really - try playing a game with the speakers turned off. Oh, you already do! Now try playing with the screen turned off.)

Anyway, it's time I made my peace with that particular sense, so I decided to make an app that was all about the sound - a Tenori-On-style sequencer. Of course, I still didn't trust it to survive on sound alone, so it's framed in a nice little GPU-based interactive water pool, with ripples going off as each peg sounds. I was pleased with the result - one day of work, and I had several nice emails about it.

BannerBanner came next. It was a bit of an experiment - I wanted to see if I could create a software version of those light sticks that you wave to spell out messages using persistence of vision. The screen can only handle 60fps, which is definitely at the low end of what you need to pull off the trick, and there's an accelerometer to help sort out synchronisation.

You draw your design on the screen with a rudimentary paint application, then start waving the phone. It automatically senses this, and starts flashing a line of dots to recreate your image in the air. It works, but only in a really dark room, and it takes some practice to get good results. After a day on it, I decided that it was never going to be good enough to meet the Free App Downloader's expectations, and rather than get slaughtered in the comments, I decided not to publish it. (Search the iPhone app store for similar apps if you want to read how people respond to basic physical limitations...)

Ancient PondFinally, my favourite: Ancient Pond. (Yes - I liked it so much I gave it the Ancient seal of quality). It's your basic fish pond app, using (ahem) that GPU water effect again, this time with a nice flocking algorithm running under it to make fish dart and swim about. It took a couple of days, and then another day or so updating it to add different themes and do some tweaking of the experience. I managed to keep the framerate up to an acceptable level (particularly on the Pixi, which, surprisingly, handles it better than the Pre) by strictly limiting the effects. So there's a theme which has shadows and refraction on the water, and a theme which instead has specular highlights and caustics.

Ancient Pond took off really well - there's clearly an interest in this sort of app, and I really enjoyed myself writing it. It's very tempting to turn it into a real app, cross-platform, with downloadable creatures and ornaments and so on. I'm still mulling over whether to put Blue Comb on hold and do this first.

In the meantime, it would be nice to add a few more features, but it's right up against the hack-it-now-and-never-look-back approach I used to create it. To do anything more to it at all would really mean tearing it down and starting again properly.

So, how did I fare in the competition?

Well, the results don't seem to be up yet, but I've had an email which confirms that my placement in the leaderboard was accurate. Ancient Frog snagged one of the $1000 HP store credit prizes, as did Ancient Pond and Tonal Pool. Both of them hovered tantalisingly in the $10,000 actual money prize category, but were finally beaten out. Earth Now and the free version of Ancient Frog were also in the running until the last few days of the competition. Liquid Planet fizzled, and I ended up pulling it from the store.

I had a lot of fun, and I have a nice little purse which I have to spend on fun things, so that's great. And since the HP store sells Canon lenses, and I live for Canon lenses, I'm a happy man.