A small RPG-type character generator.
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!
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/.
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, 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.
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.
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.)
This applet implements a fluid simulation. It is a port of Jos Stam’s realtime fluid solver c code over to processing.
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.
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)
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.