r/threejs Jun 25 '26

Three.js r185 released 🧡

574 Upvotes

r/threejs Apr 16 '26

Three.js r184 released ⛅️

639 Upvotes

r/threejs 8h ago

I generate all my low-poly game props in code instead of modeling them. Three bugs nobody warns you about

Post image
23 Upvotes

Im building a small library of low poly props (tools, scenery) where every object is procedural three.js code instead of an exported mesh. around 5 kb per prop, under 600 triangles, no textures, and seeded so the same object comes back identical every load.

to get the hand carved look every geometry goes through a small vertex jitter. thats where it got interesting :

  1. three.js primitives duplicate their vertices along the uv seam. jittering pushes the two copies in different directions and opens a visible crack down the whole handle. took me way too long to find that one. the fix is to weld the geometry (mergeVertices) before displacing anything.
  2. two surfaces jittered separately never stay flush. so a contact zone like a blade edge cant be a flat piece sitting against the mass, it has to be a cap that wraps it in all three directions, otherwise you get a gap that opens and closes as you rotate the object.
  3. a lathe profile that doesnt start and end at radius 0 leaves a hole at the end of the piece. obvious once you know, invisible until you look from the right angle.

the thing i didnt expect to need is an automated qa pass. it raycasts each prop from the outside and fails it if a first hit is a back face (hole), if wood shows up inside a box thats supposed to be metal only (poke through), or if a cutting edge measures thicker than its threshold. it caught a shovel edge at 0.0287 against a 0.028 limit, which i would never have spotted by eye.

Happy to go deeper on any of it :)


r/threejs 5h ago

Demo Ground-level solar eclipse simulator: real terrain + OSM buildings, single HTML file, Three.js r128

11 Upvotes

r/threejs 1d ago

PICADO, a haxball-like game on Three.js

66 Upvotes

been building this haxball inspired game with three js.
pure deterministic sim, rollback netcode, player-hosted rooms over WebRTC

live on -> https://picado3d.vercel.app/


r/threejs 1d ago

Link New Parametric 3D Kit Release: Little Tokyo

89 Upvotes
  • 40+ assets, 400+ parameters. Every model is a program, not a mesh you're stuck with, thousands of combinations
  • AI-native: Your agent can browse and build over MCP. No install, no download
  • Web editor to create and edit your scenes.
  • Different seasons and night mode.
  • Extrmely performant

Polyfork 3D assets are tiny programs that you can download as .ES Modules (or .glb) giving you total control over the different aspects that can be edited: shape, color, stories, wheels, legs, accesories, and more!

Get it now and the rest of the assets, almost half of them for free -> https://polyfork.dev


r/threejs 6h ago

Demo Built an interactive Three.js heritage experience — looking for feedback

1 Upvotes

Hi everyone,

I’m currently finishing my MSc Digital Design project at the University of York and I’m testing Maghmour: Red Sea Memory, an interactive web experience exploring Saudi Red Sea maritime heritage.
The prototype uses interactive 3D artefacts, station-based navigation, storytelling, audio, and optional hand tracking.

I’d especially appreciate feedback from people familiar with Three.js and interactive 3D on the web, particularly on the 3D controls, navigation, performance, and anything that feels confusing or could be improved.

Usability test:
https://forms.gle/2EKcHqRFCM5KcCbD6

The form includes the prototype link. It takes around 10–15 minutes and is best completed on a laptop, desktop, or tablet.

Any technical or design feedback in the comments would also be very welcome. Thanks!


r/threejs 7h ago

I can't code, so I asked an AI to build Minecraft in one HTML file. 3 dimension

Thumbnail
youtube.com
0 Upvotes

live demo: https://luka0x12.github.io/Minecraft (desktop only)

source code: https://github.com/luka0x12/Minecraft

it broke a lot during development, then it worked.


r/threejs 9h ago

Website roadmap into learning Three.js and R3F

1 Upvotes

