Hey! If you’re looking for a technical artist to work with and you like what you see on this site, I would love to hear more! Shoot me an email with any questions or enquiries and I’ll get back to you as soon as I can.

Here’s a (slightly outdated) video reel of some of the things I’ve worked on, followed by a reverse-chronological list of the projects I have been involved in, whether it’s games, asset packs, or learning resources. Click on the drop-down arrows to hear more about each project.


Projects

Aug 2025 - Present

The original Snapshot Shaders Pro is over 5 years old now, and the biggest challenge while working on it is technical debt. Essentially, the need to support all of Unity's render pipelines while also supporting several major versions of Unity has made it increasingly difficult to add new effects or implement package-wide improvements.

With my first 'sequel' to an existing asset pack, I decided to start from scratch and tightly scope the pack to only the Universal Render Pipeline and only Unity 6 onwards. By doing so, I was able to revisit most of the effects from the first pack and totally overhaul them to work more effectively than ever with more parameters, and I could add the functionality to mask every effect in the pack to specific layers. Neither of those things would have been possible in a short timeframe if I wanted to target all render pipelines.

I was also able to create brand new effects and consolidate many from the old pack into a small number of more powerful effects, rather than several shallow ones. On top of that, I added better demo scenes, comprehensive usage tips, and scene navigation tools.

May 2025 - Present

I was contacted by S-Qubed Entertainment, the developers of a twin-stick shooter and tower defense hybrid PC game called DC3: Viral Menace.

The game uses a comic-book style (and the developers plan to release a tie-in comic book alongside the game), so they wanted me to create a cohesive toon shader and outline effect to bolster the game's visuals. The toon shader needed to support severl PBR texture maps (albedo, normal, subsurface scattering, mask, occlusion and so on) while remaining performant, and the outline effect needed to emphasize certain game elements while still allowing minor background details to remain legible to the player.

On top of that, the game needs hundreds of VFX for attacks, movement, and idle animations, which I am currently preparing to tackle in the coming weeks and months.

This project is currently under NDA, so I am unable to talk about all the details. Sorry!

Apr 2025 - Present

Over the years, I have created many shader effects which don't really fit together thematically. To tie them together, I decided to take these shaders and derive each one from a common PBR base, with a set of powerful subgraphs which help to make them more powerful or expressive. In the end, I had a collection of stylized and realistic effects which I felt could be dropped into any project.

One limitation of Unity is that you can't see transparent objects in the camera screen texture, as the copy step happens between drawing opaques and transparents, hence it is called _CameraOpaqueTexture. I decided to inject a new pass after transparent rendering to copy the screen texture another time into a new _CameraTransparentTexture, which can be sampled by any effect, as long as you can get it to render after the regular transparent loop. With the power of Render Objects, you can add any such object to a new layer and force them to be drawn after copying _CameraTransparentTexture. You can then, for example, render a glass sphere which refracts light and sees other transparent objects behind it.

An example of using the camera transparent texture to view transparent objects in the scene texture.

All of the subgraphs I developed to help write the shaders are included in the pack, as I felt they would be invaluable to developers creating their own Shader Graph effects. These subgraphs range in complexity from simple implementations of the HLSL refract function, to an improved version of the Voronoi node which can give you information about edges, to sampling every texture in a stack of PBR textures and automatically applying heightmap parallax mapping and tiling.

Apr 2025 - Present

A solo developer under the studio name Jove Games reached out for help with a Voronoi-style grid pattern for a city in an upcoming strategy game, Green Empire.

This project is based on Unity's Data-Oriented Technology Stack (DOTS) and Entities Graphics, which I was previously inexperienced with. As such, this project had a steep learning curve for me. I have since learned how DOTS compares to Unity's GameObject-based workflow and have been able to create a small library of Voronoi-shaped procedural mesh functions and shaders.

This project is currently under NDA, so I am unable to talk about all the details. Sorry!

Dec 2024 - Present

Toon shading is one of my favorite effects, so I wanted to create an asset pack crammed with every bit of toon-style functionality I could think of. A good toon effect needs to give you plenty of control over the diffuse lighting ramp and the ability to configure how specular highlights appear on objects, and I chose to allow as many realtime point lights as the user wants by supporting the Forward+ rendering path, as well as the other paths.

A mesh displaying the additional light support and diffuse lighting ramps in Toon Shaders Pro.

Outlines also work well with toon shading, so I created an outline post process effect which supports many different outline algorithms, from inverted-hull outlines, to Sobel based on color, depth, and normals information, to a mask-based implementation which draws objects to a bespoke texture with unique color IDs and draws along edges in that texture.

