This was one of the coolest projects I worked on, and also one of the most instructive failures. I co-founded it with a few friends. The idea: take a set of photos of any object or space, hand them to an engine, and get back a 3D model. No special hardware, no controlled environment. Just images.
The engine
The technical approach was photogrammetry — reconstructing geometry by triangulating matched features across multiple images taken from different angles. The pipeline covered feature detection and matching, estimating camera poses, building a sparse and then dense point cloud, and turning that into a renderable mesh. This is well-studied territory algorithmically, but in 2015, making it run in a browser without WebAssembly and with limited WebGL support meant building a lot of it from scratch.
The part I'm most proud of is the rendering layer. Rather than using an existing 3D library — the available options had the wrong abstractions for what we were doing — I built a custom shader engine on top of WebGL. It handled level-of-detail optimization to keep large point clouds renderable in real time. Writing those shaders taught me more about graphics programming than I would have gotten anywhere else.
The scale of the system was one of the more interesting things about it. We could reconstruct small objects — a shoe, a piece of sculpture — but also large landscapes. One of our demo models was Masuleh, an ancient city in northern Iran, reconstructed from aerial photography.
What happened
The business model was the problem. We had two main service ideas: 3D models for 3D printing, and aerial landscape reconstruction for GIS. Both were real use cases. But we struggled to find and close customers. We did some freelance projects on top of our own engine, which kept things going for a while, but it wasn't enough to build on.
Eventually there were the kind of co-founder disagreements about direction and ownership that end a lot of early startups. The company dissolved. Some of the founders took the technology to Canada and built a new company under the same name: To3D.ca, which focuses on GIS mapping.
Building a product and building a company are genuinely different skills. We were better at the first. These are normal startup lessons, and I'm glad I learned them early.