camera calibration and image stabilization

Camera calibration

Calibrate a camera rig once and reuse that calibration for image stabilization on later captures.

Camera calibration vs image stabilization

  • Camera calibration computes the position and orientation of each camera from a captured dataset. It establishes how the cameras are arranged around the subject and creates a calibration recipe that later captures can reuse. The dataset holding this data is the source dataset.
  • Image stabilization applies that calibration to crop and warp the captured images so the subject stays centered and stable across the cameras. Calibration describes the rig; stabilization adjusts the images.

Calibrate your first dataset

  • Frame the subject in the center so each camera sees the same central point.
  • Use even, stable lighting and avoid flicker, harsh shadows, or blown highlights.
  • Keep the subject still so every camera captures the same moment in time.
  • Prefer textured clothing or surfaces so the alignment engine can match the same 3D environment more reliably.

After taking the shot, click Calibrate in Quickview, or find the dataset in Library, open Calibrate and stabilize, and run Calibrate rig.

In the Cameras calibration dialog, create a calibration recipe from the source dataset, then reuse it to stabilize new datasets. After successful calibration contains two independent options:

  • Set as current calibration recipe when successful selects the new calibration as the project default. New datasets can reuse this recipe for stabilization.
  • Turn on stabilization automation appears below the recipe checkbox with the explanation "This will automatically stabilize all new datasets." It is checked by default and is available for Arc, 360, and Linear camera layouts. Failed or incomplete calibration does not turn automation on.

Leaving the automation option unchecked does not turn off automation that is already enabled. Manage existing automation from the Process dashboard.

Camera layout choices appear in this order throughout Camera Server: Arc, 360, Linear, 3D, N/A. Arc is the default; choosing another layout keeps that selection.

The general Advanced options section is temporarily hidden for all calibration methods. Existing auto-realignment and skipped-camera settings are preserved.

Choose a calibration engine

Starter and Basic license tiers support Xangle Cloud only. Local calibration engines require a Camera Server license tier that includes local calibration, as well as any license required by the engine provider.

  • Xangle Cloud calculates a 3D rig calibration on Xangle-hosted servers with no local install. Use this when you want managed processing and fast setup.
  • Spirula is a fast, open-source, and efficient local calibration engine, but may fail with complex camera setups or poorly positioned cameras.
  • RealityScan is a desktop rig calibration workflow via RealityScan (Epic Games, Windows only). Use this when you want a local 3D workflow and reusable calibration files for later processing.
  • 3dflow / FlowEngine is a local calibration engine suited to small and complex camera setups. It requires a license from 3Dflow and a configured FlowEngine helper.

Engine comparison

On clean, properly lit datasets, calibration engines can produce stable results. For the best result, follow the capture guidelines above.

  • Xangle Cloud: Efficiency 7/10. No extra app to install. It works well in most cases when the subject is properly lit and framed as described above.
  • Spirula: Efficiency 7/10. Fast, open-source, and efficient, but it may fail with complex camera setups or poorly positioned cameras.
  • RealityScan: Efficiency 9/10. Excellent quality in most setups, but it requires a RealityScan license from Epic Games and runs on Windows only.
  • FlowEngine: Efficiency 9/10. Efficient and effective for small and complex camera setups. Requires a license from 3Dflow.

Set up your engine

Xangle Cloud

  • The calibration dialog shows the credits required for the selected dataset beside the method dropdown as plain text, without a background or border. The per-image price stays in the description below; the available credits balance is not shown.

  • The local Spirula Advanced settings are not shown for Xangle Cloud calibration.

  • Xangle Cloud calibration runs on Xangle workers, so no extra software installation is required.

  • Images are uploaded only for the active job and are deleted after results are downloaded.

  • Cloud calibration uses Cloud Credits per submitted image. See current rates.

  • Credits are consumed only when the cloud calibration job completes successfully.

Spirula

  • Download and install Spirula. Camera Server can auto-detect it in the standard install location, or you can set the executable path in the Cameras calibration dialog in Library > Calibrate and stabilize.
  • Spirula is free to use. It may fail with complex camera setups or poorly positioned cameras.

RealityScan

Epic's official install flow is:

  1. RealityScan runs on Windows only. Download and install the Epic Games Launcher from the official RealityScan download page.
  2. Open the launcher, create or sign in to your Epic Games account, then open the RealityScan tab under the Unreal Engine section.
  3. Install the latest RealityScan build. In Camera Server, you can usually leave the RealityScan path empty so it auto-detects the install under C:\Program Files\Epic Games.
  4. If RealityScan was installed somewhere else, paste the executable path manually in the Cameras calibration dialog in Library > Calibrate and stabilize.
  5. Run Calibrate rig on one dataset in Library > Calibrate and stabilize to confirm Camera Server can launch RealityScan headlessly.

Cost and licensing

  • Epic currently lists RealityScan as free for students, educators, educational institutions, and individuals or companies under $1 million USD in annual gross revenue.
  • Above the $1 million USD revenue threshold, Epic sells yearly RealityScan seats. The public license page currently lists CA$1,697 per seat per year and also advertises a 30-day trial.
  • Check the official RealityScan licensing page before budgeting or purchasing seats, because public pricing and terms can change.

Learning and support

  • Epic Developer Community provides RealityScan documentation, tutorials, sample datasets, and community forums when you need to learn the tool or troubleshoot the install.

FlowEngine

  • Obtain the required license from 3Dflow.
  • In the Cameras calibration dialog in Library > Calibrate and stabilize, select 3dflow / FlowEngine and check that the FlowEngine helper is available.
  • If the helper is not detected, configure its executable in FlowEngine helper path.
  • Run Calibrate rig on a dataset in Library > Calibrate and stabilize, then review the result in the 3D viewer.

Review and choose a calibration recipe

Open the dataset in Library > Calibrate and stabilize. Review the calibration through the 3D model in the sparse point cloud viewer: check that the camera positions and reconstructed subject match the physical rig.

When the result looks correct, choose Use as calibration recipe from the dataset menu in Library or open Calibration and select the source on the Calibration recipes page. This selects the source dataset as the Current calibration recipe for the project.

A dataset marked Calibration recipe available contains usable calibration but is not necessarily the current source. The Process dashboard's Recipes section shows the calibration selection. If calibration exists but none is selected, use Choose calibration recipe. If none exists, capture and calibrate a multi-camera dataset first.

Quickview labels its selected calibration overlay Current calibration recipe. Clearing the current selection leaves the source dataset and its calibration data intact.

Reuse calibration for image stabilization

Future datasets on the same untouched rig can reuse the current calibration recipe automatically. You do not need to run a new camera calibration for every capture; image stabilization uses the existing calibration to adjust the new images.

An assigned calibration recipe on a target dataset is distinct from the current project default. Review Calibration recipe assignments when a dataset needs a different source. Calibration selection is independent of the Chromakey, Color grade, Mosaic, Contact sheet, and Video sequencer recipe selections. Splat uses calibration through its existing calibration choices, not through a separate Splat recipe.

Recalibration: when camera positions change

A typical reason to recalibrate is that someone bumped into a camera.

  • If any camera is bumped, re-aimed, re-focused, or moved during the event, capture a fresh calibration shot, calculate its calibration, and use it as the new current calibration recipe before continuing.
  • If the rig changes between captures, calibrate each affected dataset instead of relying on one long-lived calibration recipe. The legacy auto re-align control is currently hidden under the disabled Advanced options section.