
Anaglyphohol is a Chrome extension that converts 2D images and videos into anaglyph 3D – the kind you watch with red-cyan glasses – in real time, right in your browser. No server. No uploads. AI-powered depth estimation running entirely on your GPU, client-side. I’ve built it three times now. This is the story of why. Version 1: Blazor WebAssembly (Manifest V3) I build everything in C#. My entire ecosystem – SpawnDev.BlazorJS, GPU compute libraries, browser API wrappers – is C#/.NET running in the browser via Blazor WebAssembly. So naturally, Anaglyphohol v1 was Blazor WASM. It worked. The AI depth estimation ran, the anaglyph rendering was solid, the code was clean C# that I could maintain and extend. But Chrome extensions aren’t web apps. They inject into other people’s pages. They need to be ready instantly. And Blazor WASM on .NET 8 added 3-4 seconds of startup on every page load – loading the .NET runtime, initializing the WASM module, JIT-compiling – before the extension could do anything. The depth estimation used Transformer.js, which worked best running directly in the page. I tried running it in a worker controlled by the service worker – it worked but introduced other issues. So every page load meant the full Blazor startup penalty before 3D conversion could begin. For a full web application, that startup is acceptable. For a Chrome extension that’s supposed to enhance a page you’re already looking at? 3-4 seconds of delay feels broken. The 152 MB extension size didn’t help…
Want more insights? Join Grow With Caliber - our career elevating newsletter and get our take on the future of work delivered weekly.