Skip to main content
Scenes are built from timestamped streams. Most teams should register Scenes with the Scene SDK workflow and SceneBuilder reference, then use this page when they need to understand how streams, calibration, and raw payloads fit together.

Sensor Streams and Events

A Scene is built from streams. Point cloud streams, image streams, camera-parameter streams, and frame-of-reference streams each contain timestamped events. For frame-indexed data, use sequential integer timestamps. For asynchronous sensors, use the original sensor timestamps so Encord can align the latest available event from each stream at the selected time.

Frame of Reference Hierarchies

Frames of reference describe how the world, ego vehicle, robot, and sensors relate to each other. A typical hierarchy is:
  • A root or world frame.
  • An ego frame for the moving platform.
  • Sensor streams linked to ego, with static sensor mount poses when the sensor is fixed on the platform.
Use dynamic FoR events when the platform moves over time. Use a static pose= on a sensor stream for calibration offsets that do not change.

Camera Calibration

Camera projection needs both:
  • Intrinsics: focal length, principal point, and optional distortion model.
  • Extrinsics: the camera pose relative to the Scene frame hierarchy.
Image streams reference camera-parameter streams. If you use add_image_stream with inline camera parameters, the SDK creates the camera stream for you.

Storage Architecture

Composite Scenes reference external point cloud and image files by URI. Container-style data, such as MCAP or ROS bag exports, can contain multiple sensor streams in one file, but the same concepts still apply: streams, events, timestamps, calibration, and frames of reference.

Camera Distortion Models

The SDK source of truth for supported camera distortion models is encord.beta.scene.intrinsics. The generated table below is produced from that SDK support list.
SDK APIModel typeDistortion coefficientsUse when
intrinsics_pinhole(...)pinholeNoneUse for calibrated pinhole cameras with no distortion.
intrinsics_radial(...)radialk1, k2, k3Use when calibration only supplies radial coefficients.
intrinsics_plumb_bob(...)plumb_bobk1, k2, k3, t1, t2Use for Brown-Conrady calibration with radial and tangential coefficients.
intrinsics_fisheye(...)fisheyek1, k2, k3, k4Use for fisheye lenses calibrated with four coefficients.
intrinsics_rational_polynomial(...)rational_polynomialk1, k2, k3, k4, k5, k6, t1, t2Use for OpenCV rational-polynomial calibration.
intrinsics_simple(..., model="division")divisionkUse for one-parameter division-model calibration.
intrinsics_simple(..., model="ucm")ucmxi, k1, k2, k3Use for unified camera model calibration.
intrinsics_cylindrical(...)cylindricalNoneUse for cylindrical camera projections.

Encord Format Specification

This payload registers one Scene with one point cloud stream.
Basic
{
  "scenes": [
    {
      "title": "single-pcd-basic",
      "scene": {
        "lidar": {
          "type": "point_cloud",
          "events": [
            { "uri": "s3://my-bucket/scenes/scene-001/lidar/000000.pcd" }
          ]
        }
      }
    }
  ]
}