August 24, 2026Adding Global Sort to Three.js Gaussian SplattingTwo 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.
August 22, 2026Fine-Grained Shader Validation in Three.jsA shader can render a convincing image while its math is wrong. Numeric GPU tests exposed six bugs in Three.js's TSL foundations in a day, from NaNs to reversed rotations.
August 7, 2026Adding Native Gaussian Splatting Support to Three.jsAdding Gaussian splats to a Three.js scene takes three lines. Keeping the implementation small took more work: GPU sorting, view-dependent color, and loaders that fit the existing engine instead of bringing a second rendering stack along.
July 19, 2026Reporting Web 3D Capabilities on a Budget of $3 a MonthWeb3DSurvey collects roughly half a million browser samples a month, yet costs about C$3 to run. The key is making report traffic almost irrelevant to the BigQuery bill: even thousands of views reuse the same cached aggregates.
July 17, 2026Rendering Real-Time 3D Before GPUsIn 1997, I got textured, bump-mapped 3D running in real time on my dad's 486. With only 256 colors and a slow FPU, even a specular highlight needed a shortcut.
July 16, 2026React Native in 2026Many developers still judge React Native by the architecture Airbnb left in 2018. The Bridge is gone, and Expo no longer makes custom native code a point of no return—but mobile still has constraints that React alone cannot solve.
July 12, 2026Web 3D Survey v2Before gating a 3D feature or taking a laptop to a demo, check what its browser actually exposes. Web 3D Survey v2 lets you compare that machine’s WebGL, WebGPU, and browser capabilities against the survey population.
June 22, 2026Frameworks vs. Toolkits for Multi-Market SaaSEvery new market can make your SaaS harder to use for the customers who made it successful. Stretching one framework across related markets creates a complexity tax—and gives focused competitors an opening in your original market.
June 22, 2026Adventures in Fluid SimulationI spent ten years building fluid solvers used on around twenty films, including Harry Potter. The harder lesson was why that work had a fraction of the impact of a render scheduler I built using a filesystem as a database.
June 21, 2026My Dad, an Apple IIe and a Stack of Nibble MagazinesMy dad's Apple IIe and a stack of magazines taught me to code by copying, breaking, and rebuilding tiny programs. By eleven, I'd squeezed a fireworks animation into two lines—and Nibble published it.
June 20, 2026Optimizing TanStack Start for Cloud RunThis site's first render on Cloud Run took 12.4 seconds; bundling Nitro's server output brought it to 1.64 seconds. Pre-warming Node's compile cache helped next—but adding it before bundling can make the filesystem bottleneck worse.
June 14, 2026A Solution to Rampant Token Theft: Proof of PossessionStatic API keys in environment variables and files are too easy to steal. A better model is proof-of-possession, where every API call must be signed by a non-exportable private key that is available only through a constrained signing interface.