A 3D Inspection Toolkit for Interactive Spatial Education.
3DITISE is a Windows Unreal Engine application for exploring camera geometry, photogrammetry, and spatial computer vision in an interactive 3D scene. The Education mode is the recommended first entry point: it lets you inspect calibrated camera poses, cast image pixels into the world, and see the math behind camera-to-world projection update in real time.
- Download all release archive parts for both folders:
3DITISE_v1.10e_zip: download3DITISE_v1.10e.zipand every3DITISE_v1.10e.z01,3DITISE_v1.10e.z02, etc. file.ExampleProjectLommelbrug: downloadExampleProjectLommelbrug.zipand everyExampleProjectLommelbrug.z01,ExampleProjectLommelbrug.z02, etc. file.
- Keep each split ZIP set together in the same folder. Extract the
.zipfile; the.z01,.z02, etc. parts are used automatically by the archive tool. - Run the packaged
3DITISE.exe. - Open the start/runtime menu, choose Load Project, and select
EducationMode.3ditise.jsonfrom the extracted example project. - If a Resolve camera image paths dialog appears because the original image folders are not included, click Continue Offline.
The project should now load into Education mode with the bridge model, calibrated camera visualizations, and teaching overlays.
The project contains a Gaussian Splat for rendering the background. For highest quality, install the Jawset/Postshot Unreal Engine plugin for UE 5.7 from https://www.jawset.com/ and log in to the tool once. If you prefer a free version, you can use my custom 3DGS renderer.
Ctrl + Left Click: select or activate the camera under the crosshair. When a camera is already active and the crosshair is over its sensor plane, this also sets the projection image point.Ctrl + Right Click: move the user view into the selected camera pose. This uses that camera's extrinsics: its world position and orientation.
-
Select a camera with
Ctrl + Left Click. Observe the camera cone, the sensor image plane, the highlighted image point or bounding-box center, and the ray line from the camera into the bridge model. -
Open the Camera Projection Math panel. Compare the image pixel
P = (u, v), normalized camera coordinate, camera rayd_c, world rayd_w, and the 3D mesh intersection point. This is the core camera-to-world path: an image point becomes a ray, then the ray is transformed into world coordinates and intersected with the scene. -
Change the camera parameters. Try editing intrinsics such as
fx,fy,cx,cy, and skew. Then edit physical camera values such as sensor width, sensor height, and focal length. Click Apply and watch the sensor plane, cone, ray, and computed values update. -
Change the extrinsics. Edit
world x,world y,world z,pitch,yaw, androll, then click Apply. This shows how camera position and orientation control the camera-to-world transform. -
Compare Pinhole assumption and Distortion aware. In pinhole mode, the image point is treated as an ideal pinhole-camera point. In distortion-aware mode, 3DITISE uses the radial and tangential distortion terms
k1,k2,k3,k4,t1, andt2, computes an undistorted point, and compares the resulting ray and hit point with the pinhole assumption. -
Enable Camera coordinate frame and Rotation matrix vectors. Use these views to study the selected camera's local
X_c,Y_c, andZ_caxes and how they form the columns of the camera-to-world rotation matrix. -
Use the reveal buttons in the math panel. Step through the calculation blocks to see how the values are produced, including intrinsic normalization, ray construction, world rotation, triangle intersection, and Newton-style undistortion iterations when distortion-aware mode is active.
- Visual camera frustums and cones for multiple calibrated views.
- Sensor-plane image visualization.
- Camera-to-world ray casting from image pixels into the 3D bridge mesh.
- Editable intrinsics, physical camera parameters, lens distortion, and extrinsics.
- Bounding-box and image-point driven lesson setup.
- Ray-line and mesh-hit visualization.
- Rotation-matrix teaching view for camera axis decomposition.
- Pinhole vs distortion-aware comparison, including Newton-style undistortion steps.
World-to-camera and camera-to-world transformations are fundamental to photogrammetry, remote sensing, and computer vision, but the geometry can be difficult to teach because it is often presented as abstract matrix algebra. 3DITISE makes these transformations observable by rendering calibrated photogrammetric scenes in Unreal Engine and exposing reprojection workflows interactively.
As a practical tool, 3DITISE can annotate objects in georeferenced 3D space and project those annotations into original camera images with distortion and occlusion awareness. It can also project raw bounding-box predictions back into 3D space, allowing object-detection results to be evaluated in their spatial context rather than only in image space. The platform therefore supports both education and applied dataset workflows for image-based spatial reasoning.
3DITISE was conceived as an interactive outreach and education platform for geomatics, computer vision, and spatial AI. It is designed to lower the entry barrier to concepts that are often seen as mathematically abstract by letting users interact with a textured bridge model, calibrated cameras, image-space detections, and 3D reprojections directly.
The educational focus is to make geometric concepts visible. Users can inspect and modify intrinsic and extrinsic camera parameters, compare ideal pinhole projection with distortion-aware reprojection, and see how visibility and occlusion affect whether an object is correctly reprojected into image space.
The platform also includes a game mode for younger audiences. In that mode, users fly through the bridge inspection scene and identify concrete damage within a limited time. The final score introduces basic computer vision evaluation ideas such as true positives, false positives, and intersection over union, followed by an automated flythrough of the computer vision model solution.
3DITISE addresses two common limitations in object-detection workflows. First, annotating large image datasets is labor-intensive, especially when the same physical object appears in many overlapping views. Second, model performance is often evaluated only in image space, even though the real target is a physical object in 3D.
By defining damage regions directly in 3D and reprojecting them into relevant images, 3DITISE reduces repeated annotation work and improves spatial consistency. The same framework supports dataset splitting by 3D observation, projection of predictions back into the scene, spatial aggregation, contextual evaluation, and extraction of geometric or semantic attributes such as surface orientation, structural component, and metric damage area.
Although developed for drone-based bridge inspection research, the workflow is transferable to other calibrated-imagery applications such as facade inspection, cultural heritage documentation, industrial asset inspection, and digital twin environments.
The current release is version 1.10e. This repository includes the original Unreal Engine 5.7 source code, the Windows packaged executable as split ZIP archives, and the Lommel bridge example project data.