Ben Houston's Website
Veteran 3D graphics entrepreneur and software developer sharing insights on 3D web technologies, AI, and software development.
- Posts
- 96 from 6 May 2015 to 30 Oct 2026
- Posting
- weekly (55 in the last year)
- Kind
- personal blog
- Feed
- https://ben3d.ca/api/rss
2026 53
- Don't Fear Your Competitors
- GPU Stratified Annealing: An Experiment in AI-Guided Blue Noise Optimization
- Houston Stratified Noise: Texture-Free Sampling for Screen-Space Effects
- CliDoc Brings TSDoc-Style Documentation to CLIs
- git-dedup: Faster and Smaller Checkouts for Free
- 2.4x Faster Native GPU Testing for Vitest and Jest without a Browser
- Implementing ETag-based Caching Revalidation for TanStack Start
- Introducing WebGPU-Bench: A WebGPU Microbenchmark
- How to Use Three.JS's new Native Gaussian Splats
- Ants in the Machine
- Running LLMs in the Browser with Three.js
- My Development Setup for a Modern SaaS Application
- An M5 Max using Samsung's LPDDR5X-PIM would generate 650 tokens/second on an 8B model
- Processing in Memory: DRAM Is About to Do Math
- Adding Global Sort to Three.js Gaussian Splatting
- Neural Texture Compression in Three.js
- Fine-Grained Shader Validation in Three.js
- Neural network basics, for graphics people
- Adding Native Gaussian Splatting Support to Three.js
- Reporting Web 3D Capabilities on a Budget of $3 a Month
- Rendering Real-Time 3D Before GPUs
- React Native in 2026
- You Might Be a Consulting Company With Good Tools
- Web 3D Survey v2
- Adventures in Fluid Simulation
- Frameworks vs. Toolkits for Multi-Market SaaS
- My Dad, an Apple IIe and a Stack of Nibble Magazines
- Optimizing TanStack Start for Cloud Run
- A Solution to Rampant Token Theft: Proof of Possession
- React Internals
- Introducing vitest-command-line
- React Server Components
- Server-Side Rendering and Hydration
- React Spring: Motion Between Renders
- An Introduction to Tailwind CSS
- One Reconciler, Many Renderers
- An Introduction to CSS
- React Skips: How Rendering Optimization Works
- React Scheduling
- React Fiber Tree: The Virtual DOM
- React Prerequisites
- node-prewarm: CLI for Node 25's Compile Cache
- Transferable Pixel-Perfect Material Graphs for Blender & Three.js
- MaterialX Needs a Single-File Container
- Launching Land of Assets
- Passwordless Login System
- Clean GA4 for TanStack Router
- Zstdify: Pure TypeScript Zstd
- Overview of Behavior Graphs
- Why Land of Assets Standardizes on glTF
- Why I Built Land of Assets
- Stopped Creating package.json Scripts
- Upgrading HVAC Control
2025 31
- Origins of Exocortex
- Vitest Global Setup
- From VFX Tools to Enterprise SaaS
- ExoEngine: Writing a 3D Engine in C# Before Anyone Thought That Was a Good Idea
- My University Co-ops: From Robotic Arms to DARPA Battleboards
- How I Learned 3D Graphics in a Basement in Ottawa
- Three Hard-Won Lessons for Entrepreneurs
- Intent-Driven Testing
- Inline Intent
- From Agents to Intent
- Generic Builder
- The Intent Toolkit
- Glossary of Intent-Based Development
- Sufficient Specifications
- Recursive Intent
- Learning from Simonyi
- Refactors as Specification Shifts
- Spec Coverage > Code Coverage
- TanStack Router Data Loading
- Crafting READMEs for AI
- Home 10G Network Lessons
- The Rise of "Test Theater"
- 3D Web Apps For All Devices
- Minimal Agentic Coder
- Building an Agentic Coder
- Software as Ephemeral
- Automating Agentic Coders
- GitHub Mode for Agentic Coding
- Agentic Mistakes Improve Code
- Agentic Coding Best Practices
- TanStack/Start vs Remix vs Next.js