Illustrated portrait of Mike Smahin

Barcelona, Spain

Mike Smahin

Senior Frontend / 3D Engineer

15+ years building software, with a focus on frontend engineering, real-time applications and 3D for the web and games. TypeScript, React, Angular, Three.js, WebGL & WebGPU, Unity / C#.

LinkedIn: linkedin.com/in/mike-smahin-48608226

  • TypeScript
  • React
  • Angular
  • Three.js
  • WebGL
  • WebGPU
  • Unity / C#

01 Featured demos

Try Syllory and Familiar Local as standalone Mac apps; the remaining demos run live in the browser. Dungeon Dash works on phones, the globe and bubbles.js use WebGL, and the crowd and ocean demos need a WebGPU-capable browser such as recent Chrome or Edge.

02 Selected graphics work

A shipped mobile game, plus earlier experiments in GPU rendering and simulation.

Redungeon App Store screenshots: endless dungeon, hardcore gameplay, special abilities

Redungeon 2016

Endless dungeon crawler for iOS and Android, published by Nitrome: random, increasingly difficult dungeons, dozens of traps and unlockable characters with unique skills.

Apple Editors’ Choice, rated 4.6/5 from 1.3K+ App Store ratings, and 1M+ downloads per platform. Built in Unity / C# at Eneminds, the studio I co-founded; I built everything except the design.

  • Unity
  • C#
  • iOS
  • Android
  • Game
App Store Source code is private
GpuFluid 2026: coloured dye swirling around an obstacle

GpuFluid 2014 · refreshed 2026

C++ / OpenGL fluid solver on the GPU: advection, buoyancy and a Jacobi pressure solve as shader passes. Refreshed in 2026 with coloured dye, vorticity confinement, a 512 grid and a cross-platform CMake + GLFW build.

  • C++
  • OpenGL
  • GLSL
  • Navier–Stokes
View code →
GpuRayTracer: shiny metal spheres reflecting a checkerboard floor

GpuRayTracer 2015 · refreshed 2026

Shiny metal spheres on an endless checkerboard, ray traced live on the GPU, with every pixel worked out in a single C++ / OpenGL shader. Light bounces twice between the spheres, shadows fall soft from an area light and the lighting slowly shifts as you watch. Refreshed in 2026 with a new look and a cross-platform CMake build.

  • C++
  • OpenGL
  • GLSL
  • Ray tracing
View code →
GpuVoxels: a voxel island with a winding blue river and autumn trees, as a sphere flies over the treetops

GpuVoxels 2015 · refreshed 2026

A little blocky island in autumn colours, ray cast live on the GPU from a 64×64×64 grid of voxels stored as an OpenGL 3D texture. Every pixel walks through the grid block by block until it hits the ground, a tree or the winding river, while a ball drifts over the treetops. Written in C++ and GLSL, and refreshed in 2026 with a new scene.

  • C++
  • OpenGL
  • GLSL
  • Voxel ray casting
View code →

03 Professional highlights

RedCore · RedCore Town

Owned RedCore Town end to end

Product owner and lead engineer of RedCore Town, from development to production. Revived the existing 3D web app and made it stable in production, cut scene loading 3x by optimizing GLB assets, memory and S3 delivery, and built a standalone Angular app shipped as an npm package. Then created RedCore Town 2100: a huge interactive 3D city with mini-games and a fully redesigned visual identity.

Vimeo · Venues

Brought 10,000-person virtual events to life

Led the 3D side of Vimeo Venues, a virtual conference world where thousands of attendees walk, gather and network as live avatars. Built the crowd engine from the ground up: up to 10,000 avatars at a stable 60+ FPS right in the browser on everyday laptops, owning everything from simulation and rendering to product integration in a team of 10.

Vimeo · Live Events

Frontend at scale with React / TypeScript

Built Live Events features on a large-scale production platform, focused on UI performance and contributed to the shared design system. Better automated testing meant fewer regressions and more frequent releases.

Eneminds · Redungeon

Co-founded a studio and shipped a hit mobile game

Co-founder and lead developer of Eneminds, a team of two: one designer, and I built everything else in Unity / C#, from game architecture and rendering to gameplay systems. Redungeon, published by Nitrome, reached 1M+ downloads per platform, became an App Store Editors' Choice rated 4.6/5, and earned ~$500K.

04 Tutorial

A step-by-step series on 3D for the web, written for frontend developers.

Part 7 stress test: a field of 5,000 colourful little shapes stretching to the horizon, drawn in just a handful of draw calls with InstancedMesh in Three.js

Three.js from Scratch 2026 · parts 1–7 of 8

From a first lit cube to shaders and WebGPU, with diagrams, real screenshots and a live demo in every part. The early parts take you from your first scene to your own shaders and on to TSL. The new Part 7 is all about speed: squeeze thousands of objects into a few draw calls with InstancedMesh and BatchedMesh, add LOD and culling, clean up after yourself, and only render when something actually changes.

  • Three.js
  • WebGPU
  • TSL
  • Performance
  • Tutorial

05 Advent of Code

Solved by hand, year after year, across five languages. Day counts are the days with a solution committed in each repo.

227 days of puzzles across 11 events · Ruby · Python · C# · JavaScript · TypeScript

06 Writing

Tutorials on 3D for the web, and posts on math, physics and programming.

Three.js tutorials new · Three.js, WebGL & WebGPU · all parts →

Math, physics & programming

Read the blog → Source on GitHub