finds.dev← search

// the find

lume/glas

★ 936 · TypeScript · MIT · updated Feb 2026

WebGL in WebAssembly with AssemblyScript

An ambitious port of Three.js from JavaScript/TypeScript into AssemblyScript, targeting WebAssembly for potential performance gains in WebGL rendering. The pitch is that web developers already know TypeScript-like syntax, so AssemblyScript gives them a path to WASM without learning Rust or C++. Still firmly alpha — the current demo only instantiates an Object3D, nothing renders yet.

The math layer (Vector2/3/4, Matrix3/4, Quaternion, Euler, etc.) is thoroughly ported and has proper as-pect unit tests, so the foundation is solid. The ASWebGLue bridge library solves a real problem — AssemblyScript can't call browser WebGL APIs directly, and having a dedicated interop layer is the right architecture. The directory structure mirrors Three.js exactly, which makes it easy to track porting progress and diff against upstream. Dist artifacts (both .wasm and ESM/UMD JS wrappers) are committed, so you can drop it into a project without a build step.

The renderer — the entire point of the thing — is not ported. WebGLRenderer.ts exists but leans on .js stub files for most of the WebGL subsystems; you cannot actually draw anything. Half the codebase is still plain .js with .d.ts declaration files sitting next to unported AssemblyScript stubs, which means the 'port' label is generous. Last meaningful commit activity tapered off years ago and the project board links are dead; this reads as abandoned before it reached its stated initial goal. There's also no evidence the WASM path is actually faster than plain Three.js for typical scenes — the JS↔WASM boundary overhead for per-frame WebGL calls could easily cancel out any WASM gains.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →