# Stitching and Calibration

Configure stitched video, output alignment, calibration captures, and dome calibration.

Last validated: 2026-05-05

Use this page when a project combines several camera views, aligns Streamer output before encoding, or calibrates an Oden Dome Player installation.

## Stitched video workflow

Stitched video combines multiple video inputs into one calibrated source. Use it when several cameras must produce one operator view, a dome source, or another composite view before streaming. It can also remove fisheye distortion from a single camera. Use a `Stitched Video` entity when the calibrated rig is created on the Streamer side. On the Player, a received stitched source is selected like another Remote Streamer video source; a plain `2D Video` only displays a flat source and does not run calibration.

1.  Add the camera inputs first and confirm every input preview updates.
    
2.  Add a `Stitched Video` entity.
    
3.  Add the input cameras to the stitched video.
    
4.  Capture calibration images with the calibration target visible.
    
5.  Review captured images and marker detection.
    
6.  Run optimization.
    
7.  Check the stitched output for seams, horizon alignment, and field-of-view coverage.
    
8.  Save the project and re-open it before acceptance testing.
    

Use consistent camera names and stable input IDs. Changing input names after calibration makes later troubleshooting harder.

## Stitching controls

Use the `Stitching` tab to tune how calibrated cameras are rendered together.

Blend Distance

Controls how much of the overlap between cameras is visible. `0.0` gives a hard boundary; `1.0` uses the full overlap.

Blend Curve

Controls how the blended overlap falls off between cameras.

Type

Selects the render surface, such as sphere, quad, GPU auto, or model when available.

Show Stitch Zone

Shows where camera feeds meet so blend settings can be adjusted deliberately.

For sphere rendering, set the sphere radius near the distance to the objects the operator most often needs to judge. For quad rendering, use `Set As Calibrated Floor` after horizon calibration when the quad should match the calculated floor.

GPU auto stitching can be expensive. Tune depth-map size and related quality settings on the target GPU, not on a development workstation. The common GPU auto presets trade depth-map resolution and quality against GPU cost; validate Low, Medium, High, and Ultra on the deployed computer before choosing. Minimum and maximum distance settings constrain the geometry range used by the automatic stitch. Manual geometry regions can override automatic stitching when a local area needs project-specific correction. Layered regions are applied deliberately, and manual overrides take precedence over automatic geometry in the affected area. Use stitch-zone position controls to move blend regions away from operator-critical details where possible. Always validate manual changes at the output resolutions and bandwidth-control resolution scales used in production.

## Calibration capture

Calibration quality depends more on capture discipline than on the optimizer.

-   Use a clean calibration board with known dimensions. Printed markers must be flat, stable, and measured after printing.
    
-   Cover the full field of view that operators will use.
    
-   Capture enough angles to constrain overlap between neighboring cameras.
    
-   Avoid motion blur and overexposure.
    
-   Lock camera focus and exposure before the final capture set when possible.
    
-   Recalibrate when camera position, lens, focus, resolution, or crop changes.
    

If the stitch looks correct in the center but drifts near an edge, verify that the calibration camera or board actually covered that edge.

## Calibration settings and checks

The supplied Voysys calibration board uses the default board settings. If you print or build another board, measure it accurately and update:

Square Length

Physical width of each square on the calibration board.

Cols / Rows

Number of marker columns and rows. If the displayed board appears rotated or flipped, verify that columns and rows were not swapped.

Fill Ratio

How much of each white square is filled by its marker.

Dictionary

Marker dictionary used for detection.

Single-marker settings are used for horizon calibration and calibration checks:

Marker Size

Physical marker size.

Dict Size

Dictionary size.

Marker Bits

Number of bits in each marker dimension.

Marker ID

Marker identifier inside the dictionary.

Use `Check Calibration Using Marker` after calibration. A marker visible to two or more cameras lets Oden compute marker position, residual error, and which cameras saw the marker. Large residuals or one bad captured image set usually mean that capture should be deleted and retaken.

Captured image sets can be inspected, deleted, imported, and exported. Use timed capture when one operator needs to collect several captures over a period of time:

Count

Number of captures.

Interval

Time between captures.

Start Timed Capture

Starts the timed sequence.

Stored camera calibrations are `.camera` files. Add reusable presets through the application `Camera Calibration` path described in [Projects and Scenes](projects-and-scenes.md).

