A three.js game framework with characters, physics and multiplayer built in
three.js draws 3D scenes, but it has no physics, character controller, input handling or networking, so a game needs all of those added. The GrowBlocks Dev Kit is a three.js game framework that ships them: Rapier physics, characters that walk, run and jump, keyboard, touch and gamepad input, and real-time multiplayer rooms.
You still write plain three.js when you want to: gb.scene, gb.camera, gb.renderer and the Rapier world are all yours to reach.
What three.js leaves to you
| A game needs | three.js on its own | GrowBlocks Dev Kit |
|---|---|---|
| Rendering, camera, game loop | Yes (you create them) | Already running: gb.renderer, gb.scene, gb.camera, gb.onUpdate |
| Physics and collisions | No: add Rapier, cannon-es or Ammo | Rapier, fixed 60 Hz step: gb.physics, physics:'dynamic' on any shape |
| A playable character | No | gb.player.spawn(): walk, run, jump, third or first person |
| Input on PC, phone and pads | No | gb.input.move, gb.input.action, automatic touch stick, gb.input.pads |
| Multiplayer | No: add a server (Colyseus, Socket.IO…) | gb.net.join() rooms up to 16 players, shared state, host migration |
| Saves and leaderboards | No | gb.store (64 KB per game), gb.score |
| Hosting | Your own | Free, with test links and review before going live |
The versions underneath
three.js r186 (0.186) and Rapier 0.14 (@dimforge/rapier3d-compat), loaded as ES modules. You can import * as THREE from 'three' and three/addons/…, and they are the same instances the engine uses.
A whole game in a few lines
export default async function game(gb){
gb.world.style('sunset');
gb.world.ground({size:60});
gb.world.box({size:[1,1,1], position:[0,4,-4], color:'#ff5fa2', physics:'dynamic'});
gb.player.spawn({position:[0,1,6]});
const room = (await gb.net.join()).showPlayers();
}
Units are metres and seconds, +Y is up and the ground is y=0. A GrowBlocks character is 1.9 m tall and gravity is 20 m/s², which gives a snappy arcade feel.
Adding your own physics to three.js instead
If you would rather wire it up yourself, the usual route is Rapier's @dimforge/rapier3d-compat package: await RAPIER.init(), create a World with gravity, step it every frame, and copy each rigid body's translation and rotation onto its three.js mesh. It works well; it is just the part of the job GrowBlocks has already done, along with the character controller and networking that come after it.
When this is the wrong choice
The engine is licensed for games published on GrowBlocks only. You cannot export a GrowBlocks game to Steam, an app store or your own server, and you cannot self-host the engine. Your game code and art stay yours (terms).
If you need a library you can embed in your own site or product, use three.js directly, or a full open engine such as Babylon.js or PlayCanvas.
Questions people ask
- Is three.js a game engine?
- No. three.js is a 3D rendering library. A game also needs physics, input, a character controller, audio and usually networking, which you add yourself or get from a framework such as the GrowBlocks Dev Kit.
- Which physics engine works best with three.js?
- Rapier (rapier3d-compat) is fast, deterministic and runs as WebAssembly. GrowBlocks uses Rapier 0.14 with a fixed 60 Hz step.
- Can I use my own three.js code and models in GrowBlocks?
- Yes. Import three and three/addons, add meshes to gb.scene, load GLB models with gb.assets, and use your own characters with gb.assets.character().
- How many players fit in a GrowBlocks room?
- Up to 16 per room. When a room is full a new one opens.
Try it in five minutes
npx growblocks new my-game
Open the Dev KitPlay the games
Keep reading
- How to build a multiplayer 3D browser game with Claude CodeStep by step: use Claude Code (or Cursor) with the GrowBlocks Dev Kit to build a multiplayer 3D game that runs in the browser on PC and phone, then publish it with no servers to set up..
- Browser game engines compared: GrowBlocks, three.js, Babylon.js, PlayCanvas, GDevelop and RosebudA plain comparison of engines for 3D games in the browser in 2026: three.js, Babylon.js, PlayCanvas, GDevelop, Rosebud AI and the GrowBlocks Dev Kit, by what each one gives you and who it suits..
- A Unity alternative for small web gamesFor small 3D games that should load fast in a browser and work on phones, a web-native engine is often a better fit than a Unity WebGL build.