
The New York Times has been using 3D scenes to extend their storytelling — a pannable, explorable 3D scene communicates more than a static image can. They capture these using photogrammetry: taking many photos of an object or space and reconstructing a 3D model with textures from them. Photogrammetry works well and doesn’t require a specialized capture team — their existing photography team can shoot it.

The problem is what comes out the other end. Photogrammetry produces extremely high-resolution geometry with poor topology — not usable in a real-time engine without cleanup. The Times needed an automated system to convert raw scans into a format and scale Unreal Engine could use directly.
Converting a single scan isn’t new — retopology can be done by hand, or polygon-reduction software can get partway there, usually leaving messy UVs behind. The challenge was building something that could run unattended across an entire folder of scans, reliably, without a person tuning each one individually.
01 · Transform — scale to Houdini units and orient to sit correctly on the floor
02 · Match size — apply a pre-determined scale across all scans for batch consistency
03 · Smooth — reduce high-frequency scan noise before reduction
04 · Clean — remove floating, disconnected noise geometry
05 · Normal — recalculate face normals
06 · Polyreduce — quality-tolerance threshold keeps every scan at a consistent final polycount, no per-scan tuning
07 · Attribute delete — strip the original messy multi-UDIM UVs
08 · Auto UV — generate clean UVs automatically, no manual seam-cutting
09 · UV layout — pack UV islands tightly for max texture resolution
10 · Maps baker — project textures from high-res to low-res mesh
11 · Export — convert to Unreal’s scale and export FBX, ready to import
01 · File pattern — point at a folder, pick up every matching FBX as a work item
02 · Filter by range — test against a subset before running the full batch
03 · Attribute create — tag every export with date/iteration so reprocessing is automatic, not manually tracked
04 · ROP fetch — batch the export step across all work items via variables, not hardcoded per scan
Zero
Failed conversions across an entire scanned scene — a full New York bookshop captured and converted as one project
<1 min
Per-scan active work once a pipeline is dialed in for a given scan type
Automated
Point it at a folder, run it, get game-engine-ready assets back
With minor tweaks, the same pipeline can batch-convert any folder of high-resolution meshes down to game-engine-ready assets, independent of the photogrammetry use case. The floor-alignment, scale-normalization, and up-axis correction steps are reusable on their own for any batch geometry cleanup task. The same underlying problem — high-fidelity scan data that needs to become lightweight and real-time-ready — shows up in heritage and museum digitization, AR/VR content pipelines, simulation environments for robotics training, and USD asset creation.
Challenges and future direction
Topology quality
Quad-remeshers now exist and could likely produce cleaner topology and better edge flow than the current polyreduce approach — worth revisiting.
Software limitation
Material maps needed manual renaming on import into Unreal Engine. I raised this directly with SideFX (Houdini’s developer) and confirmed it’s a genuine software limitation, not something fixable from my end.
Next direction
Applying the same batch-automation thinking to Gaussian splats, which are becoming a faster, increasingly common alternative to traditional photogrammetry meshes.