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.