Photo Inspection
How Nira aligns photos and laser-scanner panoramas to your 3D model so you can inspect from any captured viewpoint — written for both the person uploading the data and the person navigating it.
Written By Nira.app
Last updated 10 days ago
Prerequisites
An asset with a 3D model (mesh, point cloud, or both) already uploaded — see Web Uploader Guide.
Calibrated photos with camera alignment data, or a laser-scanner E57 with embedded panoramas, or equirectangular panorama images paired with a pose file.
Plan tier: Photo Inspection is available on Individual, Professional, and Enterprise plans. Photo download requires Professional, Enterprise, or Trial.
How camera poses sync to your 3D model
A camera pose is a record of where a camera was, and which way it was pointed, at the moment a photo was captured. Each pose is a position in 3D space (X, Y, Z) plus an orientation (rotation around three axes). When Nira knows the pose for every photo, it can place each photo at its real location inside your 3D scene — so a click on a photo can fly the 3D camera to the same spot, and a click on a point in the 3D model can find every photo that "saw" that point.

Without pose data, photos still upload — they just appear as a flat thumbnail strip with no spatial relationship to the model. With pose data, the photo becomes a navigable viewpoint.
Nira accepts pose data from three input paths:
Photogrammetry photos + camera alignment file — The camera alignment file is exported from the same photogrammetry software that produced the model.
Laser-scanner E57 with embedded panoramas — The E57 file already bundles the equirectangular images and their poses. No separate pose file needed.
Standalone equirectangular panoramas + pose file — For workflows where panoramas were created by 360 cameras stitching multiple images or were exported from the scanner separately from the point cloud.
The rest of this article is split into two sections: what to upload (for data preparers) and how to use the result (for viewers).
For data preparers: getting poses into Nira
Path 1 — Photogrammetry photos + camera alignment
When you process photos through photogrammetry software, the software computes a pose for every successfully aligned photo. Most photogrammetry tools can export those poses as a separate file alongside the model.
What to upload together (all in the same upload, in one go):
Your 3D model (OBJ, FBX, glTF, PLY mesh, etc.)
The original photos (JPG, PNG, TIFF)
The camera alignment file from your photogrammetry software
Camera alignment file formats Nira accepts:
CSV (RealityScan)
XML (Metashape, iTwin, DJI Terra)
TXT (3DF Zephyr)
💡 Tip: Photo filenames in the upload must match the filenames referenced in the camera alignment file exactly. If your photogrammetry software renamed photos during processing, export the renamed copies — not the originals from your camera.
For software-specific export steps, see the export guide for your tool: DJI Terra, RealityScan, Metashape, iTwin, 3DF Zephyr.
Path 2 — Laser-scanner E57 with embedded panoramas
E57 is a container format. A single E57 file can hold a point cloud and the panoramic imagery captured at each scanner setup, with poses already linked to the point cloud's coordinate system. Nira reads all of that on import.

What to upload:
The E57 file (one or more)
Optionally, a 3D mesh of the same scene if you want to inspect against a mesh as well
That's the entire workflow. No separate pose file is required. Nira detects embedded panoramas during processing and surfaces them automatically as bubble view markers in the 3D scene.
Supported E57 panorama projections:
Spherical (equirectangular)
Cubemap / Pinhole
⚠️ Warning: Whether bubble view actually appears depends on how the E57 was exported from your scanner software. Some default export presets in Faro Scene, Cyclone REGISTER 360, and Leica software omit the panoramic imagery to save file size. If you upload an E57 and don't see bubble view markers, check your export settings — see the Faro Scene export guide and Cyclone REGISTER 360 export guide.
Path 3 — Standalone equirectangular panoramas + pose CSV
This path is for cases where panoramas live outside the scanner's E57 — for example, panoramas stitched from a 360 camera, or scanner panoramas that were exported separately from the point cloud.
What to upload:
Your 3D model or point cloud
The equirectangular panorama images (JPG or PNG, 2:1 aspect ratio)
A pose CSV that links each panorama filename to its position and orientation in the model's coordinate system
[ACTION NEEDED]: Document the exact pose CSV schema Nira expects for standalone panoramas — required columns, units, rotation convention (Euler vs quaternion, order of rotations, axis convention). Once finalized, replace this section with the spec and a downloadable template. Until then, customers using this path should contact Nira support for the current format.
For viewers: inspecting with synchronized photos and panoramas
Opening the photo strip
Once an asset has photos with pose data, the View Photos button appears in the toolbar. Click it to open the photo thumbnail strip along the bottom of the viewer.

Sync Camera (perspective photos)
When you click a photo in the thumbnail strip, the photo opens in a larger viewer. To align the 3D camera to the photo's pose:
Enable Split View at the top of the photo viewer to open a side by side view of the photo and model.
Click Sync 3D View near the bottom of the photo panel. 3D view rotates and translates so that you're looking at the model from exactly the same position and angle as the photographer.

To make this happen automatically every time you switch photos, toggle on Autosync 3D View. With Autosync 3D View enabled, scrubbing through the thumbnail strip becomes a guided tour through the capture session.

