Annotation Workflow¶
This page covers the core annotation workflow in LUC3D: creating instances, editing keypoints, and managing annotations across camera views.
Instance Types¶
LUC3D has three types of instances:
| Type | Description | Visual Style |
|---|---|---|
| User Instance | Manually created or edited by the annotator | Solid lines, fully editable |
| Predicted Instance | Auto-generated by a tracker or imported from SLEAP | Dashed lines, read-only until converted |
| Reprojected Instance | Projected from 3D triangulation back to 2D | Dotted lines, read-only |
Creating Instances¶
Add a New Instance¶
- Navigate to the frame you want to annotate
- Press N or click Edit → Add Instance in the toolbar
- A new skeleton appears in the active camera view, positioned at the view center
- Drag individual keypoints to their correct positions
Converting Predicted Instances¶
If you have loaded SLEAP predictions or run the tracker:
- Double-click a predicted instance to convert it to a user instance
- It becomes fully editable — adjust any keypoints as needed
Editing Keypoints¶
Moving Keypoints¶
- Click and drag a keypoint node to reposition it
- The node snaps to the cursor and follows your mouse
Moving an Entire Instance¶
- Hold Alt and drag any node to move all keypoints together
- Relative positions are preserved — useful for repositioning a roughly correct skeleton
Toggling Visibility/Occlusion¶
- Right-click a node to cycle through visibility states:
- Visible (solid) — keypoint is clearly visible in this view
- Occluded (hollow) — keypoint exists but is hidden behind something
- Not visible (hidden) — keypoint is not present in this view
Deleting Instances¶
- Select an instance and press Del or Backspace to delete it from the current camera
- Press Shift+Del to delete the instance from all camera views
Selecting Instances¶
- Click on any keypoint or edge to select that instance
- Press Tab to cycle through instances in the current frame
- Press Esc to clear the selection
- The selected instance is highlighted in the Instances panel
Working Across Views¶
When annotating multi-view data, you annotate each camera view independently, then group the instances that correspond to the same individual.
Typical Per-Frame Workflow¶
- Annotate the subject in Camera 1 (e.g., back view)
- Switch to Camera 2 (click the view or press V)
- Annotate the same subject in Camera 2
- Repeat for all camera views
- Group the instances across views
- Triangulate to verify with 3D
Tip
You don't need to annotate every keypoint in every view. If a keypoint is not visible in a particular camera angle, right-click it to mark it as occluded or leave it unpositioned.
View Controls¶
Zooming¶
- Scroll wheel on a camera view to zoom in/out
- Press + / - to zoom all views simultaneously
- Press 0 to reset zoom to fit
Panning¶
- Drag on empty space (not on a keypoint) to pan when zoomed in
- Double-click empty space to reset the view
View Layout¶
- Press V to cycle through single-camera views
- Press G to return to the grid layout (all cameras visible)
Info Panel¶
Press I to toggle the info panel, which shows:
- Instances tab — List of all instances in the current frame, grouped and ungrouped, with reprojection errors
- Visibility tab — Rendering controls (node size, edge weight, transparency, label visibility)
- Videos tab — Loaded video details (frame count, resolution, labeled frames)
- Cameras tab — Calibration info (name, resolution, focal length)
- Skeleton tab — Full skeleton editor: add, rename, and remove nodes and edges inline. A project uses one skeleton shared across all sessions, so an edit (or loading a new skeleton) applies everywhere — LUC3D warns before overwriting a non-empty skeleton.
- Session tab — Multi-session management and camera-video assignment
Responsive tabs
When the info panel is narrow, tabs that don't fit collapse into a More ▾ overflow menu.