What is realtime-calib?
realtime-calib is a local, real-time, open-source multi-camera calibration application. It recovers both the intrinsics (focal length, distortion) and the extrinsics (6-DoF position and orientation) of a rig of USB cameras, with live feedback, and exports calibration files ready for Caliscope and the major 3D engines. The whole calibration is accessible via a web app, so you can use it on any device on the same local network as the server the cameras are plugged into — available now on your laptop or tablet, and coming soon to the smartphone in your pocket.
Why it exists
realtime-calib grew out of using Caliscope to calibrate multi-camera USB rigs for computer-vision projects. Caliscope does the calibration math well, but three recurring points of friction got in the way:
- Record-then-calibrate. Each session meant pre-recording every camera in OBS through a dedicated sync plugin — which was unstable, crashed, and sometimes silently lost frame sync, forcing manual video re-editing before calibration could even start.
- No headless path. Some clients ran on headless Linux VMs, so calibrating meant standing up an extra VM with a desktop, passing the cameras through, and driving a GUI — just to run a calibration.
- Export mismatch. The output convention didn't always match the target project's coordinate system, so results needed hand-conversion.
realtime-calib keeps what works about Caliscope — its calibration logic — and removes those three frictions.
What makes it different
- One-pass calibration. No separate video-recording step: capture, detection, quality feedback and computation happen live, in a single flow. What you see is what gets calibrated.
- Runs headless, driven from a browser. The service runs in Docker on the machine the cameras are plugged into — no desktop or GUI required on that host. The operator drives everything from a web app served over the local network — available now on a laptop or tablet (landscape), with phone and portrait support coming soon. This fits headless servers, robotics rigs, motion-capture setups and production lines.
- Multi-format export. One calibration, exported to the convention your target actually uses — Caliscope-native TOML, or engine-ready JSON with the correct axis and handedness for three.js / OpenGL (Y-up, right-handed), Blender / ROS (Z-up, right-handed), Unity (Y-up, left-handed) and Unreal (Z-up, left-handed). The dangerous 3D math (axis remap, left-handed mirror) is done for you.
- Local & private, CPU-only. Everything runs on your own hardware — no cloud, no GPU. Camera streams never leave the local network.
- Caliscope-compatible. The TOML output keeps Caliscope's semantics, so existing Caliscope pipelines keep working.
The workflow
An operator starts the stack (Docker), opens the web app (desktop or tablet in landscape), and follows a wizard:
- Target Config — define the board(s): ChArUco / ArUco.
- Camera Setup — discover and set up the USB cameras.
- Intrinsics — calibrate each camera, one by one.
- Extrinsics — solve the whole capture volume, with a 3D review of the reconstructed rig as its final sub-step.
- Export — Caliscope-compatible TOML and/or engine-ready JSON.
Everything happens in real time: camera streams are published over LiveKit, and detection/quality overlays are burned in server-side and streamed live.
Who is this for?
- Operators & users setting up a multi-camera rig for motion capture, volumetric capture, robotics or photogrammetry.
- Researchers who need reproducible, inspectable calibration and a path to cite the method — see Research.
How it relates to Caliscope
realtime-calib reimplements Caliscope's calibration logic (it is not a
dependency) to make it real-time and single-pass, while staying
output-compatible. Caliscope remains the conceptual reference for board
definitions, calibrateCameraCharucoExtended, PnP/stereo extrinsic
initialization and bundle adjustment. For a side-by-side comparison — workflow,
interface, exports, licensing — see
realtime-calib vs Caliscope.
Head to Installation, then run your first calibration.