BP.IO / projects

Character Generator

A small RPG-type character generator.


Here’s a simple paint program I made. It uses XBRZ image scaling and can make images like the one below. Grab it at http://bp.io/XBRZPXL.ZIP (windows only).







Today I stumbled across Dart, a new web programming language that seems pretty neat. I hacked their sunflower demo and here’s what I ended up with: The Tetraopticon! It will only run in the latest browsers so here’s some pics if you can’t run it. Now I really should get back to making games.



My first iPhone/iPad app is Appacus, a simple abacus. I developed it to learn the full iOS development pipeline, from code to AppStore. It is available on the AppStore (link).

It’s a very awesome abacus application that features:

  • Counting up to 40!
  • Life-like plastic beads!
  • Advanced bead physics!
  • Click sounds!
As lame as this app is, the production of it took me through the entire development and publication of an iOS app. I’m charging the minimum amount because I wanted to investigate the full production pipeline – including setting up my banking and accessing the sales data. The whole process was surprisingly easy – the only hiccup was that I had to register for GST (an Australian VAT). But anyway … enjoy your counting! And be on the look out for some truly awesomer apps from me in the future.

procedural form creation with fugu

Fugu is a system for generating procedural animated forms using the Lua scripting language. While it is not complete, a quite functional version of fugu is available from http://bp.io/fugu/.


Ascii Paint

A project I’ve been working on in my spare time the last 2/3 weeks is a program called Ascii Paint. Ascii Paint is a simple open source painting program which uses ASCII characters instead of pixels. Ascii Paint was started by Shafqat Bhuiyan & Jice (original site), but I heavily adapted it, adding, amongst other things, a more refined UI, export to animated gif, palettes, layers, and a better file format.

Ascii Paint can be used to make ascii art, mockup scenes from roguelikes, or even to make ascii animations. You can download the program, read a tutorial, and check out the source at the ascii-paint project site.

Simplicial Developmental System



Jsxfr is a simple 8-bit blip, laser, coin and explosion synth, heavily based on Dr Petter’s awesome sfxr. It uses beads for sound synthesis.

Jsfxr is available in two one version. The applet version runs from the browser. The expanded version supports saving and loading of files, and is currently available as an Eclipse project (whoops I lost the code :o). If you would like to see an executable version then leave a comment and I’ll upload one.

Old Projects

Here’s some summaries of a few of my older projects…


JRtAudio is a java library for really low-level audio programming. It provides a bridge between a Java program and RtAudio, and was built to compare performance between it and the standard javasound library. The verdict? Javasound won.

The project is hosted on google code.

Ligeti’s visual metronomes

One hundred asynchronous metronomes: applet. (A simple audio-visual experiment inspired by Ligeti’s 100 Metronome Symphony.)

Fluid Simulation

This applet implements a fluid simulation. It is a port of Jos Stam’s realtime fluid solver c code over to processing.

Superformula Challenge

A program for breeding funny little shapes governed by the superformula. The program presents a petri-dish like environment in which organisms float around. Left-click to add or mutate an existing organism, or middle-click to enter a shape-editing mode where you can modify the parameters of the superformula directly.

The source includes a windows executable under the release/ directory. You will need to install Qt4 to run it or compile it.

Lisp Raytracer

Raytracing aims to produce “realistic” images by simulating the effects of rays of light. I implemented a raytracer in the LISP programming language. The code requires a lisp interpreter to run.

Procedural Graphics Engine

Procedural worlds are built entirely by algorithms. Procedural methods exist for generating realistic terrain, clouds, flora, and texture. The screen shots below show a realtime demo I built that uses no artist-supplied geometry or texture. The simulation lets you walk around and explore the world. (2006)

Simple Physics Engine

Penguin is a point-particle physics engine I built in a while back with a friend, Duck Nguyen. It simulates the effects of many idealised point particles and allows the user to add forces (like springs, or gravity) to them. It supports collision detection. The c++ source is available and is documented using Doxygen. (2005)

Isabelle Theorem Proving

From November 2005 to February 2006 I worked with the University of New South Wales, and National ICT Australia on a project entitled Top 100 Theorems. The project involved formalising some mathematical theorems into the Isabelle proof checker. A Top 100 list of popular mathematical theorems and the progress people have made in formalising them is on the web.