Noise Tool

GUI for manipulating Perlin Noise

Escape Game

A WebGL point and click escape room game.


A way to encode javascript in images

WebGL Projects

I have many WebGL projects on the go

Escape Room Tycoon

A new game demo I'm working on


Misc javascript things I have made

NoiseTool is a front end for the LibNoise library that lets you manipulate noise modules and view their output in realtime, by connecting outputs to sources. It can apply colour gradients to the data to create bitmap image representations, much like the original noise library utils can do.

I use this noise library a lot to create heightmaps, voxel maps and procedural textures, and I got tired of playing with numbers in code and not really getting to see what it is that the numbers are doing without rendering the whole scene in game. I created this tool to help me see exactly what types of images I will get, if certain noise modules are connected a certain way.

Launch NoiseTool

NoiseTool repository
NoiseTool documentation



Escape is my first WebGL escape room simulation. It's based on the old one room adventure games that we used to play back in the flash days. Originally made for the Oculus Devkit 1, it no longer works in VR but its still fun! Can you use the clues and figure out how to open the door?

Launch Escape Game



CodeImage lets you encode javascript into an image. Webpages can load and run code directly from the image.

CodeImage is currently used by my webgl engine as a way to load model assets. All the model data is converted to JSON and encoded as a jpg. The JSON gets read from the image at run time and is ready to use immediately with no processing or parsing.

More information here



I've worked with DirectX for many years in C++, then with SharpDX in C# for Windows and XBox. Lately, with the advances of WebGL, I have changed my focus to be on online graphics rendering.


My custom pipeline is used to prepare 3D models into a proprietary format that my WebGl engine uses. It handles FBX files and textures. Plans are underway to handle IK and bones.

Launch Pipeline


I made this lighting tester so I can see what my models look like under actual WebGL lights.

Launch Lighting Tester


MXFrame is the third generation of my graphics engine for WebGL, based on earlier DirectX versions.

MXFrame repository


Escape Room Tycoon

This is a demo of an idea I had for a tycoon type game where you are in charge of designing and running escape rooms. AI customers will come and play your rooms. Can you keep the business afloat?

Launch Game Demo


Misc Javascript projects

Rough draft of my novel
Timeline tool for planning book plots
Kerbal tool for mocking up rockets
A snowy scene
A test of modeling water ripples
An ongoing experiment with text adventures



You can get in touch with me several ways:

Twitter: @madoxlabs
YouTube: MadoxLabs Channel
GitHub: MadoxLabs Repositories



I have been programming for as long as I can remember, and doing it professionally since 1996. I am mostly self taught, having discovered C in highschool on my own before studying Comp Sci in university, but am always learning and reading about new stuff to get better. Most of my time has been spent with C++ in Unix and Windows, but I have been known to work with anything that looks cool: Java, PHP, Lua, Lisp, JS, Perl - Even Prolog was cool one summer. I am very interested in procedural algorithms and genetic software that can evolve itself. Since I don't have time for making game levels or scripting AI, its easier if the game can do that itself!

Which brings us to gaming. I've been trying to write my own games since grade 8 with varied success. Most games are nothing more than a tech demo that never goes anywhere but its all important steps in learning. I don't like using game engines and prefer to discover how to do everything myself from scratch. Over the last decade I've taught myself DirectX, HLSL, C# and XNA programming (no I don't do OpenGL!), as well as PhysX and other physics engine SDKs. I've branched out into doing XBox and WindowsPhone development since its very easy to get stuff to market there. I've managed to get a few complete games done in the last year or so and feel being able to complete something bigger isn't too far off.

The name Madox come from the japanese animation 'Madox-01 Metal Skin Panic'. It is about a dude that jumps into something he doesn't understand, tries to figure it out himself and makes a big mess - which is generally how I feel when it comes to DirectX stuff!

I am unrelated to The Best Page in the Universe.