3D models side by side
RealityScan was made by a person; the two marked “AI processed” were made by AI. Move one view and the others follow. Left drag: rotate · wheel: zoom · middle button (or Ctrl+drag): tilt.
Orthophotos and height maps side by side
Pan and zoom move together, and the cursor shows as a red circle on the other maps. Use the layer button at the top right for orthophoto, height map, or height difference from RealityScan. Base map: V-World (Korean government).
Click points and double-click to finish. Length and area use Korean TM (Central Belt) plane coordinates; slope distance uses each DSM.
Accuracy
Each DSM height was checked directly against the surveyed heights at all 11 GCPs. This compares processing results, not the programs themselves.
Key points
- On hard ground all three are within 6 cm of the survey. Road and manhole points P5, P6, P7 and check point P4.
- RealityScan auto reproduced the hand-made RealityScan. The height difference between the two DSMs has a median of 0.0 cm, 79% within ±10 cm.
- Only WebODM missed badly at the empty pool (P3 −54 cm, P2 −43 cm): a featureless blue floor gave almost no points, and the two photos marking P3 viewed it only 1.6 degrees apart.
- At several points RealityScan and RealityScan auto were off by 4 to 6 cm in the same direction (P4, P6, P7, P10, P11). The two differ from each other by 1.1 cm or less. Whether the cause is the processing or the survey values and targets will be checked on the next visit.
Show the 11-GCP table
| Point | Surveyed elevation (m) | RealityScan | WebODM (AI) | RealityScan auto (AI) | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Role | dX | dY | dZ | DSM − survey | Role | Error X | Error Y | Error Z | DSM − survey | Role | dX | dY | dZ | DSM − survey | ||
Units cm. dX·dY·dZ and errors: GCP errors from each program's report. DSM − survey: median DSM height in a 5×5 pixel window at the GCP minus the surveyed height, both as elevation (EGM2008). A person or pole on the target, or an edge, can make the DSM differ from the target height.
Processing
How a person processed it in RealityScan (6 steps, screenshots)
Aligning 133 photos
DJI M300 RTK + Zenmuse P1 (35 mm, 45 MP). 59 nadir and 74 oblique photos, all with RTK Fix positions. Lens distortion model Brown4 + 2 tangential terms, with calibration shared across photos from the same camera.

Different height references put the GCPs 23 m too low
Photo heights are ellipsoidal while the GCP heights are relative to the geoid (EGM08), a 23.25 m difference. As a result the suggested GCP positions landed far from the targets. Converting the GCP heights to the same ellipsoid reference as the photos fixed it (see "Height reference" below).

Marking GCP targets on each photo
With matching heights the suggestions landed near the targets. Each GCP was marked on 2 to 5 photos at the target centre. Disagreement between photos is under 1 pixel.


Re-aligning with GCPs
GCP errors dropped from metres to centimetres. Photos were added for the eastern edge point and the RTK photo position accuracy was set to 3 cm horizontal and 5 cm vertical before re-aligning.

3D model
Depth was computed at half photo resolution to build a 56.5M-triangle model with a 2 cm texture. On the web it is split into 3D Tiles that become more detailed as you get closer.

Orthophoto and DSM
The original photos were stitched (Image mosaic aerial) into a 2 cm orthophoto. The colour patches show which photo was used where. The DSM is the height map over the same extent.



How the AI processed it in WebODM
- Copied the 133 original photos (1.9 GB) from the Windows PC to the arcAI server
- Converted the GCP marks a person made in RealityScan into ODM format (heights on the same ellipsoid as the photos, P4 left out as a check point)
- Ran ODM 3.8.3, 72 min: alignment 13, point cloud 23, mesh 4, texture 27, ortho and DSM 2, 3D Tiles 3
- Made it web-friendly: JPEG textures, distant levels at 1/4 and 1/8 (1.8 GB → 233 MB)
How the AI processed it in RealityScan for Linux
- Inputs: the RealityScan global settings a person tuned on Windows, 133 photos, GCP coordinates and the 29 GCP marks a person placed. Everything else from a new project
- Run headless on the arcAI server (Linux, RTX 5060 Ti) from command files: alignment 4 min, mesh 18, texture 14, ortho 7, 3D Tiles 36
- Alignment GCP error RMSE X 2.8 · Y 1.6 · Z 3.7 cm, the same level as the hand-made result
- DSM: the command line ignores the DSM export settings (12 attempts), so the RealityScan 3D model was converted to heights seen from above. At the 11 GCPs it differs from the hand-exported DSM by −1.1 to +1.3 cm
Equipment · height datums
Equipment and data
| Drone / camera | DJI Matrice 300 RTK / Zenmuse P1 35 mm (8192 × 5460) |
|---|---|
| Flight | 2026-09-12, smart oblique 70/70 overlap, 133 photos (59 nadir · 74 oblique), all RTK Fix |
| Ground control | 11 GNSS-surveyed points (EPSG:5186, EGM08 heights). 10 for alignment, 1 check point (P4) |
| Computers | Windows PC: Ryzen 7 8700G · 64 GB · RTX 3060 Ti 8 GB / arcAI server: i5-10400 · 32 GB · RTX 5060 Ti 16 GB |
| Coordinate system | Korea 2000 / Central Belt 2010 (EPSG:5186) |
| Results | 3D model 56.5 million triangles (3D Tiles on the web), orthophoto and DSM 0.02 m |
Height datums: same ground, different numbers
A height depends on where 0 m is placed. This took the longest in this project.
| Reference | Height of what | Geoid height N at this site | P1 ground height |
|---|---|---|---|
| WGS84 ellipsoid | Height given by the drone RTK | 0 (the reference itself) | 152.12 m |
| EGM2008 (official NGA grid) | This job's GCP survey heights | 23.25 m | 128.87 m |
| Korean national geoid KNGeoid | Official elevations in Korea | about 23.5 m | about 128.6 m |
- RealityScan does not handle geoid heights directly (developer forum answer). So the location-specific EGM2008 geoid height was added to each GCP height to match the ellipsoid reference of the photos.
- Elevations on this page are the output heights minus the location-specific EGM2008 geoid height.
- Even under the same name "EGM08", the value from the Korean national geoid service is about 0.52 m larger than the official NGA grid in this area. The source of the value should always be stated.