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 · 4h
"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
You can figure out what you have if you go here: web3dsurvey.com/report/webgpu. Can you screenshot it and share it with me?
web3dsurvey.com
WebGPU Capabilities Report | Web3D Survey
WebGPU report info on your browser's implementation of WebGPU. Check live feature support, GPU limits, WGSL language features, and adapter details from this device, with links to survey-wide statistic...
100
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 · 18/08/2026
It should, yes. I just today added multi-splat rendering with global depth sort: github.com/mrdoob/three...
github.com
GaussianSplatGroup - enables rendering multiple intersecting Gaussian Splats by bhouston · Pull Request #34290 · mrdoob/three.js
Related issue: #34256 NOTE: This is a STACKED PR built upon @gkjohnson & @bhouston's Gaussian Splat ray caster work here: #34284 / gkjohnson#8 - these other PRs should be merged first. Desc...
110
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
FYI @gltf.bsky.social this adds support to ThreeJS for loading Gaussian Splats via the new KHR_gaussian_splatting extension.
011
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.
20378813124813
Ben Houston @ben3d.ca · 20/07/2026
I love how it rotates the world so you are always pointing up, so smooth.
100
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
Ben Houston @ben3d.ca · 17/07/2026
Nice work! I love the full scene work. You have walkable platforms even. Dos as well? Did you use the Watcom compiler that gave you 32 bit mode? I was always jealous that I didn't have that tool.
100
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
It uses the last 7 days of data and it refreshes every 2 days unless I push a cache invalidation sooner.
200
Ben Houston @ben3d.ca · 14/07/2026
It is quite a few devices in the hundreds of thousands, but it is a biased sample towards those that use the websites listed on the homepage of web3dsurvey.com.
web3dsurvey.com
WebGPU, WebGL, and WebGL 2 Support Statistics | Web3D Survey
Real-world WebGPU, WebGL, and WebGL 2 browser support statistics across devices and platforms. Check feature adoption, extension support, GPU limits, and browser capabilities for reliable 3D web devel...
100
Ben Houston @ben3d.ca · 14/07/2026
I added the % fallback for webgpu, it is currently really low apparently at 0.02%? web3dsurvey.com/webgpu
web3dsurvey.com
WebGPU Support - Web3D Survey
Track growing WebGPU adoption with real-world feature, limit, WGSL, and vendor support statistics across operating systems and browsers. Build reliable WebGPU apps with survey data.
100
Ben Houston @ben3d.ca · 14/07/2026
I will look into it. I've just added vendor/architectures as well as WSGL feature tracking for webgpu: web3dsurvey.com/webgpu
web3dsurvey.com
WebGPU Support - Web3D Survey
Details statistics on WebGPU's features and limits support across operating systems and browsers to help 3D web developers make reliable tools.
100
Ben Houston @ben3d.ca · 14/07/2026
It was weakening, but the trajectory of declined dramatically changed with the release of ChatGPT.
100
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
fixed! Thank you!
010
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