Sep 2024 - Jun 2025

An established VR developer reached out to me to help them create shader effects for their upcoming game targeting Meta Quest 3. Having only a very small amount of experience with VR, this project was a learning curve for me.

This project touched on a broad range of visual effects, starting off with toon and terrain shaders and eventually expanding into particle effects, decals, and rewriting Unity's included tools to fit the needs of the project. In particular, I rewrote parts of the URP shader library to streamline the lighting loop, and extended Shader Graph to support new output parameters to make it far easier to write toon-style shaders.

This project is currently under NDA, so I am unable to talk about all the details. Sorry!

Jul 2024 - Present

Using what I learned during the development of other shader packs, I developed Retro Shaders Pro with a tightly defined scope in mind. This asset pack was a direct response to the proliferation of "retro revival" games on sites like itch.io, as I wanted to expand the options available to developers in this space.

This pack relies on HLSL shaders for terrain, meshes, and skyboxes. In that respect, it is distinct from Snapshot Shaders Pro (post-processing shaders) and Hologram Shaders Pro (based on Shader Graph). I researched the limitations of the PS1 so that I could accurately model behavior such as affine texture mapping, color posterization, and low-precision vertex "snapping" with each of the shaders in the pack. Throughout development, I learned a lot about how terrain shaders work in particular, and I was able to put together a fully-featured demo scene showcasing all of the assets.

A demo scene showing off PSX-style shader effects.

The development cycle from first prototype to delivery was a little over a month (working concurrently alongside other projects), and I was able to fulfil all of the goals I formulated at the start of the project. Later, I added a multi-featured VHS post processing effect to the pack, and expanded the collection of shaders to include Nintendo 64-style three-point filtering, decals, hull outlines, and texel-aligned lighting.

Retro Shaders Pro is consistently my best-selling asset pack, and it has been selected by Unity several times to feature in key sales events such as the summer and winter sales.

May - Dec 2023

I have previously worked with the developers of Mars Attracts, Outlier Games, so they reached out to me again to help them with their park management simulator game set in the Mars Attacks universe.

They primarily needed help with terrain effects, notably heatmap shaders for visualizing various scores related to park elements. This project included enable/disable ripple animations, optimization by drawing fewer meshes, and realtime terrain drawing tools.

Mar 2023 - Present

For Hologram Shaders Pro, I wanted to create a set of shader effects which could be attached to meshes, and I wanted users to be able to easily tweak the effects to meet their requirements, so I opted to use Shader Graph.

Shader Graph makes it relatively painless to support multiple render pipelines, so I was able to cut down in iteration time compared to HLSL-based projects such as Snapshot Shaders Pro. I created different versions of the base hologram shader, with one "uber" shader and several trimmed-down versions with fewer features (glitches, scanlines etc.). Users can also disable features using shader keywords.

A mesh with a hologram effect applied, currently mid-glitch.

One challenge I faced was the need to keep the number of shader keywords to a minimum, as each new keyword can result in an exponential explosion in the number of shader variants that need to be compiled. This constraint needs to be balanced with the need to provide enough agency to those who may want to change the shader's behavior at runtime.

Hologram Shaders Pro is currently rated five stars on the Unity Asset Store and I'm very happy with how it's performed since release!

Sep 2021 - Oct 2022

I'd always wanted to eventually write a book about shaders at some point in my career, and the opportunity arrived far earlier than I expected when Apress reached out to gauge my interest.

I was the sole author of the book and I was assisted in writing a team of editors and a technical reviewer. I wrote an initial proposal outlining each chapter, and was given the green light to start writing the full book shortly thereafter.

This project was one of the most challenging to complete in this portfolio. I chose to cover all of Unity's render pipelines in both HLSL and Shader Graph, which expanded the scope of the project massively - the book ballooned to around 75% longer than originally anticipated. I learned the importance of restricting the project scope to only the essentials prior to starting any future projects.

Writing this book was a crucial step in developing my communication skills in multiple respects. First and foremost, I learned how to more effectively condense complicated topics into manageable chunks by actively thinking of a hypothetical reader who would the book to learn shaders from scratch. I imagined each section as a conversation with that reader. Secondly, I was in constant communication with my technical reviewer, Simon Jackson, to ensure the text flowed well and correct any mistakes.

Since release, I occasionally hear from people via reviews, YouTube comments, and other social media that they have found the book invaluable while learning shaders for the first time.

Feb - Jul 2021

