Ludum Dare – Perfect Match

I joined a big game jam, to celebrate the end of lectures for the term! My game is called Perfect Match, and looks like this:


You are a match. You only get one short amount of time to burn everything. Your natural enemy is the water, and the boat that puts out fires. You like rough stone, because it feels warm.

Continue reading


Robocop trailer featuring my work

Just a quick update – not sure how much I am allowed to say really – but the new trailer for the Robocop film features all the shots I worked on over the summer.

I destroyed the CG fence in the (real) explosion shot 1 minute in:

and destroyed the glass in 3 shots of Robocop and his motorbike smashing through the window at 1:54:

It’s great to see my work in a proper film – the cherry on top of an amazing experience being an FX intern at Framestore!

Lighthouse Destruction

Watch in HD please!

I spent 8 weeks at Framestore in London doing an FX internship. As well as working on FX on exciting films (which I would love to talk more about after release), I was asked to do a personal project in my free time, and present it along with all the other interns.

I had never done much in the way of FX before, so my idea was perhaps a little overambitious – I wanted to create a lighthouse like this one: Faro de Cabo Vilánand destroy it with a cannonball and a massive boulder as if it were under siege.

Continue reading

Real-time Ice Shader Development

I developed some shaders with Cg in Unity3D free for my specialist project. Here is the final result:


I enjoyed this project, as I got to do lots of research into technical papers and books on topics around real-time shader development – from parallel programming in CUDA to Pixar’s physically-based rendering to Maths and Physics text books to the game engines in use for the upcoming PS4. In fact I probably read over 1000 pages and wrote under 1000 lines, including various experiments along the way.

brdf22D BRDF Shader

I implemented the shaders in Unity 3D free using the Cg language. All models and textures were created in 3ds Max, Zbrush and XNormal, apart from Unity’s internal terrain system and stock cube maps.

Unfortunately, I was unable to implement a lot of features that I wanted to (sub-surface scattering, self-shadowing) because Unity Free does not allow render to texture. I might have chosen a different engine at the beginning had I known this. Otherwise, Unity was a great tool, very easy to pick up, with excellent support.

Art Compilation Gallery

I was asked to put together some art for an interview, so trawled through the last couple of years and picked some bits and pieces. I’ll try and keep this page updated with sketches and paintings in the future.

3D L-Systems Programming Project

I only had about 2 weeks to program this from start to finish, after having designed it in about the most complicated way I knew how: classDiagram

It came together in the last 30 hours (non-stop)! Here’s the interface when you start it – it’s modular so you can customise the positions of the controls and log, use multi-monitor setups etc. Currently it only works on Linux.


The program lets an artist create 3D L-Systems – self-similar branching structures – using recursive Production Rules applied to an Axiom. There are a few characters that affect the shape – move forward, turn, branch off etc, and other characters become variables that you can define.Screenshot

The live update means any time you change anything in the contents box, the whole system will be updated. This can cause the program to hang if you try to put iterations at 50 for example, but means the artist has instant feedback and can quickly learn the effect of the character he is changing or adding. You can watch the growth of the system with a slider, which is real-time even for complex structures.


Continue reading