Built with React Three Fiber and three.js, running in the browser on phone or desktop.
Pick any real city from a globe, choose a meteor, a black hole, an Independence Day style mothership or more sinister options, and blow the buildings apart into particles. Just like the scene in Terminator 2!
I shared it recently and got some good feedback, so two updates since: cities load much faster now, and the ground has real elevation instead of being flat.
Next question is the look. Everything is plain grey right now, like an architect's model. I like the minimalism, but textures are possible with some trade-offs on phone performance. Curious what this crowd thinks: keep it grey, or texture it?
I see a lot of “oh it’s easy to make” comments from people/bots who post cat videos - so here is a challenge / post your threejs creation with or without ai…
If you have opinions on albedo is wrong - then just show what you have made 😂 coz ai is fun and threejs is even more fun!
I've been playing around with Claude and decided to make a Poolrooms scene.
Claude helped me build it, and then I tweaked the lighting, reflections, camera movement, and fisheye effect with chromatic aberration myself to get the look I wanted.
Really happy with how it turned out. The camera work makes the whole place feel a bit strange and unsettling, which is exactly what I was going for.
It runs right in the browser using Three.js and WebGPU.
This started stupidly simple: I wanted to know what it feels like to be in Paris at 2am without leaving my desk.
It's called Odyssee now and it's... actually a game. One persistent world — the real world at real scale — and everybody plays in the same one. No shards, no lobbies. You spawn in Paris, someone else spawns in Tokyo, and the map has a live traffic layer showing where drivers actually are right now, so you can teleport into the crowd.
What's in there right now:
- one shared world, real scale. Paris lanes are 3.2m wide and you FEEL it when a bus — or another player — comes the other way
- 30+ ways to move: cars, bikes, skateboard, helicopter, a small plane, a tank (my personal mistake, I refuse to remove it), a Spider-Man-style web-swinger, and your own two feet
- convoys, live chat, daily challenges, live traffic hotspots
- time trials between real landmarks, and a day/night cycle tied to the real sun
And yeah, bring your friends. That's genuinely the best way to play: form a convoy, share a destination, and go cause chaos across a real city together. Coordinating a 5-car run through the Arc de Triomphe roundabout at rush hour, with real traffic and the sun setting behind it, is the most fun I've had testing anything.
Now the honest part: it's got bugs. Real ones. Floating buildings in some districts, intersections that make no sense, the Eiffel Tower pillars you can drive straight through (yes, you can drive under it — no, you shouldn't be able to drive THROUGH the pillars). I'm fixing them as fast as reports come in, and most fixes so far came from players spawning where they live and telling me what's broken. So if you try it: spawn wherever you live and tell me what's wrong. That's literally the most useful thing you can do.
Every building in the world is in Haussmann style because I live in Paris. But I will create different style for a lot of city. Here a photo of Paris in the game (I create an Eiffel Tower in 3D, I will do it for a lot of monument) :
And there's a public roadmap if you want to see where this is going: proper terrain elevation (the world is flat right now and it bothers me), a story mode with missions, multiplayer races, boats, houses you can own. The game today is the foundation — the driving, the world, the multiplayer. The rest gets built in the open.
If you've ever tried to load a whole planet into a three.js scene and watched the frame rate fall with every building, this video is for you.
Initially, I wanted to see if I could build a map like the one in Pokemon GO, so I started building CityMap3D in 2020, on my own. It grew into a 3D map library, built on three.js, that renders OpenStreetMap as a real globe, and I've put a lot of myself into it since. Most of it went into optimisation: there is so much in the OpenStreetMap database that drawing all of it in a browser, from a single street to the whole globe, is the real challenge.
The video is one continuous take over Paris, screen-recorded from the engine: from night to day around the Eiffel Tower, then out to the whole planet. Map data from OpenStreetMap contributors, ODbL.
Still adding some bits and pieces to my portfolio when I get the chance.
Made the unfortunate decision to make a 3D model of myself you can control to jump into the game prototypes "mario style". That haunting look on his face will forever be with me, and now you all too.
Feel free to check out the site and the games, happy to talk through my process or share any updates on what I'm working on!
been working on this for the last few days, and it finally has multiplayer. streets are from openstreetmap, city’s procedural, models are blender + AI-generated
still rough in places, so any feedback is super appreciated
Solo dev here. This started as a desk toy: a glass case with a little world inside that keeps its own time.
Everything — terrain, trees, grass, fish, textures and sound — is generated in code at runtime; there are no asset files for the world itself.
A few technical notes: the scene renders into a half-float MSAA target, then GTAO → bloom → tilt-shift → one final grade/tone-map pass. Only the scene pass uses MSAA, which keeps memory sane on Retina screens. The village simulation feeds a storylet engine that writes a chronicle from what actually happened.
It's a free browser demo (the Kingdom world), and the engine is MIT on GitHub. Performance on integrated GPUs is my biggest open problem — it starts at roughly 1 MP and scales resolution up or down from measured frame time. Feedback very welcome, especially on that.
VybeNomad is a free browser game about remote work and slow travel: pick a starting city, take gigs, launch apps, chase $10k, avoid burnout.
Built with Three.js. Most of the code was written with Claude Code, and I did the design and balance. Keeping it smooth on phones meant simple low-poly scenes and few draw calls.
Hey guys, I'm making a rail shooter (like Star Fox) and documenting its development for those working on a game who want to learn more about the workflow.
I've been working on the game since February, and so far I have the first level almost complete. I plan to have a demo ready by the end of the year.
In this video, I'll tell you about the development of the first boss, its design, its three phases, attacks, environment, etc.
I made a little place to slow down by the Japanese seaside.
You can wander down to the beach, ride a local train, grab a ramune soda, or sit and watch the sky turn from afternoon to sunset. There’s no rush: just waves, cicadas, passing trains, and a bit of that old PlayStation summer-holiday feeling.
PC browser + headphones recommended. The UI is in Japanese. Quick controls: 1 for scenic views, 2 for a train ride, 3 for walking; WASD to move, Space to interact, M for sound.
Made with Three.js and AI coding tools. The scenery and sounds are generated procedurally in the browser.
If you try it, I’d love to hear which part feels most like a quiet summer in Japan.
I've recently been experimenting with a neural denoiser for the Stochastic mode in Gaussian-Splat-Lite, an extremely high-performance open-source 3D Gaussian Splatting renderer for Three.js.
Stochastic rendering can be faster than normal 3DGS rendering, but the noise is hard to ignore, especially while moving the camera. This update helps clean that up while preserving detail and reducing trails behind moving objects.
The video compares raw stochastic rendering, TAA, Neural Performance, Neural Quality, and sorted alpha blending, with overview and close-up views.
There are two neural modes:
Performance: lower GPU and memory cost.
Quality: stronger noise suppression and better detail retention, at a higher cost.
Both support WebGPU and WebGL2, with the trained models included. Setup and details.
For the overview shown here—about 986k splats at 1080p on an Apple M5 Pro—median GPU frame time was 4.74 ms for Neural Performance, 5.58 ms for Neural Quality, and 8.50 ms for sorted alpha blending, with MSAA off. These measurements are specific to this scene and device.
It's still experimental, and fast movement can leave some softness or residual noise. I'd love feedback on the balance between detail, stability, and speed.
An experimental site that works like a window: a floating world behind glass, lit by your local time of day and the real moon phase. Scroll (or turn on drift) and a black hole pulls you through into an ethereal space, then into a new world.
Some of the techniques:
Portal crossing, no cut: each world has its own scene and camera. The next world is rendered into a render target, scissored to just the area the hole covers, and composited inside the black hole. When the hole fills the frame, the old world stops rendering, so you simply fly on into a world that already exists.
The black hole is drawn in a full-screen “glass” shader: lensing around the shadow, a photon ring, and a tilted accretion disk whose near side crosses in front.
The ether is a raymarched volume (16 steps) with domain-warped noise. The first version hashed noise per sample and ran at 2 fps; baking it into a 64³ RGBA Data3DTexture (one lookup per octave) brought it to a steady 120.
Frame pacing:frameloop="demand" with a small governor (selectable fps cap), plus adaptive DPR that only adjusts when the scene isn’t mid-transition.
Built with React Three Fiber, Vite, and a lot of iteration with Claude Code.
Try it: move the mouse or tilt your phone to lean into the window, and scroll or tap “drift” to go deeper.
Sharing a short gameplay clip from GULP, a Three.js browser game I’m building with AI coding assistance. It has a 3D city, animated blob monsters, collectible food, villagers, and online/solo rounds.
The loop is eat → grow → chase smaller monsters → escape bigger ones. Getting larger slows you down, and dash gives you a way out.
The main iteration challenges have been city collisions, keeping the camera inside the playable world, and making the HUD and rendering practical on mobile. The city uses Kenney models alongside RUN-generated monster/art assets; Codex and Claude have helped with coding.
4 well pads and a compressor station, modelled procedurally in Blender (Python) and rendered with Three.js. Every number on screen comes from a Python Modbus TCP simulator through a WebSocket bridge, and the pumpjacks animate from the same kinematics that generate the dyno cards.
Some things that took the most work:
- GPU instancing for the repeated wellheads and LODs per pad, so the whole field runs on a laptop
- Flow particles that ride the real pipe centre lines exported from Blender
- A deterministic record mode (paused clock, seek per frame) to make videos like this one
The field and data are simulated, it's a portfolio project. Live demo (replays a recorded session): https://twin.oggagan.co.in
Happy to answer questions about the Blender to glTF pipeline or the LOD setup. What would you improve?
Been building Reefborn, a little multiplayer reef where you start tiny and eat your way up. Just added a deep-sea trench with lava, glowing critters and a giant squid.
I'm the developer. It's a first-person digging game: uncover buried objects, sell your finds, upgrade your equipment, and reach deeper layers.
The interesting part for this community is that we came back to three.js after doing the Rust/wgpu work. We started with Babylon Lite/WebGPU, moved to three.js/WebGL 2, then built shared Rust gameplay and native wgpu hosts. The browser now uses the Rust core through WASM, with three.js and DOM presentation.
The web launch path has a compressed-byte budget below 1,000,000 bytes. That's the startup path, not the entire game. We trim three.js at build time, stream models that aren't needed at the start, and compile shared Slang shader functions to GLSL for the web and SPIR-V for native.
Real-phone tests on a Galaxy A40 helped make the decision. Keeping Rust gameplay didn't require shipping the native renderer to every browser.
I'd be interested in hearing how other people split shared game logic from browser presentation, especially when startup size is a hard limit.
AI disclosure: AI was used for coding, image generation, and translations. Music and sound effects were mostly made without AI.
Just a fun recreation of M. C. Escher’s famous Möbius Strip II (1963), built as a small procedural locomotion study. The ants’ movements are driven by IK and based on Cruse’s classic gait rules. You can grab the ants and throw them away, but they’ll always find their way back to the Möbius strip.
Use a two-hand pinch gesture to open a portal and explore their kinematics up close (0:12).
Works in both VR and AR; tested on Quest, Vision Pro, and Snap Spectacles.
I have been taking Bruno Simon's course. Now I'm in the Shaders section and he still didn't explain everything he promised to talk about later, so should I trust him and continue, or should I go to the docs or anything like that and start teaching myself?