Ben Houston
@ben3d.ca
Personal. https://ben3d.ca Serial Entrepreneur. Founder: https://LandofAssets.com (product photos for eCommerce), https://Threekit.com (3D for eCommerce), http://Clara.io (online 3D editor), Exocortex, and Frantic Films Software.
How Web 3D Survey handles 300M data points / month while running on a budget of $3 CDN / month: ben3d.ca/blog/reporti...
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...
ben3d.ca
Who doesn’t love software rendering? Great post from Ben Houston with some source code included!
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...
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...
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...
ben3d.ca
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...
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, ...
ben3d.ca
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-...
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.
ben3d.ca
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...
Updated web3dsurvey.com, the WebGL, WebGL2 and WebGPU extension and feature tracker with a more informative homepage and added some new browser statistics.
Quick little PR to @ThreeJS to add support for retroreflective materials via the Minimal Retroreflective Microfacet Model. github.com/mrdoob/three...
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...
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...
ben3d.ca
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!”
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...
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.
ben3d.ca
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...
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...
ben3d.ca
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
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
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.
ben3d.ca
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
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.
ben3d.ca
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
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
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.
ben3d.ca
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...
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
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...
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...
Explaner: Why "Land of Assets" Standardizes on glTF for the Master Asset benhouston3d.com/blog/why-lan... #3d #gltf #landofassets
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
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.
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
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...
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.
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.