3D and shader libraries compared (including glTF Transform)

Layer: 3D and shaders. In the list: Three.js, OGL and glTF Transform. Added: Babylon.js, PlayCanvas, regl and gltfpack / meshoptimizer. Part of Open-source motion studio: 20 repos. Dates checked 2026-10-27; capability notes come from READMEs or project descriptions.

glTF Transform is covered here instead of in its own note (a merge, recorded in the hub): it is a toolkit for files rather than a renderer, and its README is short on distinguishing detail for a separate page.

glTF Transform in brief

A glTF 2.0 SDK for JavaScript and TypeScript on web and Node.js (repo donmccurdy/glTF-Transform, MIT, npm 4.5.1 published 2026-09-28; no GitHub releases, tag v4.5.1). It reads, edits and writes glTF files with “fast, reproducible, and lossless control of the low-level details”, for bundling, splitting, optimising, quick fixes or building a model procedurally. Packages: @gltf-transform/core, extensions, functions and cli. It runs in Node, Deno and the browser; the CLI applies functions in batch. It does not draw anything; it prepares assets for renderers such as Three.js.

Comparison

Three.jsOGLBabylon.jsPlayCanvasreglglTF Transformgltfpack / meshoptimizer
RoleGeneral 3D libraryMinimal WebGL layer3D engine3D engine with editorFunctional WebGLglTF file SDK and CLIglTF compression and optimisation
RendererWebGL, WebGPUWebGLWebGL, WebGPUWebGL, WebGPUWebGLnonenone
LicenseMITUnlicenseApache-2.0MITMITMITMIT (meshoptimizer)
Latestr186 (2026-09-24)npm 1.0.11 (2025-01-27)pushed 2026-10-27pushed 2026-10-27pushed 2026-10-17npm 4.5.1 (2026-09-28)pushed 2026-10-14

WebGPU support for Babylon.js, PlayCanvas and regl is not stated here; see each project’s README.

Which one when

  • General 3D scene, most examples and integrations: Three.js.
  • A tiny, readable shader layer, or learning WebGL: OGL (quiet since 2025-04).
  • A full engine with inspector and tooling, or a hosted editor: Babylon.js or PlayCanvas.
  • Shader work with a functional API: regl.
  • Slimming, quantising or restructuring models before they load: glTF Transform for scripted workflows, gltfpack / meshoptimizer for mesh compression.

Sources