00 / Experiment
One photograph in, a 3D model out.
We wanted to know what image-to-3D can actually do, so we ran an open model on a GPU box of ours and pointed it at things we could photograph. This page is the result: three meshes in the browser, the pipeline that produced one of them, and the part that did not work.
None of this is a product. It is the sort of thing we do to find out where a technology is genuinely useful before we put it anywhere near a client's system, which is the same habit described on our main page.
Drag inside the panel to orbit, and pick a tab for another model. The clock tower has its pipeline stills above it. The panel captures touch, so on a phone scroll the page using the margins either side of it.
01 / Models
What is on the page.
Each scan left the model as a 33 to 40 MB glTF file, which is not something you serve to a visitor. Decimating the mesh and re-exporting it Draco-compressed is what makes it web-sized.
Suzanne
Blender's mascot mesh, subdivided twice. Not a scan: it is here as the control, a model we know is correct on all sides. Web size 348 KB
Tiara
Reconstructed from a single AI-generated image, so nothing about it was ever a real object. It holds together because the input was clean and evenly lit. Web size 2.5 MB
Clock tower
One hand-held photograph of the Darlington town clock. Four corner pinnacles, both visible clock faces and the arcading survived. The back is invented, because there was only ever one view of it. Web size 2.2 MB
The mesh arrives as confetti.
Output from the model is tens of thousands of disconnected fragments, with a handful of stray specks sitting far from the object. Those specks inflate the bounding box several times over, which wrecks any camera framing built from it. Keeping the largest connected piece does not help, because there is no largest piece. Stripping outliers by percentile is what works.
02 / Findings
What worked, and what did not.
The short version: one good photograph beats several mediocre ones, and beats them badly. Almost everything else follows from that.
One clean shot is enough
Object filling the frame, plain background, shot from far enough back that perspective is mild. That produced every usable model here.
Camera height matters more than resolution
At the object's own height, not looking down on it. A steep angle from above was the single worst thing we did to a subject.
Contrast beats megapixels
A white dish on white tiles came back as a bowl even from a clean single view. Dark glossy granite was no better. A mid-tone, uncluttered surface fixes it.
Multi-view made it worse
Feeding four views of one object produced a smeared blob where a single photo of the same object gave a crisp shell. The technique blends the views with no notion of where the camera was, so anything that disagrees averages into mush rather than triangulating.
It is the wrong tool for all-round accuracy
If the geometry has to be correct on every side, this family of models is not the answer. Photogrammetry or a pose-aware reconstruction model is.
Licensing is a real constraint
The obvious alternative for multi-view work is unusable here: its licence excludes the EU, UK and South Korea by name, and bars use of the model's output in those territories too. We used an MIT-licensed model instead.
03 / Credits
Whose work this is.
Everything here is open source, run on hardware of ours. Nothing on this page was sent to a third-party service, and the page itself loads nothing from anyone else's server.
TRELLIS.2, Microsoft
Image to 3D. MIT licensed, run locally on an NVIDIA DGX Spark, one photograph per model.
RMBG-2.0, BRIA AI
Background removal. Cuts the subject out before reconstruction, which is step two on the clock tower tab.
Blender
Suzanne is Blender's mascot mesh. Blender also did the decimation and the glTF export for every model on this page.
three.js
WebGL renderer, orbit controls, glTF loading and the room environment lighting. MIT licensed, served from this site rather than a CDN.
Draco, Google
Mesh compression, and the reason a 40 MB scan is a 2 MB download. Apache 2.0 licensed.
Photographs
Darlington town clock, 2025-06-28. Ours.