Concepts

Master Annotator organizes your work into a clear hierarchy. Understanding these concepts will help you structure your annotation projects effectively.

Domain Hierarchy

Everything in Master Annotator follows this structure:

Organization
  └── Project
        ├── Robot Configuration
        ├── Label Schema
        └── Dataset
              └── Frames (rows in your CSV)
                    └── Frame Labels

Each level contains and manages the levels below it. Deleting a project removes all its datasets and labels. Deleting an organization removes all projects within it.

Organizations

An Organization is your top-level workspace. It groups related projects together and is owned by the user who created it.

  • Each user can create multiple organizations
  • Organizations contain one or more projects
  • They provide a logical separation for different research areas, labs, or clients

Projects

A Project lives inside an organization and represents a specific annotation task. It bundles together:

  • Robot Configuration — The robot model and joint/column mappings used for 3D visualization
  • Label Schema — The set of labels (with colors, shortcuts, and export values) used to annotate frames
  • Datasets — One or more uploaded CSV files containing trajectory data
  • Annotation Settings — Default FPS, step size, and auto-save preferences

All datasets within a project share the same robot configuration and label schema, ensuring consistency across recordings.

Datasets

A Dataset is a single uploaded CSV file containing robot trajectory data. Each dataset has:

  • Name — Auto-generated from the filename (deduplicated if duplicates exist)
  • Frames — The total number of rows in the CSV (each row = one timestep)
  • Column names — The headers from your CSV file
  • Status — Tracks upload progress: pending → uploaded → processing → ready (or error if processing fails)
  • Video (optional) — An MP4 file synced with the CSV data
  • Frame labels — The annotation data: a mapping from frame indices to applied label IDs

Frames

A Frame is a single row in your CSV — one timestep in the trajectory. Each frame contains:

  • Joint angle values for each configured joint (in radians)
  • End-effector position (X, Y, Z) if provided
  • Any additional columns (timestamps, forces, gripper state, etc.)
  • Zero or more labels applied during annotation (a frame can have multiple labels simultaneously)

Frames are indexed starting at 0. The labeling interface displays them sequentially and allows navigation via timeline, keyboard arrows, or direct frame number input.

Labels and Schemas

A Label Schema is the collection of labels defined at the project level. Each label in the schema has:

  • Name — Human-readable identifier (e.g., "reach", "grasp")
  • Color — Visual indicator in the timeline and UI
  • Keyboard shortcut — A key binding (1-9, A-Z) for quick toggling
  • Export value — The string written to the exported CSV
  • Order — Display position (drag-and-drop reorderable)

Labels are applied to frames during annotation. A single frame can have multiple labels (multi-label annotation). The complete set of frame → label mappings constitutes the annotation output for a dataset.

Here are example label schemas for common annotation tasks:

Task TypeLabelsUse Case
Pick-and-Placereach, grasp, lift, move, place, releaseSegmenting manipulation primitives for imitation learning
Contact Detectionfree-space, approach, contact, manipulateIdentifying when the robot is in contact with objects
Quality Controlnormal, anomaly, pause, recoveryFlagging abnormal behaviors in production trajectories
Binary Classificationactive, idleSimple activity detection for utilization analysis

Robot Configuration

The Robot Configuration tells Master Annotator how to render your robot in 3D. It includes:

  • Robot type — Generic articulated arm (custom parameters) or a pre-built URDF model
  • Column mapping — Which CSV columns correspond to joint angles and end-effector coordinates
  • Joint parameters — Link lengths, rotation axes, and directions (for generic arms)
  • Graph columns — Which columns to display as line charts in the labeling interface

See the Robot Configuration section for detailed setup instructions.