Syllory macOS · App Store review
A local-first e-book reader for Mac. Select a full paragraph to understand its meaning or translate it in context with Apple’s on-device AI when available.
Barcelona, Spain
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
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.
A local-first e-book reader for Mac. Select a full paragraph to understand its meaning or translate it in context with Apple’s on-device AI when available.
A private little chat app for your Mac that talks to Apple’s on-device Foundation Models, so nothing you type ever leaves the computer. A small Swift server listens only on 127.0.0.1 and serves a clean web chat, which opens in its own native window or in any browser. Keep separate conversations, each with its own memory, flip between light and dark themes, and grab a ready-made macOS app straight from the repo.
Mobile-first 3D dungeon runner in the browser, built with TypeScript and Three.js. WebGPU with a WebGL2 fallback, so it runs in any modern browser, including phones. A deterministic fixed-timestep simulation stays separate from rendering, with async echo ghost runs. About 213 KB gzip on the initial load.
A living ocean in your browser, built on Three.js and WebGPU. Every wave is simulated on the GPU in real time, from long 250 m swells down to ripples a few centimetres across. Crests sharpen and break into foam, the water mirrors the sky, sparkles in the sun and glows where light shines through thin waves. Pick the weather: Calm, Breeze or Storm.
Live earthquake dashboard built around a 3D globe, streaming the USGS real-time feed. Every event is drawn as one instanced marker, and recent events pulse in a shader. Hover or click an event to fly the camera to it. The virtualised event list, filters, KPI cards and SVG charts all stay in sync with the globe. Timeline playback, shareable URL state, dark and light themes, a responsive layout and full keyboard navigation. Falls back to a labelled snapshot when the feed is unreachable.
A shipped mobile game, plus earlier experiments in GPU rendering and simulation.
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.
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.
View code →
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.
View code →
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.
View code →RedCore · RedCore Town
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
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
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-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.
A step-by-step series on 3D for the web, written for frontend developers.
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.
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
Tutorials on 3D for the web, and posts on math, physics and programming.