Matthew Earl's Homepage!

Why?

So people can see a small selection of the projects I've made in my spare time.

Javascript Stuff

A few things I wrote in attempt to get to grips with Javascript. All now work in Internet Explorer thanks to IEs 4 Linux.

Game of life: Conway's game of life.
Sliding Puzzle: Just like Sam Loyd's classic 15-Puzzle.
Tetris: JKL to control the piece, space to drop. Now with added score-keeping!

Other Projects

I've done a lot of other programming things, which aren't on the internet. A lot of the projects are implementations of algorithms I've thought of, that were interesting enough to put into the code. Some of the projects are more carefully designed and may even be useful. In any case, they are almost all written in C or C++.

kpIRC: An IRC client written in Java. Features coloured text via a home made text control.
Raycaster: A Doom style raycasting engine, written in C using SDL. Features texture mapping and sprites.
Shadow: A map viewer for Quake 3: Arena, featuring stencil shadows and quadratic attenuation.
Monty: Uses Monte-Carlo techniques and Importance Sampling to approximate the rendering equation.
MD5Play: A program for viewing models from Doom 3, complete with shaders and animation.
udpknock: Allows those who have a password to have a port opened to them, but denies anyone else from seeing it. Completely silent and uses encryption.
TetrisBot: Invokes tetris-bsd and plays for hours on end by interpreting the terminal codes and sending appropriate movement commands.
BellTime: Determines the time based on an analysis of microphone input from a nearby bell tower.
Normal2Bump: Converts normal maps to displacement maps via an iterative algorithm.
ToneDial: Given a phone number will produce sounds like those a tone phone produces. Holding the speaker to a phone handset will call said number.
GPU Scaling Algorithms: scale2x, scale3x and hq2x implemented in arb_fragment_program "assembly".

Contact Me

Email: matt at matthewearl dot com.