## Output alignment

Use output alignment when the Streamer output should be composed or cropped before encoding. Common cases include selecting a subset of a stitched source, arranging several camera sources, or preparing a stream for a fixed Player layout.

1.  Add or select the Streamer-side output alignment entity.
    
2.  Add the video source or sources that should feed the encoded output.
    
3.  Set each source position, size, and crop.
    
4.  Start Streamer output and verify the encoded result on the Player.
    
5.  Save the Streamer project.
    

If a source appears in the local Streamer preview but not on the Player, check both output alignment and [Bitrate Control and Auto Video Packing](stream-settings.md).

## Horizon calibration

Horizon calibration rotates stitched video to match the real world when the camera rig is tilted. Use the single ArUco marker on the back side of the calibration board, or print a marker on a flat stable surface.

1.  Capture at least three marker observations. More captures usually produce a better result.
    
2.  Press `Calibrate` when the button becomes available.
    
3.  Fine-tune the manual horizon angles if the resulting center is not where the operator needs it.
    
4.  Press `Bake Angle` after validation to bake the horizon angles into the camera rig settings.
    

Use `Show Marker` to inspect detected marker positions. The detected marker rotation is not used by the horizon algorithm, so position quality matters more than visual rotation accuracy.

## Dome calibration prerequisites

Dome calibration is an advanced workflow. Allocate time for the first calibration and validate each stage before moving on.

Required equipment:

-   A Windows PC with an NVIDIA GPU; GTX 1080 or newer is strongly recommended.
    
-   Projectors connected to the PC.
    
-   A calibration camera with 4K or greater resolution when possible.
    
-   A high-quality fisheye lens. The dome can only be calibrated over the camera/lens field of view.
    
-   A capture card when the calibration camera is HDMI or SDI.
    
-   A calibration board for calibrating the calibration camera.
    

## Dome system setup

1.  Connect and power on all projectors.
    
2.  In Windows Display Settings, set multiple monitors to extend the desktop.
    
3.  Configure NVIDIA Surround when the projector layout needs one large display surface.
    
4.  Install Oden Dome Player.
    
5.  Confirm the calibration camera can be received by Oden Dome Player.
    
6.  Set camera focus before starting the final calibration capture.
    

## Dome calibration procedure

1.  Open Oden Dome Player.
    
2.  Set **Application Settings**  **Window Mode** to `Fullscreen`.
    
3.  Restart Oden Dome Player so it enters fullscreen mode.
    
4.  Save the project as `dome_calibration.vproj` or another clear commissioning name.
    
5.  Position the calibration camera at the intended observer head position.
    
6.  Connect the calibration camera.
    
7.  Add a `Stitched Video` entity.
    
8.  Calibrate the calibration camera.
    
9.  Save the project.
    
10.  Set **Application Settings**  **Rendering Mode** to `Dome`.
     
11.  Set **Dome Renderer**  **Calibration**  **Source** to the calibration camera.
     
12.  Start calibration and wait for the projected calibration pattern to finish.
     
13.  Close and reopen the project.
     
14.  Add a calibration sphere entity and verify that the sphere pattern looks non-distorted.
     
15.  Use **Application Settings**  **Dome Renderer** to adjust angles. Use Ctrl+Q first so the view is centered.
     
16.  Add edge blend zones for every overlapping projector pair.
     
17.  Adjust dome border cutoff so projectors do not draw outside the projection surface.
     
18.  Save the production project.
     

For lowest display latency during dome operation, use fullscreen mode and check [low-latency display settings](stream-settings.md#low-latency-display-settings).

## Troubleshooting

Calibration does not cover the whole dome

Check whether the calibration camera and lens can see the whole area. Anything outside the camera field of view cannot be calibrated by that capture.

Projectors show the Windows desktop incorrectly

Fix Windows display arrangement and NVIDIA Surround before calibrating in Oden.

Stitched source updates but encoded output is wrong

Check output alignment, selected source, Streamer output resolution, and Player received stream.

Edges look good but center is distorted

Review camera calibration and captured board positions. Re-capture with sharper images and wider coverage.

For camera setup, see [Camera Inputs](camera-inputs.md). For production display settings, see [Deployment](../operate/deployment.md).
