Flight

A TypeScript SDK designed for AI agents

166 packages · tree-shakable · side-effect free

2D 3D Physics Animation Platform

        

Rendered live with Flight. The same scene runs on every backend — Canvas, DOM, WebGL, WebGPU — through one API.

Designed to be read and written by machines

Explicit, not magic

Simulation, rendering, and resource passes are all invoked by name. No hidden state, no eager side effects on import.

Plain data

Colors are packed integers, physics bodies are descriptors, transforms write to out-params. Free functions over deep class hierarchies.

Self-identifying names

Every exported name carries the full type it operates on, so a symbol leads straight to its domain — grepable by design.

Bounded & owned

Tree-shakable packages with explicit ownership and clear contracts — import one in isolation and understand it in full.

Everything available. Only what's needed.

Every package is tree-shakable and side-effect-free, so a build ships only what it uses — a shape and a renderer, not an entire engine.

Bitmap · Canvas 3.6 KB
Bitmap · WebGPU 7.8 KB
Particles · WebGL 11.2 KB
Platformer · WebGL 24.8 KB
Platformer · WebGPU 27.2 KB

gzipped · measured from the project's size baseline

Built to ship at scale

166 independently versioned packages
1,400+ automated test suites
3 target languages from one TypeScript source

Feature set

Rendering

3D

Meshes PBR Materials Lighting Cameras Skeletal Ray Picking

Animation

Tweens Springs Timelines State Machines Blend Trees Easing

Physics & Collision

Rigid Bodies Joints Collision Spatial Index

Effects

Filters Blend Modes Masks Post-Processing

Platform

Audio Video Input Multi-Window Sensors Networking
Examples

Browse the example gallery and flip each scene between the DOM, Canvas, WebGL, and WebGPU renderers.

Ports

OpenFL, Starling, and AwayJS examples ported to Flight — running on every renderer.