Home

Awesome

<div align="center"> <h1>Houseki 💎</h1> <strong>A lightweight, modular, and extendable 3D game engine built for the web.</strong> </div>

🕹ī¸ Examples

See the engine live at houseki.vercel.app, or dive right in to the source code and see how it works.

🤔 Motivation

The web has a lot of independently awesome libraries for building games, but combining them all together can be a pain. Houseki aims to be a lightweight framework for combining these libraries together. To achieve this the engine uses an ECS architecture, allowing for independent systems to work together on same data without coupling. The engine is also highly performant, with speed gains from the ECS architecture and multi-threading via WebWorkers that would be difficult to achieve when using these libraries individually.

🏗ī¸ Design Goals

đŸ“Ļ Packages

Packages are published individually to NPM under the @houseki-engine scope. Alternatively, you can install all packages at once using the combined houseki package.

PackageDescription
@houseki-engine/coreCore engine, built with Thyseus ECS
@houseki-engine/csmCascading shadow maps
@houseki-engine/gltfglTF import and export
@houseki-engine/inputComponents for handling user input
@houseki-engine/orbitOrbit controls
@houseki-engine/physicsRapier physics
@houseki-engine/playerPlayer controls
@houseki-engine/portalPortals
@houseki-engine/postprocessingPostprocessing effects
@houseki-engine/renderThree.js rendering
@houseki-engine/sceneThe 3D scene graph
@houseki-engine/textText rendering using troika-three-text
@houseki-engine/transformTransform controls
@houseki-engine/utilsUtility functions
@houseki-engine/vrmVRM avatars
@houseki-engine/scriptingWASM scripting
@houseki-engine/xrWebXR support