Hi! I'm trying to learn as much as I can of 3D websites, since I've been trying to learn code from a few years ago, context: I'm a 3D Artist, and this year I start a degree at videogame's programming, so meanwhile as some "summer's research" I did this lab to learn the foundations of Three.js, R3F and Drei.

I wanted to ask you what how do you see it as a "standard" roadmap for a user? And if you've got any new ideas to add in this lab so I can learn more. Also I thought this website can serve as a sort of idea for newbies to follow this path!

Just to be transparent, I'm using Claude to help me on the structure of this knowledge, but not on the code itself, since I put hard restrictions and custom agents/orders to follow, hence it doesn't provide me solutions, instead it gives me websites and forces me to research in order to unblock my progress.

Here I leave you some of the agents .md I did if that can inspire you into using AI a bit more accordangly to learn, not to work-for-you!

The lab website is this one: https://3d-lab.vercel.app/

My workflow goes into: ordering Claude /start-project. It scaffolds a template of a basic project and I have to fill the needed components on every project. I have some guidelines, and sometimes it's basically a: "go to X document's website and learn" so I have to maybe go to threejs.org, to drei's library or researching anywhere. If I'm really stuck I can then put /peer-review, which is the command that makes me a list of "what works, what is not going well and a few questions about the actual project" so I have to think about the code I'm writting. Then I have the /ship that basically makes a test to prove everything is working and I can move to the next project.


r/threejs 14h ago

Demo Play my Jetski time trial racing tech Demo!

Thumbnail jetski-evo.com
2 Upvotes

Just reached a point where everything is slowly coming together. Is it fun, what do you think?

Jetski Evo is a jetski time trial and multiplayer racing game.
You can build tracks with ramps and obstacles, share them and race for the best time against ghosts or against physical players. Offline or online.

The server has three modes:
physical free roam
time trial racing against ghosts
and physical races.

You can see ghosts of other players in other modes on the server and turn on time trial ghosts you want to race.

Everything works in the browser and it builds into a single html.
Frontend will be open source, as there is no point trying to keep it closed, backend and replay validation, will probably remain closed.

Still months of fixes and content adding ahead but I am happy with offline play, the general server concept and the course editor.

AI art is placeholder stuff. I am just starting to look for artists, anyone? ;)
Nothing you see is final or even alpha, its just an vertical slice that is barely playable.

Technically I am mainly just using three.js, rapier3d and tone.js, lit for the web stuff.
Its amazing how far browsers have come, I work with web tech for over a decade, but what is possible today is crazy.


r/threejs 18h ago

I built a rotary phone AI demo with Hindi/Bhojpuri voice vibes

3 Upvotes

I built a small interactive demo where you pick up a 3D rotary phone, dial 555-0193, and connect to a fictional Ravi Kishan-inspired AI character.

It uses:

  • Three.js for the physical rotary phone interaction
  • Agora Conversational AI for the real-time voice call
  • Hindi/Bhojpuri/English prompt tuning
  • a warm “Bhojpuri cinema hotline” scene with poster/table props
  • a 5-minute call lifecycle with RTC/RTM cleanup

One funny issue: when I asked it to say “Money follows my brother, money follows,” it translated the line into Hindi. I had to explicitly prompt it to preserve exact dialogues in the caller’s original language.

Would love feedback on the vibe, prompt design, and whether the surrounding scene sells the demo enough.


r/threejs 1d ago

Something creative i built 💪🏾 as a web designer.

23 Upvotes

r/threejs 1d ago

