A selection of recent work — product partnerships and consulting engagements.
Performance monitoring for React Three Fiber scenes
Measure before optimising — including on the user's machine.
OPEN SOURCE
NPM
PERFORMANCE
R3F
Performance tools for R3F already existed, but each of them was tied to an on-screen panel. I needed the numbers so the program could decide for itself — drop a LOD, disable an effect — not so I could read them. So I wrote one with a headless mode: numbers only, nothing rendered.
It grew from there into what I use to answer the question intuition always gets wrong — where the time is actually going. [Name the main features and one example of a problem it helped you find.]
Currently at version [x], available on npm.
Role
Author
Timeline
[year] — Present
Stack
TypeScript, React Three Fiber, WebGL
LOD generation and loading for glTF/GLB models
One model, several levels of detail, one command.
OPEN SOURCE
NPM
GLTF
CLI
Generating LODs for 3D models is repetitive work: decimate, compress textures, pack, then write a loader that picks the right level at runtime. I packaged that whole process into a CLI and a matching loader.
[Describe how it works and what it does differently from doing it by hand with gltf-transform.]
A separate package, `@anhldh/gltf-animation-pointer-extensions`, handles `KHR_animation_pointer` — an extension that optimisation steps tend to strip out, which turned out to be a distinct enough problem to split off.
Role
Author
Timeline
[year] — Present
Stack
TypeScript, glTF Transform, Node.js
A web tool for inspecting glTF/GLB files
Drop a file in and see where the weight is.
TOOL
GLTF
WEB
While working on the optimisation pipeline I constantly needed to know what a GLB actually contained: how many meshes, which textures were left uncompressed, which extensions survived the transform. Opening a desktop tool each time was slow, so I built a page that does it.
[Describe what it shows and who uses it.]
Runs entirely client-side — nothing is uploaded anywhere.