Some things I've made just for fun.

Shadow Wall (2016)

Natalia Galin's project for Vivid Sydney 2016. A video wall that projects synthesised shadows as light, as if a source of darkness were behind the viewers. There's a mini-game in that shadow colours are contagious when shadows touch. Natalia built the thing, I wrote much of the code for image capture, shadow projection, and I/O to the video wall controllers. People loved it, especially the kids! Check it out in action, in photos.

Code on GitHub. With Natalia Galin and others.

Thunk (2015)

Lightning-fast personalised search for Confluence and Google Drive in a browser extension. Search as you type makes a huuuge difference. Results include authorities who have written about your query. Pages you work with are kept one click away, and changes to them made visible.

The search engine is all in-browser: there's no server or backend, and data stays on your computer.

See our Atlassian Hackathon submission and marketplace page. This was a promising experiment and I think some people are still using it in late 2018.

Code coming soon after I clean some secrets out of the repo. With Adam Schuck.

Wemail (2015)

Real-time collaborative drafting in Gmail. A Firebase backend plus Chrome extension for injecting into the Gmail UI. Now you can draft an email with your colleague without the copy-paste-to-GDocs dance.

Code on GitHub. With Adam Schuck.

Copyraptor (2015)

A client-side "content management system" for quick copy edits. A JS snippet makes any web page editable. If you're the owner, edits are saved to CDN and injected into the page at render time for all other viewers. Instant, direct copy editing.

Code on GitHub.

Brolly (2014)

A hyper-local rain prediction app. Brolly uses computer vision techniques to analyse radar images from the Bureau of Meteorology, play them into the future, and predict when rain will strike. It can be unnervingly accurate.

App on App Store or Play Store.

Soundbyte (2013)

Mobile peer-to-peer data transmission using high-frequency audio. Yes, it really works! We won the OzApp 2013 competition with this, and learned a lot about signal coding. Abandoned after the primary business cases we could find were about advertising. I wish we'd thought of authentication.

Code on GitHub. With Dan Danilatos.

Heart of the Forest (2013)

A game for the 2013 Global Game Jam (theme: the sound of a heartbeat). A musical game of rhythm and change. Ok, a Guitar Hero rip-off. But we won People's Choice in Sydney! This was my first experience with Unity, and eye opening!

Here's our submission and a video. With Arvin Gunawan, Derek Lau and Alastair Sew Hoy.

Robocup legged league (2005)

For my honours project at UNSW I programmed robot dogs to play soccer! In our team of 5 undergrads I developed the vision system and high level behaviours. rUNSWift placed 3rd in the 2005 Robocup championships in Osaka.

I've uploaded our code to GitHub. Thesis reports (including mine) are here.


  • Pass the Popcorn

  • GovHack

  • GasBag