Apps, AR Games & Films · Web, Snapchat, TikTok, VR
New to Contra
Apps, AR Games & Films · Web, Snapchat, TikTok, VR
Atelier Éclat — a photoreal restoration game inside Snapchat
Most cleaning games fake it with flat images. I wanted the real thing: a muddy collector's object in true real-time 3D, running inside Snapchat with no download.
What I built
• A photoreal workshop scene: real-time 3D objects with clean and dirty materials, studio lighting and a turntable you rotate by hand
• Thumb-anywhere aiming of a brass pressure lance; the water stops at the first surface it hits, splashes and leaves wet, shining areas that dry over time
• Six collector objects for Season 1 (helmet, radio, model coupé, lantern, watering can, mantel clock), unlocked one by one
• Per-part progress to 100%, a hold-to-compare before/after view, English and French, progress saved with Snap storage
• Each object optimized to about 1 MB so the whole season fits Snapchat's 8 MB Web Lens limit
Result
• Published on Snapchat as a public game Lens (October 2026); Season 1 update with all six objects delivered to Snap
• Submitted to the Snap × Lenslist Web Lens Game Challenge
My role: Game design, 3D asset pipeline, gameplay and rendering code, UI/UX, launch film
Stack: three.js, TypeScript, Vite, Blender, Snapchat Web Lens API
Play: https://www.snapchat.com/lens/ae28ccd7037c41589c4b95dbc56241e8
0
16
Runaway Courier — a 3D rooftop runner inside Snapchat
Endless runners are fun for a minute, then they all feel the same. Runaway Courier gives every run a purpose: deliver the parcel before a cop and his bulldog catch you.
What I built
• A 3D rooftop runner across 7 worlds and 21 levels: old town, glass towers, desert kasbahs, forest bridges, snowy peaks, harbour docks and floating sky islands
• Swipe controls built for thumbs: change lanes, jump, slide, with every gesture buffered so nothing feels missed
• A live chase: each mistake brings the cop and his bulldog closer; run out of energy and you are busted
• An economy that keeps players coming back: deliveries, tips and clean-run bonuses fill season earnings and unlock new levels
• English and French, progress saved with Snap storage, the whole game in a 2.7 MB package
Result
• Published on Snapchat as a public game Lens (October 2026), approved by Snap in under an hour
• Submitted to the Snap × Lenslist Web Lens Game Challenge
• Game rules, collisions and missions covered by automated tests
My role: Game design, gameplay and 3D programming, level design, UI/UX, launch film
Stack: three.js, TypeScript, Vite, Vitest, Snapchat Web Lens API
Play: https://www.snapchat.com/lens/f7789876517d46d0912bfc5e68e4e2bf
0
15
Stunt Race — stunt racing with your own Bitmoji at the wheel
Mobile racing games put a stranger behind the wheel. Stunt Race puts the player's own 3D Bitmoji in the driver's seat and on the winner's podium, right inside Snapchat.
What I built
• Level-based stunt racing against five rivals on three tracks: Golden Canyon, Harbor Run and Twilight Skyway
• Traps announced ahead of time (wrecking balls, falling containers, hammers), ramps, and a turbo charged by close calls and overtakes
• Touch controls designed for one-handed play: steering stick, brake and throttle pedals, turbo button
• A podium celebration with the player's Bitmoji, plus a garage of four cars unlocked with the stars earned in every race
• Progress saved with Snap storage and a friends leaderboard ranking total stars
Result
• Published on Snapchat as a public game Lens (October 2026)
• Submitted to the Snap × Lenslist Web Lens Game Challenge
• 3 tracks, 5 rivals and 4 cars in a package under Snapchat's 8 MB limit
My role: Game design, gameplay and 3D programming, UI/UX, publishing, launch film
Stack: three.js, JavaScript, Snapchat Web Lens API (3D Bitmoji, storage, leaderboards)
Play: https://www.snapchat.com/lens/25de44c51400435caabdce9ca66b6a5d
0
13
Tricky Days — Season 1: story puzzles starring your own Bitmoji
Puzzle games rarely feel personal. In Tricky Days the hero is you: the game loads each player's own 3D Bitmoji and drops it into the craziest week of their life.
What I built
• 40 story puzzles across five days, from Monday's mountain of dishes to Friday's party of the year, each with one clever and often absurd solution
• Drag-and-tap gameplay with hints, a timer and a three-star rating per level
• 138 gag cards: every wrong idea plays a funny reaction and joins the player's album
• Bitmoji styles to unlock with stars, a daily "Tricky Day" challenge with streaks, and a friends leaderboard
• A season structure: the finale teases Season 2, designed as an update to the same Lens that keeps every save
Result
• Published on Snapchat as a public game Lens (October 2026)
• Submitted to the Snap × Lenslist Web Lens Game Challenge
• 40 levels, 138 gags and a full season shipped in a package under Snapchat's 8 MB limit
My role: Game design, puzzle and level design, gameplay programming, UI/UX, launch film
Stack: three.js, JavaScript, Snapchat Web Lens API (3D Bitmoji, storage, leaderboards)
Play: https://www.snapchat.com/lens/54db6efe555c49669b26ae92bb129237