A 2D Game engine for the Kotlin programming language.


ParaTask-core is a general purpose library. Its Parameter classes make it much simpler to create forms, while 'Task' use those parameters to create a graphical front-end for a runnable task. ParaTask-app builds on top of -core. It is s a jack of all trades and master of none. It has many built-in tools, including a file manager, text editor, web browser, and git tool.

Drunk Invaders

Drunk Invaders is full featured demo game created using Itchy. The invaders from space are back, but this time they are drunk. They soon lose their tight, regimented formation, and start bouncing around the screen, making them much harder to shoot down. Much more fun than the boring game from which it sprang, with many surprises along the way.


Itchy is a game engine written in Java, designed to be easy to use, and yet still provide power and flexibility.

It is Inspired by Scratch, but as Itchy games are written using a full-strength scripting language (currently Python or Groovy), it requires a higher degree of skill, and can create professional quality 2D games.


Jame is a set of Java bindings for SDL, giving high perfomance, cross platform, bitmap graphics, sound and device input. The low-level requirements for game development.


Tetra is a clone of the classic Tetris game. Written in one day as a demo for Itchy. Including sound, exploding block effects and a high score. Yet it weighs in at less than 400 lines of very readable code.

It's Gonna Rain

It's Gonna Rain is the first game written in Javascript using my Itchy game engine. Its a very simple game, just over 100 lines of code, but is fun to play.

Destroy Debris

A new take on an old classic. The graphics are simple, but high res, and in COLOUR!

Like most of my games, Destroy Debris is written with the aid of my game engine Itchy. The game was originally written in Javascript, but I rewrote it in Python.


A 2D puzzle game. The goal is to collect all of the coins and stamps, without getting stuck, while avoiding being hit on the head by falling rocks.

There are many other nasties too. Stinging bees, planes, trucks, and best of all grenades.

Cavern Quest

A copy of the TRS-80 classic "Cavern Quest" by Barry Diller. I've kept the old-fashioned low-res black and white graphics. Should I design some colourful graphics, and switch between them with a press of a button?

Dodge 'Em

Another game knocked up using my game engine Itchy.

Dodge everything, and don't touch the walls. It sounds easy, and looks naff, but it's quite compelling.


A new design for javadocs. This isn't about asthetics, this is about functionality. Traditional Javadocs are just too cumbersome to use. PriorityDocs has neat features, such as :

  • Shows only the most important methods, and hiding the others. Show them with a single key press.
  • Skipping through to methods based on their initial letter with a single key press.
  • Remove clutter by hiding fully qualified names; hover over a type to see its package name.
  • Expand and contract method and field details.
  • Static fields and methods are separate from their non-static cousins.
  • Designed to be easy to scan through, by careful use of fonts, colours, icons and paring the text down to a minium.

X-Frame-Options Defeater

A Firefox extension, which overrides the x-frame-options header. This allows websites to be embedded within an iframe, where they would normally refuse to load.

This was created to allow my searchbar to work with uncooperative search engines, such as google.


A webpage, which agregates search results from multiple sources.

Note, that the browser extension X-Frame-Options Defeater is required to make use of uncooperative search engines such as google.


A plugin for inkscape, which exports a path (or a set of paths) to openscad's format. You can then manipulate them in openscad however you like (most commonly using linear_extrude). However, there are some extra special functions, e.g. extruding a shape along a path (such as the ogee in the "2" above).


Control your 3d Printer via a web front end.