I’ve been working as a programmer / technical artist since 2013.
I love making satisfying, tactile and beautiful experiences.
I also enjoy solving cutting-edge graphics problems.
GLASS – My Current iOS & VisionOS Project
I am currently working solo on a puzzle game for iOS and I have designed the visuals and shaders to be compatible with VisionOS in the future.
What is it?
The puzzle is to fill stained glass windows with only four colours, such that no colour touches itself.
It’s in beta on TestFlight. Sign up here: https://testflight.apple.com/join/2RuaxmU2
Tech art & VisionOS:
I envisage the game working on VisionOS with the clouds and refraction effect fully working. The window will be placed in your room and be a portal to the 3d clouds outside. The refractive texture of the glass will work with the stereoscopic vision for extra realism and presense.
The clouds are dynamically generated with various noise layers.
The pixel colour of the clouds is calculated on the fragment shader of the empty or filled regions themselves. The fact that the clouds look far away is an illusion.
The angle of the clouds to draw is based on viewing angle, which means the refraction effect is simply changing the viewing angle that the cloud function is calculating from. It is essentially ray-casting.
All this is done with no overdraw, no wasted drawing of clouds to a buffer (which is how one might achieve refraction normally) and therefore great performance.
The current build is made in Unity, but this technique was picked because it should be easily re-creatable in a shader in Reality Composer. I am currently working on the VisionOS side of it.
The mesh generation is also worth drawing your attention to. The puzzles are defined as vector points and lines and then these 3d meshes are generated for the window’s metal lines and glass panes.
When the panes smash at a specific point, the mesh is split up and triangulated using my own multi-threaded logic.
It feels great to have the glass break exactly where you pressed it, but the mesh needs to be generated very quickly to minimise the delay in interaction.
I can’t wait to try this using my eyes on Vision Pro!
Every shard of the resulting smash is actually baked into a single mesh. They are all moved separately as shards by the vertex shader.
This is essential for performance vs creating hundreds of separate game objects in an instant. Also they are all draw in one draw call!
Here is a bunch of my other work, all of it with a strong technical artist angle.
You might be familiar with some of it, but I included a lot of behind the scenes clips to get a look into the tech art innards.
Lumino City – Sole Programmer & Sole Technical Artist
- A Puzzle adventure game made from real cardboard models
- on iOS, tvOS & PC
- We won a BAFTA for “Artistic Achievement”
The whole game was made by hand, we used a robot arm to video and scan the model in multiple passes (lights on/off, doors open/close)
These were composited, blended or overlayed in different ways for each scene.
This taught me to think way outside the box.
It was exciting solving problems I hadn’t seen solved before.
KAMI & KAMI 2 – Programmer & Sole Technical Artist
- A beautiful puzzle game
- on iOS & Android
I am proud of the programmatic animation in the game, but I want to highlight my work on the paper texture.
Since the game was literally about once piece of paper, I wanted to make it the best piece of paper you’ve ever seen in a video game.
I wrote a tool that imports photos lit from different directions. It would then create an incredibly detailed normal map. You can even see the fluff on the paper catching the light at the right angle.
Here is a rough test I did with some cardboard on a cutting mat in our studio..
Recreated and lit in Unity.
Check out those ridges!
KAMI AR – Programmer & Technical Artist
- An AR skew of KAMI for use at in-person events
- We put up an interactive art gallery inside both the UK Apple Headquarters and various other public places
The puzzles were complex enough to track in AR.
This taught me a lot about compositing and colour matching between the camera image and the augmented assets
INKS – Programmer & Technical Artist
- An artistic take on pinball
- on iOS
- We won an “Apple Design Award”
The aesthetic of our yet-unnamed pinball game was taken in an inky direction since I was playing with metablob shaders in our R&D time.
The metablobs form the basis of the splat shape, then some GPU-based fluid dynamics take over to let the ink mix and flow.
I also did a cool thing where paint could splat the rolling ball, whilst also maintaining it’s 2d look.