Three.js 3D Browser Game Engine

Three.js Browser Virtual Experience Engine

A modular Three.js-powered virtual experience engine written in JavaScript, built for developing large-scale open-world or immersive browser-based environments for gaming, simulation, and architectural visualization.

The engine includes the “Craterland” demo level — a compact test environment assembled from freely available 3D assets — demonstrating streamlined integration of external models and scenes from common asset sources with minimal configuration.

Core features include structured scene organization, a physics layer built on an extended Cannon.js implementation for optimized simulation, and multiple systems for runtime performance management. These include dynamic asset streaming for efficient memory usage, mesh simplification for handling high-density geometry, and a parallax-based interior projection system that simulates interior depth via single-plane cube mapping.

The avatar system supports modular mesh swapping (hair, head, torso, pants, shoes) with configurable materials and colors. Animation handling is optimized for large multiplayer environments through adaptive update throttling, reducing animation frequency for distant players to maintain stable WebGL performance across expansive scenes.

Screenshot #1 – You can import game levels or 3D assets from sources like Sketchfab, RenderHub, or TurboSquid and integrate them into the engine with only minor tweaks or modifications. The Three.js developer can simply download and clone the terrain mesh to use as collider geometry, enabling quick setup for physics interactions and seamless world integration.

Screenshot #2 – Gameplay supports multiple camera views, from third-person and first-person to god mode, allowing Three.js developers to orbit, observe, and oversee level integration and progress as new assets are added to the scene.

Screenshot #3 – In Blender, import the downloaded GLB file, clone the terrain mesh, remove its material, and rename the cloned geometry to phy-body-main-terrain-0kg-craterland. This name allows the engine to recognize it as a Cannon.js physics body (collider). The 0kg tag indicates that the body is stationary, meaning dynamic objects such as avatar capsules, vehicle tires, and bodies will collide with it.

Screenshot #4 – In your code editor, open engine.html, search for the asset name (e.g., craterland), and replace it with your custom environment asset name (e.g., my-custom-game-level). There’s no need to include the .glb extension. After saving the changes, launch the project using your live server.

Screenshot #5 – In your browser, change the URL from https://127.0.0.1 to your local network address (e.g., https://192.168.x.x). Some functions may not work correctly due to CORS restrictions when using localhost. To avoid this, access the project via your local IP address instead.

3D Browser Gameplay: Live Demo
Explore your architectural showcase or game environment as development progresses. Add more assets to build toward your desired level design or architectural visualization project.

Unlimited Possibilities

This 3D browser game engine unlocks endless creative potential — from open-world exploration and immersive metaverse spaces to interior design showcases, virtual event activations, and even wedding or venue planning. You can also transform it into a personalized virtual hub or meeting place for your online community.

Built on a fully modular Three.js framework, the source code demonstrates advanced integration of physics, dynamic asset streaming, and optimized scene management for large-scale or open-world environments. It’s perfect for developers looking to explore efficient WebGL workflows, integrate external 3D assets with minimal setup, or build interactive browser-based experiences — from expansive game worlds and metaverse prototypes to architectural visualizations and real-time simulations.

Resources

4 Likes

Cool screenshots! Looks promising..

attempting to log in/join via email threw an “invalid mobile #!” dialog.
For a beta style project it might be a good idea to just let people connect unauthenticated. Asking users for personal info straight of the bat is just going to prevent you from getting free testers looking at it.
You can always add the gates later once you start to see some usage and get the early bugs worked out?

edit: Wait! It looks like it timed out and then let me in! Now I got the demo scene loaded.. and a character running around…

this looks pretty cool.. lots of interesting touches and features.

Can we make the demo scene have the vehicle stuff close to the spawn ? I couldn’t seem to find any of the vehicle sim stuff, and wanted to check it out. :smiley:

Really like the technique of rendering skyboxes for distant content. I can see that being super useful for large scene stuff! Very cool! (I still couldn’t find a car after running around for a while though.. :frowning: )

Thanks for checking it out and for the great feedback!

We’ve simplified the login as much as possible, the name and contact fields are now optional, as you suggested. Since this project is focused more on electronic systems than on the metaverse side, our electronic cash system is designed to be fully offline and completely anonymous. Many users prefer not to share personal details; they just want a simple way to keep their funds moving.

We’ll also look into adjusting the demo scene so the vehicle simulation elements are closer to the spawn point, great catch!

Screenshot #1: Login – We’ve redesigned it so it only requires an email. It doesn’t even have to be a real one, it’s just there to let you back in if you lose access.

This experiment, the city of Serini City, was built entirely to showcase and test the Vrrency electronic cash system, introducing how Vrrency can function as an in-game electronic currency within a metaverse-style environment.

Screenshot #2: Vrrency – This is the electronic cash interface kiosk or the Red ATM. Serini City was built to introduce our users to the concept of electronic cash within a virtual environment. Here, users can withdraw Vrrency electronic cash and use it to purchase in-game properties and other assets within the metaverse experience.

1 Like