# Three.js Game Engine (three-game-engine)

**URL:** <https://discourse.threejs.org/t/three-js-game-engine-three-game-engine/88758>\
**Category:** Showcase\
**Tags:** physics, game-engine, rapier, game, game-dev\
**Created:** [December 20, 2025, 4:29pm UTC](https://discourse.threejs.org/t/three-js-game-engine-three-game-engine/88758 "2025-12-20T16:29:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![WesUnwin](https://avatars.discourse-cdn.com/v4/letter/w/c67d28/32.png) [@WesUnwin](https://discourse.threejs.org/u/WesUnwin)\
**Post date:** [December 20, 2025, 4:29pm UTC](https://discourse.threejs.org/t/three-js-game-engine-three-game-engine/88758/1 "2025-12-20T16:29:24Z")

</div>

![logo](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/b/6/b6f8c3f27fbf680417efb17f15c90455951e6473.png)

Hi Everyone!

I’m excited to announce that over the last few years I’ve been developing a game engine based on Three.js, the Rapier physics engine, and three-mesh-ui (a UI building toolkit).

It’s still **in a beta phase** , but is already usable and am actively adding features, fixing issues. etc.

It provides an intuitive framework, that allows for using all the features of Three.js plus:

- Allows for building apps/games consisting of scenes that you can control loading/switching between.
- Scenes are created and initialised from JSON files, that allow for externally referencing and re-using game assets, and game object pre-fabs.
- GameObjects take a component-based approach, allowing you to attach Three.JS objects like models, lights, sounds, Rapier.js rigid bodies (and their colliders), and more.
- GameObjects can be generalised into types (pre-fabs) and can be controlled through scripting.
- Comes with a scene editor you can run locally or access online.
- Input aggregation and VR support
- Examples and documentation on how to build mobile apps (using Cordova) and desktop apps (via Electron)
- 100% free to use for both personal and commercial projects.
- Open-source and very actively maintained, backed by a copy-left MIT license.

 ![scene_editor](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/6/c/6c368c04cff996bd68f147e1439787c48fcfee3d.png)

Am actively looking for feedback and welcome anyone who would like to contribute.

The plan for the next few months is to add more highly useful features like:

- More improvements to the CharacterControllers
- Nav mesh / path finding logic
- Better, more attractive examples
- and much more!

Check it out on Github:

[https://github.com/WesUnwin/three-game-engine](https://github.com/WesUnwin/three-game-engine)

Website & documentation:

[https://wesunwin.github.io/three-game-engine/#/](https://wesunwin.github.io/three-game-engine/#/)

Demos / Examples:

[https://wesunwin.github.io/three-game-engine/#/examples](https://wesunwin.github.io/three-game-engine/#/examples)

---

<div class="post-metadata">

**Author:** ![Umbawa\_Sarosong](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/umbawa_sarosong/32/30107_2.png) [@Umbawa\_Sarosong](https://discourse.threejs.org/u/Umbawa_Sarosong)\
**Post date:** [December 25, 2025, 12:55am UTC](https://discourse.threejs.org/t/three-js-game-engine-three-game-engine/88758/2 "2025-12-25T00:55:48Z")

</div>

I switch to rapier two years ago, but i have to scrap the project because of so many unresolvable issues, also it doesn’t offer too much advantage over cannon.js, I still find cannon.js more practical, easy to use. I end up creating new cannon.js [threeverse engine](https://theneoverse.web.app/#threeviewer&&speed-way) because rapier could deliver what it promised. I must admit some parts of rapiers has been absorbed helping over drive cannon.js making physics separate from the three.js main thread in a worker. The methods which over drives the cannon.js was actually taken directly from rapier allowing tri-mesh to be more usable that just using the canno.js traditional examples.

I have to say that the #threeverse cannon.js could be a hyrid rapier + cannon.js becoz it borrows methods from rapier allowing the cannon.js worker to overdrive, this over drive methods makes cannon.js tri-mesh bottleneck become usable. instantly suppressing clippings issues on tri-mesh.

Here are other new #Threeverse versions (two years ago). It was developed for d3Verse but the client terminated the project.

1. [Outpost](https://theneoverse.web.app/#threeviewer&&outpost)
2. [Gallery](https://theneoverse.web.app/#threeviewer&&round-art-gallery)
3. [Real-DDust](https://theneoverse.web.app/#threeviewer&&real-dedust)
4. [Prototype](https://theneoverse.web.app/#threeviewer&&prototype)
5. [Openworld](https://theneoverse.web.app/#threeviewer&&crateria)
6. [Immersive](https://theneoverse.web.app/#serini&&serini)

The project was to create a [massive world](https://theneoverse.web.app/#landcreators) which can become a virtual real estates to allow crypto economy to operate.

https://sketchfab.com/models/96e015d3465945e189bf1cc15f30976a/embed?

[Crateria City](https://theneoverse.web.app/#threeviewer&&construct)

https://sketchfab.com/models/5218d7e81e39409c99d21bbcf679e3f2/embed?

[Serini City](https://theneoverse.web.app/#serini&&serini)

You may also drag & drop game map from SketchFab:

https://sketchfab.com/models/091ef2f243d64cb6a6faa1fa20384964/embed?

[san andreas.glb](https://discourse.threejs.org/uploads/short-url/pEjW8OqTRXPnXBxeCwlnPw07wgb.glb) (3.5 MB)

 ![Screenshot 2026-01-06 124152](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/9/0/90b9f048e8ac46461282cf3c4eb041a555e8ffc5.jpeg)

Load glb

 ![Screenshot 2026-01-06 124435](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/3/a/3aa97d800a5c10b6014a793d6b8e0b24c959b696.jpeg)

[small town.glb](https://discourse.threejs.org/uploads/short-url/bL7PYw46ybveZAiwpfAQxGKG5YE.glb) (1.9 MB)

Read [Virtual Experience Engine.pdf](https://discourse.threejs.org/uploads/short-url/7UXsDc299zjKSSto56azsdttI7f.pdf) (5.0 MB)

 ![Screenshot 2026-01-11 105627](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/1/c/1c0a3cffc7bb3a97caf861f137576a542ef26275.jpeg)

https://sketchfab.com/models/9bd7c231150d40059d7a1109c60e1b71/embed?

[burnin rubber crash burn city.glb](https://discourse.threejs.org/uploads/short-url/coSmk2eRKW489JtKeSCui4NDJrt.glb) (5.0 MB)
