Build browser-based creation tools on composable packages.
Combine editor, scripting, asset, UGC, moderation, and publishing modules to support creator-focused workflows.
TypeScript game engine
The infrastructure layer for interactive web products.
A modular engine in 94 TypeScript packages. For teams building game creation platforms, visual editors, and interactive tools on the web.
import { createWorld, defineComponent } from '@web-engine-dev/ecs'
const Position = defineComponent('Position', { x: 'f32', y: 'f32' })
const Velocity = defineComponent('Velocity', { x: 'f32', y: 'f32' })
const world = createWorld()
const entity = world.spawn()
world.insert(entity, Position, { x: 0, y: 0 })
world.insert(entity, Velocity, { x: 1, y: 0.5 })Use one package or compose many. The monorepo currently exposes 94 package modules across 10 groups.
Repo defaults use strict TypeScript settings and ES2022 targets, with declarations and tests maintained at package level.
Rendering packages are aligned on a WebGPU-only runtime with dedicated modules for render graph, assets, effects, and UI.
Editor and engine packages can be integrated into your own application shell, workflows, and deployment model.
Built for the teams creating the next generation of game creation platforms , visual editors , interactive training tools , product configurators , and web-based game engines
Combine editor, scripting, asset, UGC, moderation, and publishing modules to support creator-focused workflows.
Start from editor packages, customize panels and inspectors, and pair them with renderer, physics, and gameplay modules.
Use WebGPU rendering, physics packages, and platform modules like analytics, telemetry, and accessibility in one stack.
This comparison focuses on implementation scope inside this monorepo: what you would need to build in-house versus what is already available as workspace package modules.
Install only what you need. A math library. An ECS. A full renderer. Each package works on its own.
Wire packages into your application, editor, or platform. Use the visual editor as a starting point or build your own UI on top.
Ship for WebGPU-capable browsers first, then add PWA/mobile/XR runtime packages as your product requires.
94 packages across 10 package groups. Adopt one package at a time or compose multiple modules as your product grows.
Typed component schemas, archetype storage, world/query APIs, and scheduler/resource integration in @web-engine-dev/ecs.
WebGPU-only renderer and render-graph packages with supporting modules for sprites, tilemaps, particles, text, terrain, and UI.
The editor is split into editor-core, editor-ui, and editor-viewport packages, plus a dockview-based app shell.
Interface packages for 2D/3D physics plus Rapier-backed implementations: physics2d-rapier and physics3d-rapier.
Dedicated packages for netcode, ECS netcode integration, server runtime, and matchmaking.
Gameplay modules include ai, ai-ml, pathfinding, procgen, and state packages.
assets, asset-pipeline, scene, prefab, streaming, storage, and compression packages cover loading and authoring workflows.
ESM packages with TypeScript declarations, strict compiler defaults at repo level, and package-level test suites.
The editor is three packages: editor-core,
editor-ui, and editor-viewport.
Not a monolith you fork and modify. You pick the parts you
need and wire them into your product.
Swap out panels, write custom inspectors, replace the viewport renderer. Plug in your own asset browser and apply your brand.
Import one package, compose several packages together,
or start from the umbrella @web-engine-dev/engine export.
import { Vec3, Mat4 } from '@web-engine-dev/math'import { createWorld } from '@web-engine-dev/ecs'
import { createDevice } from '@web-engine-dev/renderer'
import { GLTFLoader } from '@web-engine-dev/gltf'import { create2DEngine } from '@web-engine-dev/engine'Enterprise
Web Engine is commercially licensed software designed for product teams that need implementation control, package-level governance, and composable architecture.
Repository licensing is proprietary and commercial. Source and package usage are governed by direct agreement with your team.
Apps and services in this monorepo can be run inside your own infrastructure, with your own release and environment policies.
Core systems are separated into scoped packages, making dependency review, ownership, and rollout strategy explicit.
Editor and engine layers expose plugin/extension points so teams can add product-specific workflows without forking everything.
Package names and counts here match the current monorepo layout. Packages ship TypeScript declarations and version independently, so you can adopt one module or compose many.
Yes. Every package has its own package entry, types, and tests. Use @web-engine-dev/math and you get a math library module without pulling the full stack.
No. The renderer targets WebGPU exclusively. It requires a runtime environment with WebGPU support.
No. The repository is proprietary/commercially licensed (UNLICENSED package metadata plus proprietary license terms).
Yes. The engine is framework-agnostic TypeScript. Mount the WebGPU canvas in your component and drive the update loop from requestAnimationFrame.
This monorepo is currently built with TypeScript 5.x and targets ES2022. Check package docs for any package-specific compatibility constraints.
Email contact@web-engine.dev to discuss licensing, integration scope, and support options.
Web Engine uses a commercial license. Pricing is tailored to each team based on scope, scale, and support needs. Reach out to discuss what works for your project.
Yes. Every package works independently. You can adopt a single package into an existing codebase, or use the full engine as the foundation for a new product. No all-or-nothing commitment.
We work with platform teams directly. Tell us what you're building, and we'll show you how Web Engine fits. Custom integrations, dedicated support, and engineering time focused on what you need.