Introducing ies-tools: Making IES Light Files Easy to Use
An IES file captures the shape of a real light, but opening it gives you a wall of numbers. I built ies-tools to make seeing that light as easy as opening an image.
An IES file captures the shape of a real light, but opening it gives you a wall of numbers. I built ies-tools to make seeing that light as easy as opening an image.
Your coding agent just rebuilt a library you could have installed. Now every future change has to pay for that decision.
Move the camera closer and the bumps get flatter: Three.js can change a material’s apparent depth without changing the material. The missing convention is simple—height needs a unit and a space.
Your CLI already knows its commands and flags, yet its docs—and the agents using it—often have to reconstruct them. I built CliDoc to turn those same definitions into reference pages and a complete machine-readable description.
git-dedup is a drop-in replacement for git that shares one copy of Git history across all your clones, worktrees, and submodules. It made my agents start dramatically faster and cut my Git storage by 70%.
I built Vitest and Jest environments that give your tests real, GPU-backed WebGL and WebGPU contexts directly in Node.js. They use the same ANGLE and Dawn implementations as Chrome, so you get the same pixels without the overhead of launching a browser.
A cached page can still cost a full server render when it goes stale. ETag revalidation can skip that work in TanStack Start—but where you intercept the request determines how far your caching policy reaches.
A GPU supporting half precision doesn't tell you whether it will make your shader faster. I built WebGPU-Bench to put numbers behind that choice—and let coding agents test their performance assumptions, too.
You can put a phone-captured object into Three.js without building a mesh or unwrapping a single UV. Here is the route from a raw scan to a compact SPZ file—and the few lines that render it.
Three.js can draw a scene and run the language model that describes it. I built Three-LLM to test that—and found that batching GPU submissions made one small model generate text 4.7× faster.
My seven-service SaaS starts in about three seconds, yet routine development uses real GCP services. The split is deliberate: application processes stay on my laptop, cloud infrastructure costs about $8 a month, and fast tests use local Postgres.
Two Gaussian splat clouds can each render correctly and still produce a popping seam where they overlap. Here is how I made Three.js sort them together without rewriting millions of splats when an object moves.