A fast 2D game engine
for the web
Estella pairs a first-class TypeScript SDK with a C++/WebAssembly rendering core, and ships a visual editor. Build once, deploy to web browsers and WeChat MiniGames.
Fast
A C++ rendering pipeline compiled to WebAssembly — not interpreted JavaScript.
Type-safe SDK
defineComponent, defineSystem, Query, Commands, Res.
Data-oriented
An ECS core with a single cache-friendly component storage layer.
Cross-platform
One codebase, deployed to web browsers and WeChat MiniGames.
Visual editor
Scene hierarchy, inspector, and asset browser — no JSON editing.
Spine & Physics
Built-in Spine skeletal animation and physics support.
Write game logic in TypeScript
Declare what a system needs; Estella runs it over matching entities each frame.
const Speed = defineComponent('Speed', { value: 200 }); addSystem(defineSystem( [Res(Time), Query(Mut(LocalTransform), Speed)], (time, query) => { for (const [entity, transform, speed] of query) { transform.position.x += speed.value * time.delta; } } ));