Sign in

Ben Houston

@ben3d.ca
1.2K followers 1.4K following 236 posts

Personal. ben3d.ca Serial Entrepreneur. Founder: LandofAssets.com (product photos for eCommerce), Threekit.com (3D for eCommerce), Clara.io (online 3D editor), Exocortex, and Frantic Films Software.

PostsRepliesMedia
Ben Houston @ben3d.ca · 49m
"git-dedup" - a Git wrapper that makes git faster and smaller for agentic workflows. Specifically checkouts and submodules can be slow if you have agent fleets on the go. This fixes that: ben3d.ca/blog/git-ded...
ben3d.ca
git-dedup: Faster and Smaller Checkouts for Free
Agentic coding means many worktrees and clones at once, and each one drags along its own copy of Git history and submodules. git-dedup shares one local object pool across all of them. It cut my Git st...
000
Ben Houston @ben3d.ca · 25/09/2026
I love my MacBook Air 95% of the time except when I have to do a bunch of Blender renders. It throttles down since it is at 100% sustained usage and becomes ultra slow.
111
Ben Houston @ben3d.ca · 24/09/2026
Want to inspect #MaterialX materials in your coding IDE? Try my new #ThreeJS-based MaterialX Viewer extension for VSCode and Cursor: marketplace.visualstudio.com/items?itemNa... open-vsx.org/extension/be...
074
Ben Houston @ben3d.ca · 23/09/2026
2.4x Faster Native GPU Testing for @vitest.dev and #jest without a Browser. Thanks to Renaud Rohlinger for the inspiration (and this is partially built on his node-webgl package.) ben3d.ca/blog/native-...
ben3d.ca
Faster Native GPU Testing for Vitest and Jest without a Browser
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 sam...
000
Ben Houston @ben3d.ca · 23/09/2026
Want to write simpler & faster tests your #WebGPU or #WebGL code in @vitest.dev? I've created two Vitest environments just for you! github.com/bhouston/vit...
github.com
GitHub - bhouston/vitest-gpu: Vitest environments for real headless WebGL and WebGPU in Node, plus a pixel-diff screenshot matcher
Vitest environments for real headless WebGL and WebGPU in Node, plus a pixel-diff screenshot matcher - bhouston/vitest-gpu
000
Ben Houston @ben3d.ca · 14/09/2026
I want developers to be able to write performant #WebGPU code. To do that, they need to know what different operations, code patterns, and optional features actually cost on the devices people use. ben3d.ca/blog/introdu...
ben3d.ca
Introducing WebGPU-Bench: A WebGPU Microbenchmark
Introducing webgpu-bench, the micro-benchmark suite behind Web3D Survey’s GPU benchmark, with measurements of shader operations and code patterns available through a webpage and CLI.
1152
Ben Houston @ben3d.ca · 09/09/2026
Neural Texture Compression (NTC) for #ThreeJS. NTC shrinks material sizes by 90% by compressing all textures together into a single compact neural network. This is also the first open-source NTC implementation. Trainer + #ThreeJS runtime library here: three-ntc.ben3d.ca
170
Ben Houston @ben3d.ca · 08/09/2026
Web3D Survey's new GPU benchmarking page now has a sharable results URL. Here is mine: web3dsurvey.com/benchmark/40...
030
Ben Houston @ben3d.ca · 05/09/2026
Finally you can get some solid numbers on #WebGPU performance. Web3D Survey gets a statistically sound benchmark: web3dsurvey.com/benchmark Aggregation numbers coming soon. How do you measure up?
030
Ben Houston @ben3d.ca · 04/09/2026
Ant Colonies in the Machine Communicating swarms of small LLM agents will become as omnipresent in our digital environment as ant colonies are in our biological one. ben3d.ca/blog/ant-col...
ben3d.ca
Ant Colonies in the Machine
Communicating swarms of small LLM agents will become as omnipresent in our digital environment as ant colonies are in our biological one.
000
Ben Houston @ben3d.ca · 03/09/2026
Introducing "Three-LLM" A #WebGPU LLM inference engine build upon #ThreeJS's compute / TSL (thanks sunag!) that directly loads Hugging Face models, including Qwen, Phi, Smol & GPT2. three-llm.ben3d.ca
000
Ben Houston @ben3d.ca · 31/08/2026
Added physically-based Location + Date Time aware sun positioning to mrdoob's new #ThreeJS sunlight. Much easier to simulate day/night cycles than trying to figure out how to move the sun via manual azimuth/elevation modification. github.com/mrdoob/three...
050
Ben Houston @ben3d.ca · 27/08/2026
New #ThreeJS PR: A #WebGPU-native 2D Fast Fourier Transform (FFT) helper via the Stockham algorithm. Full details here, including an interactive convolution example: github.com/mrdoob/three...
030
Reposted by Ben Houston
Nick Fisher @hydroxide.dev · 27/08/2026
From @ben3d.ca: ben3d.ca/blog/m5-max-...
ben3d.ca
An M5 Max using Samsung's LPDDR5-PIM would generate 650 tokens/second
Replace the M5 Max's LPDDR5X with eight Samsung LPDDR5X-PIM packages and the memory could deliver 4.9 TB/s where the weights live. The right parallel mapping could push an 8B model toward 650 tokens p...
031
Ben Houston @ben3d.ca · 12/08/2026
Today, I added support for Niantic Spatial, Inc.'s SPZ V4 this morning to #ThreeJS's gaussian splatting #gs3d implementation. Reduces file size 30% and 1.5x faster loading. github.com/mrdoob/three...
3 tomatoes rotating on a plate.
060
Ben Houston @ben3d.ca · 11/08/2026
Just added view dependent rendering of Gaussian Splats via Spherical Harmonics (up to SH3) to #ThreeJS in this PR: github.com/mrdoob/three... #gs3d
170
Ben Houston @ben3d.ca · 07/08/2026
My minimal TSL-based #ThreeJS Gaussian Splat PR is complete. Supports PLY, SPZ, SPLAT and GLTF formats. Details: ben3d.ca/blog/gaussia...
ben3d.ca
A Minimal, TSL-Native Gaussian Splat Renderer for Three.js
A walkthrough of the Gaussian Splat renderer and loaders I contributed to Three.js, a small WebGPU/TSL implementation with a reusable GPU counting sort, loaders for PLY, SPLAT, SPZ, KSPLAT and glTF, a...
2134
Ben Houston @ben3d.ca · 06/08/2026
Been following reddit.com/r/aivideo for the last year or two and the quality of videos being posted their has dramatically increased the last 6 months. Blow my mind what one person can do now.
reddit.com
r/aivideo - The place for AI generated videos on reddit
Welcome to r/aivideo! 🍿🥤🤯 A community focused on the PROFESSIONAL USE OF FULL MOTION VIDEO GENERATIVE A.I. ASSISTANTS such as SEEDANCE, KLING, VEO, HAILUO and other similar AI VIDEO tools capable of g...
120
Reposted by Ben Houston
Mayor Zohran Kwame Mamdani @mayor.nyc.gov · 22/07/2026
Benjamin Netanyahu is a war criminal.
20378813124812
Ben Houston @ben3d.ca · 20/07/2026
How Web 3D Survey handles 300M data points / month while running on a budget of $3 CDN / month: ben3d.ca/blog/reporti...
ben3d.ca
Reporting Web 3D Capabilities on a Budget of $3 a Month
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...
001
Reposted by Ben Houston
Ruairi (rc55) @rc55.com · 17/07/2026
Who doesn’t love software rendering? Great post from Ben Houston with some source code included!
051
Ben Houston @ben3d.ca · 17/07/2026
Rendering Real-Time 3D Before GPUs How I built a real-time 3D renderer on a slow 486 with only 256 colors, using fixed-point math, palette quantization, matcap-style Phong lighting, and x86 assembly. ben3d.ca/blog/renderi...
ben3d.ca
Rendering Real-Time 3D Before GPUs
Before GPUs, with a slow 486 FPU and only 256 colors in Mode 13h, I built a software renderer that combined fixed-point math, palette quantization, matcap-style Phong lighting, and x86 assembly to get...
2193
Ben Houston @ben3d.ca · 15/07/2026
Today's Essay: Are you a SaaS Platform or a Consulting Shop with good internal tools? It can be easy to confuse the two when you are a new entrepreneur but it matters which one you are if you want to scale and pitch to investors. ben3d.ca/blog/consult...
ben3d.ca
You Might Be a Consulting Company With Good Tools
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, ...
000
Ben Houston @ben3d.ca · 14/07/2026
Web3D Survey hits 2.0: The #webgpu features/limits tracker website now lists (1) WSGL language features, (2) vendor/arch breakdown, (3) browser color space support, and (4) lets you see your own machine capabilities. Details: ben3d.ca/blog/web-3d-...
ben3d.ca
Web 3D Survey v2
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.
260
Ben Houston @ben3d.ca · 03/07/2026
Wrote a minimal, extensible Gaussian Splat renderer PR for @ThreeJS using TSL for sorting, vertex processing and fragment shading + instances. It separates the GS3D data structure from the loader and from the renderer. github.com/mrdoob/three...
0101
Ben Houston @ben3d.ca · 03/07/2026
Updated web3dsurvey.com, the WebGL, WebGL2 and WebGPU extension and feature tracker with a more informative homepage and added some new browser statistics.
230
Ben Houston @ben3d.ca · 03/07/2026
Quick little PR to @ThreeJS to add support for retroreflective materials via the Minimal Retroreflective Microfacet Model. github.com/mrdoob/three...
020
Ben Houston @ben3d.ca · 22/06/2026
How to optimizing @tanstack.com Start for Google Cloud Run: (1) config Nitro to bundle server files, (2) prewarm NODE_COMPILE_CACHE during docker build. Full details: ben3d.ca/blog/optimiz...
ben3d.ca
Optimizing TanStack Start for Cloud Run
TanStack Start runs on Nitro, and Nitro's default Node output can leave server code split across many files. On Google Cloud Run, that file fan-out can make cold starts painfully slow. Bundling the se...
000
Ben Houston @ben3d.ca · 14/06/2026
Proof of Possession: How to solve rampant developer token thief: ben3d.ca/blog/proof-o...
000
Ben Houston @ben3d.ca · 23/05/2026
My painting of Ghibli-style dust gremlins for our 3 year old who loves Totoro. Simple but she thinks having them looking over her at night is “awesome!”
020
Ben Houston @ben3d.ca · 15/05/2026
Today's side project is "node-prewarm" - it is a simple CLI tool for pre-populating your NODE_COMPILE_CACHE (available with @nodejs 25.4 and later) so your services startup 20% faster: ben3d.ca/blog/introdu...
ben3d.ca
node-prewarm: CLI for Node 25's Compile Cache
New in Node 25 is the node compile cache, which can deliver a 20% to 30% boost in server start-up time. I built `node-prewarm` to make that practical on real projects with minimal changes.
010
Ben Houston @ben3d.ca · 04/05/2026
Last week I worked on achieving pixel-perfect #ThreeJS import of @materialx.bsky.social files, and this week I've got pixel perfect @blender.org #MaterialX importing working. ben3d.ca/blog/pixel-p...
ben3d.ca
Transferable Pixel-Perfect Material Graphs for Blender & Three.js
How I built the MaterialX Fidelity Suite, then used it to drive pixel-perfect MaterialX support in both Three.js and Blender — including custom noise node implementations that finally close the gap be...
070
Ben Houston @ben3d.ca · 27/04/2026
Preparing a major PR to improve #ThreeJS MaterialX support significantly. In order to perfect it, I've written an open source @materialx.bsky.social Fidelity Suite inspired by the @khronos.org / @gltf.bsky.social fidelity tool: material-fidelity.ben3d.ca
042
Reposted by Ben Houston
Ben Houston @ben3d.ca · 24/04/2026
MaterialX Needs a Single-File Container. Let's formalize what @polyhaven.com and @gpuopen.bsky.social material libraries are already doing with a new "mtlz" extension. Details here: ben3d.ca/blog/materia... CC: @materialx.bsky.social
ben3d.ca
MaterialX Needs a Single-File Container
MaterialX assets are multiple loose files, which breaks down in real pipelines. The community has already solved this with zip packaging. We just need to formalize it as .mtlz.
085
Ben Houston @ben3d.ca · 24/04/2026
MaterialX Needs a Single-File Container. Let's formalize what @polyhaven.com and @gpuopen.bsky.social material libraries are already doing with a new "mtlz" extension. Details here: ben3d.ca/blog/materia... CC: @materialx.bsky.social
ben3d.ca
MaterialX Needs a Single-File Container
MaterialX assets are multiple loose files, which breaks down in real pipelines. The community has already solved this with zip packaging. We just need to formalize it as .mtlz.
085
Ben Houston @ben3d.ca · 09/04/2026
Beta 4 of my project "Land of Assets" is live. New features: - Robust task system at extreme scale. - Webhooks for automations. - Server event streaming for tasks. - New design aesthetic across the board. landofassets.com/blog/beta_4
030
Ben Houston @ben3d.ca · 27/03/2026
How to create a Passwordless User System. A presentation with live demo I gave this evening at ForwordJS Ottawa hosted by Fullscript: ben3d.ca/blog/passwor.... Cc: @haveibeenpwned.com
ben3d.ca
Passwordless Login System
Passwords are a shared-secret liability. Here is how to build a modern passwordless auth flow using Email OTP and Passkeys (WebAuthn), without storing passwords.
000
Ben Houston @ben3d.ca · 05/03/2026
HDRify, the JavaScript/TypeScript native HDR and EXR library gets luminance EXR loader support with version 0.11.0. Thank you "krapnikkk" on Github: github.com/bhouston/hdr... Try it out here: hdrify.benhouston3d.com?image=%2Fexa...
020
Ben Houston @ben3d.ca · 27/02/2026
Beta 3 of LandOfAssets.com is live. Supports uploads of Blender .blend and USD .usdz files automated conversion between all formats. KTX2 and MeshOpt optimized GLBs now also supported. landofassets.com/blog/beta_3
010
Ben Houston @ben3d.ca · 20/02/2026
Zstdify: A Pure TypeScrpt Zstd Re-Implementation Pure JavaScript/TypeScript zstd compression/decompression library. No native dependencies, works in Node.js and browsers. github.com/bhouston/zst...
121
Ben Houston @ben3d.ca · 20/02/2026
HDRify, the pure JavaScript implementation of EXR, HDR, and UltraHDR Jpgs, now has its own VSCode & Cursor extensions. Preview (with tone mapping/exposure) and convert between HDR, EXR and UltraHDR Jpgs. marketplace.visualstudio.com/items?itemNa... open-vsx.org/extension/be...
150
Ben Houston @ben3d.ca · 19/02/2026
Explaner: Why "Land of Assets" Standardizes on glTF for the Master Asset benhouston3d.com/blog/why-lan... #3d #gltf #landofassets
040
Ben Houston @ben3d.ca · 19/02/2026
LandOfAssets Beta 2: - Support for environment map assets: EXR, HDR (via hdrify) - Asset creation wizard - Signup/login via Google - Improved styling across the board. landofassets.com
000
Ben Houston @ben3d.ca · 12/02/2026
HDRify, the JavaScript library for reading/writing EXR, HDR, and UltraHDR, gets a website: hdrify.benhouston3d.com Load, convert, and preview your high dynamic range images in the browser in real-time.
161
Ben Houston @ben3d.ca · 10/02/2026
Introducing HDRify. A browser/Node library for reading and writing high dynamic range formats including: - HDR - EXR (PIZ, RLE, and ZIP) - HyperJPEG (Gain Maps) Includes a CLI tool for easy conversion. www.npmjs.com/package/hdrify github.com/bhouston/hdr...
npmjs.com
050
Ben Houston @ben3d.ca · 09/02/2026
FYI Github only has 93% uptime the last month, it is becoming a liability to rely upon it for production needs: mrshu.github.io/github-statu...
000
Ben Houston @ben3d.ca · 03/02/2026
Excited to share Land of Assets, a new project I've created: landofassets.com It's 3D asset infrastructure designed for developers working with glTF. Think GitHub for your 3D models: versioning, CDN delivery, and a typed SDK. Free for public assets. Looking for initial testers now.
171
Ben Houston @ben3d.ca · 29/01/2026
Hey @cloudflare-dev.bsky.social , you should support zstd compression by default when both the client and the origin support it. Right now I have a client (Safari or Chrome) and an origin (my own) that support zstd, but Cloudflare in the middle is causing it to degrade to gzip.
000
Ben Houston @ben3d.ca · 27/01/2026
Using real-time Wifi monitor PingBar for MacOS from elitasson and loving it. Try it yourself: "brew install --cask elitan/tap/pingbar" Github repo here: github.com/elitan/ping-...
020
Ben Houston @ben3d.ca · 20/01/2026
Why I Stopped Creating package.json Scripts Over the past year, I've dramatically reduced the number of scripts in my package.json files. What started as a gradual shift has become a deliberate practice: minimize abstractions, maximize clarity. benhouston3d.com/blog/stopped...
221