Adding Native Gaussian Splatting Support to Three.js
How I added Gaussian Splatting to Three.js with WebGPU, TSL, a reusable GPU counting sort, SPZ v3/v4 and interoperability loaders, and SH1-SH3 view-dependent color.
Personal website and blog of Ben Houston, focusing on 3D web technologies, AI, and software development.
How I added Gaussian Splatting to Three.js with WebGPU, TSL, a reusable GPU counting sort, SPZ v3/v4 and interoperability loaders, and SH1-SH3 view-dependent color.
The architecture behind Web3DSurvey, two Cloud Run services, a partitioned BigQuery store, and a transparent JSON cache that let me report real-world WebGL and WebGPU support for a few dollars a month.
How I built real-time 3D rendering on a slow 486 with only 256 colors in VGA Mode 13h, using fixed-point math, palette quantization, matcap-style Phong lighting, and x86 assembly.
React Native is an excellent development platform again. Here is what changed since AirBNB moved off of it in 2018, how its New Architecture works, and where the Expo framework fits in.
Many founders believe they are running a SaaS company when they are running a consulting company with good internal tools. If your team uses the platform to deliver work for clients who never log in, you are the latter, and that changes how you should hire, price, and focus.
Web 3D Survey v2 rebuilds the site on TanStack Start, adds homepage support summaries, WGSL and adapter reporting, browser capability stats, and a live /machine report.
I spent ten years building fluid simulation tools for VFX: a three-day Stable Fluids prototype, sparse level sets for Scooby-Doo 2, tetrahedral and vortex solvers at Exocortex, and three pieces of my software on Harry Potter and the Deathly Hallows.
Why SaaS products that stretch one opinionated framework across multiple markets often become harder to use, and why scalable multi-market products separate universal toolkit primitives from market-specific frameworks.
My dad bought an Apple IIe and a stack of Nibble Magazines. This was the start of my career in computer graphics.
TanStack Start runs on Nitro, and Nitro's default Node output can split server code across many files. On Google Cloud Run, that file fan-out can add seconds to cold starts. Bundling the server and pre-warming Node's compile cache reduced first render time on this site.
Static 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.
Understand what React is doing when your components render, pause, skip work, commit to different hosts, hydrate server HTML, split work with Server Components, and hand animation off between frames.
Testing command-line tools is deceptively hard - hanging processes, lost stderr, temp file juggling, and unreadable failures. I built vitest-command-line to make CLI testing in Vitest simple and robust.
Part 7 of the React Internals series. React Server Components split a tree into server-only and client-interactive pieces, serialize the server result as an RSC payload, and still rely on SSR and hydration for the Client Components that reach the browser.
Part 6 of the React Internals series. Server-side rendering creates an initial HTML snapshot on the server; hydration lets react-dom attach event handlers and fibers to that existing DOM instead of replacing it.