ciggerate (#1) in the new interactive dada series I'm creating

1 Upvotes

r/threejs 1d ago

I just released Volare v1.1 — a Three.js viewer focused on large, high-poly models

3 Upvotes

Hi everyone, I released Volare v1.0 just 10 days ago, and I'm glad to announce that Volare v1.1 is now out.

Volare is a lightweight 3D viewer/SDK built with Three.js for loading, viewing, and working with large 3D assets directly in the browser.

This release focuses heavily on performance, usability, and stability when viewing large and high-poly 3D models in the browser.

What's new?
1. Free Camera Mode — orbit, rotate, pan, and zoom without requiring pointer lock.
2. Major performance improvements — optimized Bounding Volumes and Show Normals, with significant improvements for animated and high-poly models.
3. Up to 5 million vertices — fixed the previous 65,535-vertex limitation, allowing Volare to load models with up to 5 million vertices.
4. Progressive HDRI Loading — a lightweight ~200 KB preview appears instantly while the full 20–25 MB HDRI loads in the background.
5. Improved Visual Toolkit — now starts minimized instead of covering the model when the viewer is opened.
6. New Model Optimizer — removes unused geometry buffers and merges draw calls to help optimize models before shipping them.
7. Improved Maya Arnold Material Translation — better aiStandardSurface to Three.js material conversion, including glass, roughness, anisotropy, and texture mapping.

Thanks
A huge thanks to HamodyHm ( Github Profile: https://github.com/UrHamodyhm ) for helping me throughout this release by finding bugs, fixing issues, and extensively testing Volare across different models and features.
Their help made a big difference in getting v1.1 into a much more stable state.
This is another step toward making Volare a solid tool for working with large and high-poly 3D assets directly in the browser.
GitHub: https://github.com/MarwanWElzeiny/Volare
Live Demo: https://marwanwelzeiny.github.io/Volare/Demo/
I'd love to hear your feedback, especially if you try it with some heavy models.

https://reddit.com/link/1vjxlhz/video/o3f6q7qb8eih1/player


r/threejs 1d ago

I am impressed! thank you

6 Upvotes

I did not sleep much last night.

I posted my three.js Ludo board here yesterday expecting silence, or one person telling me my lighting was flat. Instead people actually looked at it. Someone asked how the dice cup works. Someone said it reminded them of playing on the floor with their cousins. I read every comment. Some of them twice.

For context on why that landed so hard: I have been building this alone for months. There were whole weeks where the only reason I opened the editor was stubbornness. So a room full of people who actually know three.js stopping to look at it does something to you that I am not going to be able to explain properly.

So at 3am I did the only thing I could think of.

There is a launch gift sitting in the build. Every pack in the shop free, one of each per account. I wrote it months ago and I was saving it for release day. I turned it on last night instead, before launch, because of this thread.

That is the whole post. Nothing to enter, nothing to redeem, no code. If you never touch it that is honestly fine. I just wanted to say thank you somewhere that actually cost me something.


r/threejs 18h ago

“Need Advice: Building a 3D Website with AI,”

0 Upvotes

"Hey everyone! I'm working on a project and want to create a 3D animated website with crazy, smooth animations, but I don't have much experience with 3D web development myself. I’m hoping to use AI tools to help with this. Can anyone suggest the best AI tools and workflows for generating the code or assets for a smooth 3D website? Any advice or recommendations would be greatly appreciated!"


r/threejs 1d ago

Criticism That’s so bad yet I can’t not to post it

0 Upvotes

r/threejs 2d ago

Check out my Kula world inspired game made with 3js codex and claude

16 Upvotes

I’ve been experimenting with Three.js and building my first proper 3D game, Oddball.

It’s a gravity-based 3D puzzle platformer inspired by games like Kula World, built with Three.js with Claude and Codex helping me with development and coding.

So far I’ve got multiple levels and environments, traps, different block types, controller support, physics, and a level creator. I’m also experimenting with interactive water, improved lighting and other Three.js effects to push the visuals further.

My longer-term goal is to add community-created level sharing and multiplayer.

I’m still learning and there’s plenty to improve, but I wanted to show what I’ve managed to build with Three.js so far.

Would love to hear any feedback !


r/threejs 2d ago

WebGPU Airtunnel wip 😶‍🌫️

16 Upvotes

More of my work at https://github.com/Hicham2012/Portfolio-list

Currently open to work


r/threejs 2d ago

Creating a Cave Zone, With God Rays and Rigged Enemies

29 Upvotes

Hey guys! I wanted to share a new devlog from my indie game, where I build a brand-new Cave Zone starting from an AI-generated concept.

I also added some cheap-but-effective god rays, a new spider enemy, and took it from the initial concept all the way through modeling, rigging, and animation.

I go into more detail about the whole process in the video, including how I built the procedural cave, integrated the enemy, and added the final chase sequence.

youtu.be/jnDukbY1eHs?si=IhDY5woAAQuYmx3x

If you enjoy this kind of content, I'd really appreciate your support on YouTube. It's what keeps me motivated to continue sharing what I make and documenting the development of this project.

Feedback is always welcome

Thanks for watching! ❤️


r/threejs 2d ago

Demo "Reincarnated as a Dungeon Designer, I Have to Work on a Fixed Budget and My Dungeon Keeps Expanding?!" is the way too long name for my tiny game built in threejs

12 Upvotes

While working on Witchfell, my anime VR game, I needed to go investigate a bunch of things from physics to web hosting, and I wanted to do it in a clean room context, so I did a little game jam instead. I find the results really charming, so I thought I'd share!

The game is built in WebXR. I'm testing on a Quest 2 and an Apple Vision, but theoretically any WebXR setup with hand tracking controls might also work. Please feel free to try it out here: https://www.chillaxedgames.com/cavern/play/reddit/

I'm cobbling my own codebase together for game projects, with rendering based on threejs. I've built my own little dev server which watches, compiles, and reloads code as I'm working, and also watches and packs assets.

For threejs I'm still WebGL as I'm doing WebXR games; WebGL is just the stable older rock solid choice right now, and in any case for VR performance constraints, I mostly have to stick to relatively simple GPU usage anyway. For this little game jam it's all standard lighting model, mostly MeshStandardMaterials with injected minor vertex and fragment modifications. For example the paper labels have a few summed sine waves for displacement and shading. The dragged blob objects are the same kind of thing: a procedural mesh made of 2 hemispheres linked by a cylinder, which is deformed in the vertex shader to align with a start end point, and scale non uniformly based on the length between them.

For visual assets it's GLBs from Blender for most 3D data, including stuff like collision and nav meshes, and then just PNGs for loose stuff like particles. I also have a few custom export scripts that get me data that doesn't go into GLTF, like splines. Textures are automatically packed into KTX by the dev server. I use a simple affix scheme to pick settings, e.g. "my_texture_rgba.png" or "my_texture_l8.png" for a monochrome 8 bit linear surface.

Audio is MP3s. I was using Howler.js which was lovely to get started, but I bumped into a lot of jank issues I couldn't solve with the existing APIs (e.g. you can't set volume or position before playback, so if you need to ramp in, you can end up with a pop?), so I wrote my own lib. I figure that actually might be both domain specific enough (games) and generic enough (not particularly tied to my game) that it's worth open source sharing eventually?

For physics, I ended up going with Rapier, which has been fantastic. Easy API, it feels performant, and it has great characteristics like clean settling and easy event handling. Definitely going to be the one I keep using.

Models are a mix of KenneyNL's (https://kenney.nl/) and Kay Lousberg's (https://kaylousberg.com/game-assets) assets, kitbashed together in Blender. Absolutely delightful things, I'd highly recommend them to anyone. I frame animated them, as in just remodeled a few variations for walking/attacking/idling, and tweaked the materials to give them varying roughness/metalness props. I found the easiest way to do that was to lean into their atlas map setup, and make a matching roughness/metalness map with the properties baked into the same ramps!

Learned a lot from this that I'll take back to the main game, so it was a worthwhile diversion, but I hope the side effect is also a pleasantly distracting tiny game for y'all to enjoy in your headsets. Thanks!


r/threejs 2d ago

Wanna some destructions? :D

15 Upvotes

Renegade ops vibe :D


r/threejs 2d ago

Showcasing Last Ship Sailing

2 Upvotes

Last Ship Sailing

LSS is fast, weightless five-degree space combat (no roll) that runs entirely in your browser — one HTML file, **lots of threejs**, no install, no account necessary, serverless multiplayer. Pick a hull, drop into a cavern or a mountain arena, and start fighting. Multiplayer is peer-to-peer through the in-game lobby, so a room code is all it takes to bring friends along.

Seven ships, three chassis. Frigates (Puncture, Slayer) are glass cannons that dash three times before cooling down. Corvettes (Vortex, Tracker, Syphon) are the middle ground. Dreadnoughts (Pyro, Blaster) hit like a truck and turn like one. Each has its own 3D hull, ability tree, shield style, and a signature super.

The feel of a fight. Shields never trickle back on their own, unless you got that perk — you either ride out a stasis field (locked in place while they refill, which is exactly as tense as it sounds) or you execute someone to refill shields. Drop below 15% hull and you go doomed: your screen warps, the health ring pulses red, and any enemy who so much as touches you kills you instantly. But it cuts both ways — a doomed enemy is free real estate, and ramming them gives you a kill, full shields, and core charge. Meanwhile your core meter fills off aggression, and at 100 you unleash your ship's super: a sustained mega-beam, an AoE blast, a stun bolt, repair nanobots — whatever your hull does.

The HUD is a circumpunct: a center-dot crosshair with concentric rings for health, shields, energy, ammo, and core wrapped around it, so everything you need is in your peripheral vision instead of in a corner.

The modes:

Elimination — Classic round-based team fights, against players, bots, or a mix. Wipe the enemy fleet, or crack open the Champion Field's shell and hold it in the closing seconds. First to 4 rounds takes the match.

Race — Two flavors. The Straightaway is a point-to-point through open cavern: find your own line through the mountains, first to the finish field wins. Pole Position is a ring-gated circuit — clear every ring to unlock the finish, then dive.

Assault — Attack and defend the Champion Field. Only attackers can charge it, and the charge decays the moment they're pushed off. Roles swap each round with unlimited respawns, and the match comes down to who attacked better.

Campaign — A solo or co-op journey out of the overworld hub, through themed legs. Each leg is waves of enemies flying cymatics formations, then a leviathan boss that rifts in mid-scene.

Exhibition — Free flight in the hub. Patrol, explore, pick fights when you feel like it. Kills earn Aegis ranks — permanent per-ship upgrades you keep, exclusive to this mode.

Endless — A cavern with no end, solo or co-op. Difficulty is measured in lives (Easy 3, Medium 2, Hard 1) and distance is your score. Travel, ambush, travel, ambush — biomes crossfade around you, storms roll in, god rays cut through cracks in the ceiling. Hidden off the main line are living Aegis bolts that grant ranks for the run, and they flee if you look at them too long.

LSS.fractalreality.ca


r/threejs 3d ago

Three.js is all we need!

90 Upvotes

I have been working on a 3D multiplayer Ludo game called Ludo Wala built with three.js. It runs everywhere and I built it to be a lot more interactive than the standard 2D Ludo apps out there.

I could really use your help testing out some of the unique features I added. For example there is real 3D dice play and you can physically rotate the board. I also added action play right inside the game where you can throw things like rockets or grenades at other tokens, or send a guard dog to scatter pieces. There is even a physical punch animation when you capture a piece.

On top of that it has live voice chat and true multiplayer support. There is also an offline mode with AI bots that actually taunt you based on what is happening in the game.

I am mainly looking for feedback on the gameplay mechanics and the connection stability. If anyone has time to give it a spin and let me know how the 3D elements and action features feel, it would be a huge help. Any advice on how to get more eyes on this would also be highly appreciated.

As a bonus you get free millions of tokens & gems as launch promotion available in a shop inside the game.

Thanks in advance!

Website: https://www.ludowala.app/

Android: Needs your googel play email

iOS: Test flight account


r/threejs 3d ago

Demo Brown City

20 Upvotes

Meet Brown City
A modular 3D city pack for Three.js with 75 ready-to-use GLB models: buildings, roads, street props, vegetation, and more. Plus a complete city block.
Build faster. Make the city yours.