Outlier Games contacted me to create a handful of shaders for their cooperative roguelite game, This Means Warp. The development cycle for my work consisted of Outlier sending me a list of requirements for the effect they wanted, and I was given plenty of freedom within those boundaries.

A freeze effect from TMW.

The effects included an energy shield effect which reacts to projectiles and highlights parts of the scene which intersect with the shield, a freeze effect which slowly covers players that float into space, a cloud effect, and a warp gate surface effect which glows as the ship passes through.

A shield effect from TMW.

I was able to successfully complete the tasks I was given and the team were able to integrate them into the gameplay.

Jul - Sep 2020

I was approached by Happy Broccoli Games to write a couple of HLSL-based shaders for their Unity game, Kraken Academy.

The color grading shader uses look-up textures (LUTs) to transform from one set of colors to another, allowing the artists to create only one set of sprites and convert those sprites to any lighting condition by using LUTs, saving time.

Kraken Academy color grading effect.

The outline shader is used within the gameplay to highlight objects the player interacts with. It works by detecting pixels partly-transparent pixels which are themselves adjacent to opaque pixels.

Kraken Academy outline effect.

The project scope for these shaders was defined very early on, and delivering the product went smoothly. The color grading shader needed a couple of tweaks, and I was able to easily communicate with the rest of the development team to identify and fix problems in a timely manner.

Personally, I was most surprised to find out the main character was to be voiced by Brian David Gilbert. I'm a fan!

Apr - Sep 2020

CUE Cards is a collectible card game with many visual effects during battles. Avid Games reached out to me to create several effects, primarily using Unity's particle system and HLSL shaders.

I worked on effects one-at-a-time. The dev team would send me a brief for the effect they wanted, and I would be given relative freedom to work on the effect however I wanted. With each effect, I would receive feedback from the team and I would make changes based on that feedback. The effects became more complex over time.

A glowing card effect from CUE Cards.

As my first freelance job, I felt under a lot of pressure to deliver - thankfully, the dev team were happy with the results I turned in, and continued to give me new effects to work on throughout the year.

Apr 2020 - Present

After writing shader tutorials on this website for about a year, I decided to expand my offering and create video versions of some of my existing tutorials. Eventually, these videos became the focus and the website became secondary - I would often upload the written version of a tutorial after the video had been out a while.

I was able to reach a far greater number of people with YouTube than I could with written articles alone, and the video format is one that many people find more useful for learning. I'm very grateful to have the chance to help so many people learn shaders!

Creating video tutorials is both something that I believe anyone can do, and a steep learning curve at the same time. There are so many skills I needed to learn, such as speaking my scripts clearly to the microphone and cleaning up the audio, editing video clips together into a cohesive tutorial, and organizing all of the metadata, playlists, and links to external content, all while marketing my videos in many of the same ways I had already been marketing my written work.

YouTube is such a strange ecosystem where even the smallest creators can get lucky and be noticed out of nowhere. To this day, I'm name-dropped in Dani's two most-viewed videos, at 20 million views apiece.

Jan 2020 - Present

Snapshot Shaders Pro is the first premium shader pack I created. From the outset of the project, I knew I would have to develop new skills such as marketing and project management to ensure the asset pack reached as many people as possible.

This asset pack was originally designed for just the built-in pipeline, and over time, it grew to support all of Unity's major render pipelines. It became increasingly challenging to design updates to the pack, given the need to support each pipeline across multiple major Unity versions.

  • The built-in pipeline uses the Post Processing Stack v2. This API was the easiest of the three to work with.
  • HDRP provides its own solution for custom post process effects. Although HDRP is generally geared towards high-end development and tends to be more difficult to use, the custom post-process API is well-designed and easy to use.
  • URP supports custom post processing effects through the use of the Renderer Features API, which has a learning curve far steeper than the other two APIs.

Supporting URP was easily the biggest challenge during development. The Renderer Features API and related APIs constantly change between major Unity releases: the move from RenderTargetHandle to RTHandle, the move from command buffer Blit to the new Blitter API, and the move to the Render Graph API in Unity 6 being three such examples. With each change, I needed to swiftly learn the new APIs and implement changes in response to feedback from users who needed the assets to function properly in the newest versions of Unity.

For one update, I implemented an installer window to assist users with unpacking the correct assets for the render pipeline they are using, levaraging Unity's extensive Editor scripting tools to build the installer. Snapshot Shaders Pro has expanded from the original 13 to 34 different visual effects. It is still actively maintained, although I have since released a sequel product which focuses on URP.