dorkhub

houseki

💎 A modular 3D game engine built for the web.

m11m
TypeScript719 forksGPL-3.0updated 2 years ago
visit the demogit clone https://github.com/m11m/houseki.gitm11m/houseki

Houseki 💎

A lightweight, modular, and extendable 3D game engine built for the web.

🕹️ 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

  • Lightweight: The engine is designed to be lightweight, aiming to be a minimal wrapper around the underlying technologies. We want to avoid adding unnecessary abstractions.
  • Modular: The engine is designed to be modular, allowing you to pick and choose which systems you want to use.
  • Extendable: The engine is designed to be extendable, allowing you to easily add your own systems and components.
  • High Performance: The engine is designed to be highly performant, using an ECS architecture, multi-threading via WebWorkers, and WASM where available.

📦 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.

Package Description
@houseki-engine/core Core engine, built with Thyseus ECS
@houseki-engine/csm Cascading shadow maps
@houseki-engine/gltf glTF import and export
@houseki-engine/input Components for handling user input
@houseki-engine/orbit Orbit controls
@houseki-engine/physics Rapier physics
@houseki-engine/player Player controls
@houseki-engine/portal Portals
@houseki-engine/postprocessing Postprocessing effects
@houseki-engine/render Three.js rendering
@houseki-engine/scene The 3D scene graph
@houseki-engine/text Text rendering using troika-three-text
@houseki-engine/transform Transform controls
@houseki-engine/utils Utility functions
@houseki-engine/vrm VRM avatars
@houseki-engine/scripting WASM scripting
@houseki-engine/xr WebXR support

more like this

lottery

🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀

JavaScript4.6k

Scythe

SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.

C#50

bit_gossip

Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.

Rust50

search

search projects, people, and tags