Bubble view (laser-scanner panoramas)
Bubble view is the panorama-viewing mode used for laser-scanner setups. It works differently from the perspective-photo flow above.
When an asset contains panoramic imagery, each scanner position appears as a clickable marker in the 3D scene (typically rendered at the scanner's tripod location).
Click a scanner-position marker.
The viewer enters bubble view at that pose. You can look around in 360°, but you stay anchored at the scanner's position.
Switch between bubble view and the regular 3D fly-through using the bubble-view toggle in the viewer toolbar.

ℹ️ Note: Bubble view does not use the Sync Camera button. Entering bubble view is itself the sync action — clicking a scanner marker places you at that pose. There is no "sync" / "unsync" toggle; you exit bubble view by ESC on your keyboard or selecting a new marker.
Adding callouts to photos and generating Inspection Reports
Photos and bubble views both support callouts for inspection workflows:
Open a photo or bubble view.
Click Add Callout, then drag a rectangle around the area of interest.
Set the callout type (Defect, Measurement, or Annotation).
Repeat across as many photos as needed.
To generate a PDF Inspection Report from the callouts:
Enter Edit Mode.
Open the hamburger menu and click Generate Report.
When generation finishes, click Download Report.
Only callouts of type Defect or Measurement appear in the PDF. Annotation callouts are excluded by design. See PDF Reports for full report customization options.
Troubleshooting
Problem: Photos uploaded but Sync Camera button doesn't appear.
Cause: Nira didn't receive pose data, or filenames in the alignment file don't match the uploaded photos. Fix: Check that you uploaded the camera alignment file (CSV / TXT / XML) in the same upload as the photos and the model. Open the alignment file in a text editor and confirm the photo filenames match exactly — including extension and case. Re-upload as a new asset version if needed.
Problem: Sync Camera button is there, but the 3D view doesn't match the photo when clicked.
Cause: Coordinate-system mismatch between the camera alignment file and the model. Most often happens when the model was re-exported in a different coordinate system after the alignment file was generated. Fix: Re-export the model and the camera alignment file from the same project state in your photogrammetry software, with the same coordinate system selected. Re-upload both.
Problem: Uploaded an E57 but no bubble-view markers appear.
Cause: The E57 doesn't contain embedded panoramic imagery — it was exported as point cloud only. Fix: Re-export the E57 from your scanner software with panoramic imagery included. Faro Scene, Cyclone REGISTER 360, and Leica software all have this as a non-default option in the E57 export dialog.
Problem: Bubble view loads but the panorama is misaligned with the point cloud.
Cause: Scanner setup-to-cloud registration was not refined before export, or the E57 was exported from a project state that pre-dated registration. Fix: Refine registration in the scanner software, then re-export the E57.
Problem: Photos appear blurry or low-resolution in the photo viewer.
Cause: Nira streams photos at viewport-appropriate resolution to keep the viewer responsive. Fix: Zoom in within the photo viewer to load higher-resolution detail. For full-resolution access, enable Allow Photo Download (Share... menu) on Professional/Enterprise plans — see Downloading Source Files.
Problem: Standalone panorama + pose CSV upload — panoramas appear at wrong positions, or all stacked at origin.
Cause: Pose CSV column order, units, or rotation convention does not match what Nira expects. Fix: This is the [ACTION NEEDED] item above — the standalone-panorama CSV format is not yet finalized. Contact Nira support for the current format spec, or use Path 1 / Path 2 if applicable.
Technical Notes
What is not supported:
Photos without camera alignment data (they upload, but no Sync Camera or photo-based callouts).
Photogrammetry camera alignment files for software outside the supported list (Nira accepts RealityCapture/RealityScan CSV, Metashape/iTwin/DJI Terra TXT/XML, and ABC/FBX). Other proprietary formats need conversion first.
Bubble view from PLY-as-point-cloud files. Convert to E57 or LAS/LAZ.
Mixed-coordinate-system uploads. Photos, model, and alignment file must all share one coordinate system.
Re-uploading additional photos to an existing point-cloud asset (point clouds cannot be appended). Photos can be added to existing mesh assets.
Plan availability:
Photo Inspection workflow (Sync Camera, callouts, reports): all current plans (Individual, Professional, Enterprise) and Trial. Not on legacy Core/Business plans.
Photo download for callouts: Professional, Enterprise, Trial only.
E57 panoramic bubble view: all plans that support point clouds — i.e., Individual, Professional, Enterprise (not legacy).
Coordinate-system reminder: If your photogrammetry or scanner workflow involves georeferenced data, the same coordinate system rules apply across all input paths. See Georeference & Map View and Working with Georeferenced Data for EPSG and CRS guidance.
Performance: Photo and panorama count does not affect viewport frame rate — Nira streams imagery on demand. Asset processing time, however, scales with photo count and panorama count, so very large captures (1,000+ photos or 200+ scanner setups) take longer to ingest. See Diagnosing Performance Issues.
Related Articles
Supported Data & File Types — full format reference, including camera alignment file formats
Point Clouds (E57, LAS/LAZ) — E57 specifics, point-cloud limitations
Web Uploader Guide — how to upload model + photos + alignment together
PDF Reports — generating inspection reports from photo callouts
Callouts (2D Photo + 3D) — callout creation and behavior across photo and 3D contexts
Export guides for camera alignment files: RealityScan, Metashape, DJI Terra, iTwin, Faro Scene, Cyclone REGISTER 360