We strongly recommend enabling graphics acceleration in Chrome when working with PCD Scenes.
When you open a composite Scene, the editor automatically downloads its Scene files to the browser’s IndexedDB file cache in the background, prioritizing the open Scene. If Enable task media preloading is enabled for the Project, the editor then downloads the next composite Scene when cache space permits. This background downloading does not apply to MCAP Scenes.Encord downloads up to 32GB to your local computer.
Scene-type Projects include interactive in-editor tutorials that guide you through key annotation workflows step by step. Each tutorial auto-advances as you complete actions in the editor, so you get immediate feedback as you practice on a live scene.
In-editor tutorials are only available in Scene-type (3D LiDAR/point-cloud) Projects.
The Cuboids across time tutorial teaches you the full multi-frame cuboid tracking workflow. It takes approximately 5 minutes and covers the following steps:
Select an existing cuboid in the 3D view
Copy the cuboid to the clipboard
Navigate forward several frames and place the copied cuboid using Shift + Click
Interpolate between keyframes to fill in-between frames
View the cuboid’s trajectory in the 3D view and on the timeline
Enable Auto interpolate in the editor settings so adjustments re-interpolate automatically
Edit the trajectory in grid view by dragging the cuboid in any frame column
Set the front face on the current frame using Alt + Click, or on every frame using Alt + Shift + Click
Toggle a keyframe using Alt + K
Lock the cuboid size to keep it uniform across all frames
Mark the object as static using Alt + S
The tutorial auto-advances when the editor detects you have completed each step. Step 5 (view the trajectory) requires you to click OK to advance manually. After you finish a step, you can click its title to re-expand and re-read the instructions at any time.To start the tutorial:
1
Open the Help panel
Click the Help button in the top toolbar.
2
Navigate to Tutorials
Click Tutorials in the Help panel.
3
Start the tutorial
Find the Cuboids across time card and click Start.
We strongly recommend that Taskers use a mouse when annotating or reviewing Scenes. Using a mouse makes annotating or reviewing Scenes significantly easier.
Click Start task or Initiate to annotate a PCD data unit.The Label Editor opens with a PCD data unit ready for annotation.
Use the Editor controls and Toolbar buttons to navigate the PCD workspace.
Select an object label from the left-hand menu and begin annotating the PCD data unit.
Use your input device (mouse or trackpad) to create a label in the PCD workspace.
Layouts can be configured for both MCAP recordings (Beta) and composite Scenes. Set the camera topics, 3D viewer, numeric plots, and timeline channels with the Python SDK. See MCAP layout examples for the configuration script and a visual comparison of the default and custom layouts.
Configured layout
If a Scene has a configured layout, the Label Editor uses it to arrange 3D, camera, and time-series tiles and to select time-series channels for the timeline. If the configuration only specifies timeline channels, the editor retains the default tile arrangement and adds those channels to the timeline.
Image / Video without 3D channels
For Scenes that contain image or video channels but no 3D channels, the Label Editor automatically arranges up to eight camera views in rows of up to two tiles. Channels with matching left and right names appear together first, with the left view before the right view. The remaining channels are ordered alphabetically, and an unpaired final channel appears in its own row.
Time series charts let you compare numeric telemetry with the camera and point cloud views in the same Scene. The shared playback cursor keeps the chart and sensor views aligned.
Composite Scenes: attach a CSV time series stream alongside the camera and point cloud streams when you register the Scene, then select its numeric columns in the Scene layout. Each selected column becomes a chart channel.
MCAP Scenes: select numeric sub-channels in the Scene layout. For a robot recording, this could be forward velocity (/spot/cmd_vel.linear.x) and turning velocity (/spot/cmd_vel.angular.z). The field paths depend on the recording.
Place the selected channels in the timeline to view telemetry below the sensor views, or in chart tiles to view them alongside other tiles. A layout that specifies only timeline channels keeps the default sensor arrangement above the chart.To label an event, select a Time range class and drag across its interval on the chart. For example, mark a change in velocity while inspecting the corresponding camera frames. Select the resulting range to review its boundaries and annotation attributes.See Time Series for CSV column requirements, channel customization, and a recording of the range annotation workflow.
Context-sensitive keyboard hints display in the top-right corner of the 3D view.
Move:Use the WASD keys to move along the X axis in the workspace.Elevate:Use the QE keys to move along the Y axis in the workspace.Rotate:Hold down the scroll wheel and move your mouse to rotate.Pan:Hold down the right mouse button and move your mouse to pan around.Go Faster:Hold Shift while using the WASD, QE, or camera movement keys to move faster.
Polylines appear in the orthographic side views in the side work area. Select a polyline to center the side views on its bounds and display its vertex controls. From a side view, you can:
Create a polyline by selecting its Ontology class, clicking to place each vertex, and pressing Enter to finish.
Click a segment to add a vertex, or right-click a vertex to remove it.
Drag a vertex control to move it within the side view’s plane.
Use the selected polyline’s translation and rotation controls to move or rotate it within the side view’s plane.
Click a cuboid in the 3D view to select it. If one cuboid is inside another, clicking the inner cuboid selects it directly while the outer cuboid is unselected. When the outer cuboid is selected, its face-dragging controls take precedence.To resize a selected cuboid along one axis while keeping the opposite side fixed, hold Ctrl and drag an axis handle. This works in the main 3D view, orthographic side views, camera views, and grid view, including when the cuboid has zero depth along that axis. The axis handles use square tips while resize mode is active. Cuboids with a fixed-size constraint remain in translation mode.
Smart interpolation tracks a cuboid across frames directly from the point cloud. Instead of placing the cuboid manually on every keyframe, you click a cluster of points on different frames. Encord fits a cuboid to each cluster, then uses the motion of the cluster to interpolate the object’s position on every frame in between.Smart interpolation is available for cuboid objects in Scenes.
Smart interpolation uses a fitted ground mesh to track objects accurately as the terrain rises and falls. If no ground mesh is present, the Smart interpolation panel shows a reminder to add one. Use Adjust ground to fit a ground mesh that follows the terrain before you start adding keyframes.
To track a cuboid with smart interpolation:
1
Create a cuboid keyframe
Place a cuboid on the object in at least one frame. You can draw it manually or use One-click cuboid.
2
Start smart interpolation
Right-click the cuboid and select Smart interpolation (the magic-wand icon) from the context menu. The Smart interpolation panel opens.
Smart interpolation is only available for a single, unlocked cuboid on an editable label in a Scene. It is not available for locked or approved labels, or in review and view-only modes.
3
Add keyframes by clicking clusters
Move to another frame and click a cluster of points that belongs to the object. Encord adds a keyframe and fits a cuboid to that cluster. Repeat on as many frames as you need — the more keyframes you add, the more closely the track follows the object.
Expand Show how-to in the panel for an illustrated reminder: Click a cluster of points to add a keyframe. Right-click a new keyframe to remove it.
4
Adjust and finish
Fine-tune any keyframe (see below), then click Finish to write the interpolated track to the object. Finish becomes available once you have at least two keyframes. To leave without saving, click Close (the X in the panel).
Adjust keyframes in the interpolation preview:When a cuboid keyframe is active in the interpolation preview, use the standard cuboid controls to move, resize, or rotate it. Translation is available on all three axes, so the cuboid is not restricted to the ground plane. You can also use the keyboard shortcuts shown in the top-right corner of the 3D view, including R to switch between translation and rotation and X, Y, or Z to constrain the adjustment to an axis.Enabled orthographic side views track the current preview cuboid on both keyframes and interpolated frames, helping you inspect its fit from multiple angles as you move through the preview.Lock the cuboid size:By default, smart interpolation can resize the cuboid to fit the cluster on each keyframe. To keep the cuboid a consistent size across the whole track — useful for rigid objects such as vehicles — click the Lock size toggle (the padlock icon) in the top-right of the panel. Click it again to unlock. The size lock is stored per object, so it is remembered the next time you interpolate that cuboid.Remove a keyframe:To remove a keyframe you added during smart interpolation, right-click it. The remaining keyframes are re-interpolated automatically.
When you select a cuboid and navigate to any frame where it has no annotation, the 3D view displays a ghost cuboid and keeps the cuboid pane open. Click the ghost to accept its displayed position, drag it to adjust the position before placing it, or hold Shift to preview it at the pointer and click to place it. Before placing the cuboid, press R or T to rotate it in opposite directions in 5-degree steps. Each placement method creates a keyframe for the selected cuboid on that frame. Between existing keyframes, the ghost uses the interpolated position, orientation, and size. Before the first keyframe or after the last keyframe, it uses the geometry from that nearest keyframe. The full trajectory remains visible while you position the ghost, and the path through the ghost updates as you drag it or preview placement with Shift. The ghost updates when you edit or undo changes to the surrounding keyframes.
When you work in grid view with a cuboid selected, the top-down (bird’s-eye) tile displays the selected cuboid’s full trajectory path as a semi-transparent gray line. This gives you a spatial reference for the object’s direction of travel across all frames, making it easier to verify and correct cuboid orientation without switching back to the main 3D view.The grid-view timeline shows the frame ranges for the selected cuboid. While grid view is open, playback and frame navigation stay between the cuboid’s first and last annotated frames. Use the frame skip control to move by one frame for precise adjustments or by five frames to move one grid window at a time. In an MCAP Scene, grid columns and frame steps follow the timeline snap mode rather than fixed frames. See Timeline Snapping.Use the range handles on the timeline to choose which frames appear as grid columns. Drag either handle to adjust that side of the range, or scroll over the timeline to expand or contract both sides around the current frame. Grid view supports up to 30 columns and saves your selected range for the next time you open it.Click Views in the bottom-right corner of grid view to choose which rows appear. You can show any combination of Front, Top, Left, and Right, but at least one row must remain selected. For Scenes with camera images, you can also select Best camera. This adds a camera row that chooses the camera with the best view of the selected cuboid for each frame and focuses the image on that cuboid. If the cuboid is absent from a frame or no camera sees it, the corresponding cell displays a message instead.
The selected cuboid’s trajectory path appears regardless of the Show Cuboid Trajectories setting. The setting controls whether other eligible cuboid trajectories also appear in the main 3D view. In grid view, the selected path only appears in the top-down tile; it does not appear in side-view tiles (front, back, left, right) or camera-view tiles.
Use the trajectory overlay in the top-down grid tile to spot heading errors across keyframes — for example, when a vehicle’s cuboid orientation does not match its direction of travel. You can correct the orientation directly in grid view without switching back to the main 3D view.
Copy labels from within the same frame using Command + C and Command + Shift + V on Mac, or Ctrl + C and Ctrl + Shift + V on Windows.You can select multiple cuboids, copy them as a group, and paste them all at once onto any frame. The copied group moves together as a preview that follows your cursor, preserving each cuboid’s relative position and orientation.Enable Permanent drawing (existing instances) in the Drawing settings to streamline copying cuboids across frames. Paste with Ctrl + V on Windows or Command + V on Mac to extend the existing instances and advance by the configured Frame skip interval. You can then place the copied cuboids again with Shift + Click, and the Label Editor advances by the same interval after each placement. To create new instances on the same frame without advancing, use Ctrl + Shift + V on Windows or Command + Shift + V on Mac.
Only cuboid objects are included in a bulk copy/paste. If your multi-selection includes non-cuboid objects (such as polygons or polylines), those objects are not copied.
The stereo cuboid tool provides an assisted workflow for creating and editing 3D cuboid annotations using camera image data. The stereo tool button, Edit in stereo mode context-menu option, and associated keyboard shortcuts are available in any Scene that contains at least one image or video channel.
The stereo cuboid tool is available for Scene-type datasets only. It requires edit permissions on the label and is not available on approved labels.
The stereo tool checks calibration data for each image at fit time. If your single camera image lacks calibration data, the tool may be available but the stereo fit could fail. Ensure your image has valid calibration data for best results.
If you work with wide-angle or fisheye camera lenses and camera tiles appear cropped, enable Render full camera image in the Editor settings panel to display the full captured area.
Edit in stereo modeTo edit an existing cuboid in stereo mode, right-click the cuboid annotation and select Edit in stereo mode from the context menu. This option is available in any Scene with at least one image or video channel.Drag a seeded corner in one camera view to update the cuboid preview. The matching untouched corner in another camera view follows the fitted cuboid, reducing the number of adjustments you need to make. If you then drag that matching corner, it becomes an independent observation for the fit. The tool gives your moved or added points more influence than untouched seeded points, can fit a cuboid with zero depth, and omits corners on faces viewed at angles that are too shallow for reliable placement.
You can merge two or more 3D segmentations of the same Ontology class into one object. Select the segmentations in the timeline or the left sidebar, right-click the selection, and choose Merge segmentations into or Merge into. Then select the segmentation that you want to keep as the target.The target keeps its object identity and class, and its segmentation includes all points from the merged objects. The other objects are removed.
The Scene slicer isolates point cloud data so you can focus on a region and prevent points outside it from being selected for annotation. Click Isolate points in the 3D scene toolbar, then choose one of the following tools:
Box: Drag a box around the points you want to keep.
Polygon: Click around the points you want to keep, then press Enter or click Submit to close the polygon.
Split: Click two points to draw a line, then click the side you want to keep.
You can combine up to six slices. Use Reset in the Isolate points pane to remove all slices, or use undo and redo to step through individual slicing changes. A polygon can contain up to 24 points.
Press Escape to close the Filters, Adjust ground, or Isolate points pane. If you are fitting a ground plane from three points, the first press cancels the fit and leaves Adjust ground open; press Escape again to close the pane.
You can show or hide the orientation of cuboids using the “cuboid orientation” setting:You can change the front face of a cuboid on the current frame by holding Alt (on Windows) or Option (on Mac) and clicking any face of the cuboid. The frame becomes a keyframe, and automatic orientation from motion does not override your selection during the current editor session. After you reopen the editor, a later automatic trajectory update may change that frame. This works whether the cuboid is selected or unselected.When you hold Alt / Option, the drag-handle controls hide automatically so your click targets the cuboid face rather than a resize handle.
To change the front face across every frame where the cuboid exists, hold Alt+Shift (on Windows) or Option+Shift (on Mac) while clicking a face. Interpolated frames retain their interpolated status.
Click Filters in the toolbar to filter points by motion or height.
Color filter
The Color filter button appears in the 3D scene editor toolbar only when the loaded point cloud contains color or intensity data.
The color filter applies globally to all loaded point clouds in the scene. When you enable the filter, points outside the selected range are hidden in the viewport and cannot be selected by any segmentation tool.
Enabling the filterClick the Color filter button in the toolbar to toggle the filter on or off.Filter modesOpen the Color filter popover (click the chevron next to the button) to configure the filter. Select a mode using the mode selector at the top of the popover:
RGB — Filter points by red, green, and blue channel ranges (0–255 per channel). Available with Provided, Image color, and Sensor point cloud color modes.
HSV — Filter points by hue, saturation, and value ranges. Available with Provided, Image color, and Sensor point cloud color modes.
Intensity — Filter points by intensity range (0–100%). Available when the point cloud contains intensity data.
Use the range sliders to set the minimum and maximum values for each channel. Only points whose color or intensity falls within all specified ranges remain visible.RGB and HSV filtering uses the colors displayed by the active point cloud color mode. It is unavailable with Solid and Height. Use the height filter to filter points by height. Changing the point cloud color mode resets the RGB and HSV filter ranges.When filtering by intensity while point intensity is not displayed, the editor prompts you to enable Display point intensity in the scene settings.Eyedropper (Pick color from scene)Click Pick color from scene in the popover to activate the eyedropper. Then click any point in the 3D viewport to seed the filter with that point’s color or intensity. The sliders update automatically to a range centered on the sampled value.Composition with other filtersThe color filter works together with the height filter and slicer planes. A point must pass all active filters to remain visible and selectable.Segmentation tool integrationWhen the color filter is active, the lasso, brush, and cuboid segmentation tools automatically exclude filtered-out points from selection. Only visible points can be selected.
If the cuboid tool cannot resolve a point cloud in the rendered scene, it falls back to unfiltered selection for that cloud.
Under Motion, use Show dynamic points and Show static points to control which point classes the editor displays. When you change either setting for the first time, the editor analyzes the scene to classify its points.
The height filter lets you restrict which points the editor displays and which points segmentation tools can select, based on each point’s height above a reference surface.
The height filter offers two reference modes. The mode selector label updates dynamically depending on which ground reference is currently active:
Mode
When available
Description
Ground plane
Always
Measures each point’s height relative to the flat (or tilted) ground plane. The label changes to Ground mesh when a fitted ground mesh is active.
Ground mesh
Only when a fitted ground mesh is active
Measures each point’s height above the local mesh surface rather than a flat plane. Use this mode for curved roads, slopes, and uneven terrain.
World axes
Always
Measures each point’s height along the world vertical axis, ignoring any ground plane tilt or ground mesh.
The Ground mesh option appears in the mode selector when you activate the automatically detected mesh using Adjust ground → Use ground mesh. If no ground mesh is active, the selector shows Ground plane instead.
Click Adjust ground in the toolbar, then click Use ground mesh when the automatically detected mesh is ready.
2
Open the height filter
In the Adjust ground pane, click Open filters, then expand Height.
3
Select Ground mesh mode
In the mode selector, click Ground mesh. The histogram and min/max range update to reflect heights above the mesh surface.
4
Set your height bounds
Drag the slider or type values into the Min and Max inputs to define the height range you want to keep visible. To hide points identified as ground, click Remove ground. This sets the minimum height from the fitted mesh’s detected ground level.
Lasso (freehand) and brush segmentation tools respect the ground-mesh-relative height filter when Ground mesh mode is active. Only points above the mesh surface within your defined range are selectable.
The height filter range initializes to the 0.5th–99.5th percentile of point heights in the scene, giving you a wider default range that includes more of the point cloud.
Label branches let you keep multiple versions of a Project’s labels side-by-side. Use them to preserve a labeled state before a re-labeling pass, run an experiment without disturbing main, or hold a reviewer-only copy of labels.
This feature is only available to Workspace and Project Admins, and Team Managers in the REVIEW and COMPLETE Workflow stages.
To view labels from other branches:
Click the Branches button in the Label Editor header.
The branch overlay panel opens.
Select the checkboxes for the branches you want to overlay.
Each branch displays with a unique color indicator.
Click outside the panel to close it.
The selected branch labels now appear as read-only overlays in the 3D scene.
Press Alt + B to hide all overlaid branches. Press it again to restore your previous selection. If you have not selected branches in the current task, the shortcut overlays all available branches. The shortcut is unavailable when there are no branches to overlay.In Projects that use a Form layout, each selected branch’s classification answers also appear beneath the corresponding field, tagged with the branch’s name and color.
Branch label comparison is available in Review and Complete editor views — no feature flag or admin configuration required. Overlay labels are read-only. You cannot edit annotations from other branches directly in the overlay view.
Audio and text-document modalities do not yet display branch names on overlay labels. The vertical fan-out uses fixed pixel offsets and is not collision-aware; in very dense scenes with many overlapping annotations, labels from multiple branches may still be difficult to read.
For composite Scenes, select Clear scene media cache from the Actions menu to remove the current Scene’s cached point cloud and image files from your browser. The editor downloads the Scene media again and reloads the Scene, allowing you to view updates made to the source files.Open the Actions menu with Ctrl + K (Windows) or Cmd + K (Mac), then search for Clear scene media cache.
Center content
Hot key: Shift + CCenters the camera on the selected object (cuboid, keypoint, or polyline). With no object selected, the camera centers on the ego frame when Follow ego is enabled and you are viewing a single frame. When Follow ego is disabled or the merged point cloud is displayed, the camera centers on the geometric center of the points.
Align camera with tile
Hot key: ALT/OPTION + TBrings the POV to the “tiles” listed in the drop-down that appears.
Adjust ground
Sets the position and rotation of the ground plane in the workspace. The ground plane is used for navigation (see “pan along ground” setting) as well as determining the initial position of cuboids.Click the ground plane icon in the toolbar to open the ground height controls:Auto-detection: Encord detects and fits a terrain-conforming ground mesh in the background as the scene loads. Click Use ground mesh when it is ready. Click Use ground plane to switch back to the flat ground plane without discarding the detected mesh.
Automatic ground segmentation is a preview capability. Advanced controls for ground mesh fitting parameters and the segmentation grid overlay are available in the debug panel for internal and developer users. Known limitations include reduced accuracy on steep slopes and uneven terrain in some configurations.
Set Manually:
Slider: Drag to adjust the ground height. The range spans from the lowest to the highest point in the point cloud along the up axis.
Visibility toggle: Show or hide the ground grid overlay in the 3D view.
Fit from 3 points: Select 3 points on any point cloud to automatically fit the ground plane. This is useful when the ground is not flat or is at an angle.
You can also enter “Fit from 3 points” mode directly using the keyboard shortcut Option + G (Mac) or Alt + G (Windows), without opening the popover first.
When fitting mode is active, the toolbar button changes to show how many points remain to be picked:
Click 3 points on the point cloud surface to define the ground plane. The counter updates as each point is picked. Click the x on the button or press Escape to cancel.When the ground plane is rotated (tilted), rotation information is displayed in the controls. Use the Reset rotation button to return the ground plane to flat.When the ground grid is visible, it is displayed as a grid in the scene:
For ground mesh fitting (an improved, terrain-conforming alternative to the flat ground plane), see the Ground mesh fitting settings below.
Radius indicators
Hot key: Option + RRadius indicators are useful guides when annotating in 3D space. For example, you might only want to annotate anything that comes within 3 meters of your object (vehicle, robot, drone). You would then use a radius of three and only annotate anything within that radius.
ON: Displays one or more radii centered on the object (vehicle, robot, drone) that captured PCD. You can select the color used for all radii.
OFF: Hides all the radii.
Follow ego
Hot key: ALT/OPTION + EClick Follow ego in the 3D toolbar to anchor the Scene origin to an eligible moving frame of reference, such as an ego vehicle. Click the button again to stop following, keep the view in place, and return the origin to the root frame.
The button appears only when the Scene contains a frame whose position changes relative to its parent.
Merged cloud point view
Hot key: ALT/OPTION + MDisplays point cloud data from multiple frames simultaneously in the workspace. When enabled, you can use the frame range controls to specify which frames to merge.
ON: Displays PCD from multiple frames at once. Adjust the frames displayed by dragging sliders in the navigation bar.
OFF: Displays the PCD for the current frame only.
When you enable merged view for the first time in a session, Encord selects an adaptive range of 11 to 101 frames based on the number of points in the current frame, or includes every frame if the Scene has fewer than 11. The range moves with the playhead and remains centered on it where the Scene boundaries allow. Drag the handles on the timeline or scroll over it to resize the range.
Show points in images
Hot key: ALT/OPTION + IDisplays point cloud data in 2D images.
Set camera target
Hot key: CONTROL + ALT/OPTION+ CSpecify the camera target on a single point in the PCD data.
Use this feature with Center content.
Scene view settings
Click Scene view settings on the right side of the 3D toolbar to display or hide elements in the PCD space.
Show control hints: Displays context-sensitive keyboard shortcut hints in the top-right corner.
Show camera switcher: Displays video views for the Scene.
Show zoom indicator: Displays zoom level information.
Show size rulers: Displays a scale ruler in the orthographic side views showing world unit measurements.
Show camera target: Displays the camera target in the 3D view.
Show ground cursor: Displays the ground-position crosshair in the 3D view.
Show camera tiles: Selects how camera tiles appear in the side work area.
Lidar visibility: Shows or hides individual LiDAR streams. When Point cloud color mode is set to Sensor, each stream displays a dot that matches its point cloud color. Appears only when the Scene contains LiDAR streams.
Model visibility: Shows or hides individual model streams, which are visible by default. Model streams can display cuboids, ellipsoids, lines, points, and GLTF/GLB, STL, or OBJ meshes. A warning icon identifies streams that contain unsupported spheres, Collada models, or models with an unknown format; hover over or focus the icon for details. Supported geometries in the same stream still display. Model stream rendering and Model visibility controls are not available for MCAP Scenes.
The Show camera switcher and Show camera tiles settings appear only when the Scene includes camera images.The zoom indicator is always displayed in the 3D view, except in first-person mode.When the Scene includes camera images, select Camera in the side work area or press Shift + V to switch between 3D and Camera modes. Use Follow camera target in camera views to turn tracking on or off. When tracking is on, the side work area displays the camera views in which the selected cuboid is visible and focuses each view on the cuboid. If no cuboid is selected, the camera views follow the camera target. Hold Ctrl on Windows or Command on Mac while hovering over a valid point to preview that point as the target; when the preview ends, the camera views return to the camera target you set.To resize the side work area in either 3D or Camera mode, drag the vertical divider between it and the main 3D view. Centered orthographic side views automatically refit their content as you resize the area. Your chosen width is retained when you reload the Label Editor; double-click the divider to restore the default width.
Input DeviceSpecify using a mouse or trackpad to rotate or pan in the workspace.
We STRONGLY recommend using a mouse to rotate or pan in the workspace.
Pre-load dataPre-load data in the background for smoother navigation. Enabling this setting can improve performance when annotating or reviewing point cloud data.
Cuboid settings
FaceShows/Hides the “face” of cuboids in the PCD workspace.Show cuboid orientationControls how cuboid orientation appears in the PCD workspace. Select Front only to show an arrow that indicates the cuboid’s facing direction, All axes to show its three orientation axes, or None to hide orientation indicators. These indicators also appear on ghost cuboids while you preview their placement.Set front face from motionWhen enabled, Encord automatically orients the front face of a cuboid annotation based on the object’s local direction of motion whenever you add or paste a keyframe. It ignores small movements caused by annotation jitter. Encord re-orients existing keyframes for that cuboid in the same operation, except for frames where you manually set the front face during the current editor session, so undoing the action also reverts the orientation change.
This setting is disabled by default. When disabled, the front face follows how the cuboid was originally created. You can always set the front face manually at any time using Alt+Click.
Use Set front face from motion when annotating moving objects (such as vehicles or pedestrians) to keep cuboid orientations consistent with the direction of travel across all keyframes.
Setting the front face manually with Alt+ClickHold Alt and click any face of a cuboid to designate that face as the front face on the clicked frame. The frame becomes a keyframe, and automatic orientation from motion does not override your selection during the current editor session. After you reopen the editor, a later automatic trajectory update may change that frame. Hold Alt+Shift and click a face to set the front face across every frame instead. These shortcuts work whether the cuboid is selected or unselected.While you hold Alt, Encord hides the cuboid’s drag-handle controls and makes the cuboid body the click target, so you can accurately pick the intended face without accidentally resizing the cuboid.When you set the front face across every frame, keyframes update their stored rotation, and interpolated frames rotate to match but retain their interpolated status.Show Cuboid TrajectoriesEncord always renders the full trajectory path for selected cuboids across frames. Enable Show Cuboid Trajectories to also display the trajectories of other eligible cuboids. Trajectory paths appear in the main 3D view, while the selected cuboid’s path also appears in the top-down (bird’s-eye) tile of grid view. The trajectory does not appear in front, back, left, right, or camera-view tiles — only the top-down tile shows it, because the path collapses to a point or line from those angles.
Use the trajectory path in the top-down grid view tile to verify and correct cuboid orientation against the object’s actual direction of travel, especially when a vehicle or object has an incorrect heading across keyframes. You can do this without leaving grid view.
Cuboids with only a single frame of annotation have no trajectory data and display nothing.
Wireframe cuboids in camera viewsEnable this setting to display unselected cuboids as outlines in camera-image views. Encord hides edges blocked by the cuboid itself or by other visible cuboids, making overlapping and stacked cuboids easier to inspect. The outlines use the configured label edge opacity. This setting is disabled by default and is available only for Scenes with camera channels.
Helpers
GroundShows/Hides the “ground” plane as a grid in the PCD workspace.AxisShows/Hides the axis of the point of origin in the PCD workspace.CamerasShows/Hides camera helper lines to aid in annotating PCD.Frames of referenceShows/Hides frame origins and the parent-to-child connections between them in the main 3D view. Arrows point from each parent frame to its child. Hover over a frame origin to view the frame name, parent frame, position, and quaternion rotation relative to its parent.BackgroundShows/Hides the background in the PCD workspace.
Color filter
Click Filters in the 3D Label Editor Toolbar, then expand Color. The section reports when the loaded point cloud has no color or intensity data.
The color filter applies globally to all loaded point clouds in the scene. When you enable the filter, points outside the selected range are hidden in the viewport and cannot be selected by any segmentation tool.
Filter modesSelect a mode using the mode selector at the top of the section:
RGB — Filter points by red, green, and blue channel ranges (0–255 per channel). Available with Provided, Image color, and Sensor point cloud color modes.
HSV — Filter points by hue, saturation, and value ranges. Available with Provided, Image color, and Sensor point cloud color modes.
Intensity — Filter points by intensity range (0–100%). Available when the point cloud contains intensity data.
Use the range sliders to set the minimum and maximum values for each channel. Only points whose color or intensity falls within all specified ranges remain visible.RGB and HSV filtering uses the colors displayed by the active point cloud color mode. It is unavailable with Solid and Height. Use the height filter to filter points by height. Changing the point cloud color mode resets the RGB and HSV filter ranges.When filtering by intensity while point intensity is not displayed, the editor prompts you to enable Display point intensity in the scene settings.Eyedropper (Pick color from scene)Click Pick color from scene in the Color section of the Filters pane to activate the eyedropper. Then click any point in the 3D viewport to seed the filter with that point’s color or intensity. The sliders update automatically to a range centered on the sampled value.Composition with other filtersThe color filter works together with the height filter and slicer planes. A point must pass all active filters to remain visible and selectable.Segmentation tool integrationWhen the color filter is active, the lasso, brush, and cuboid segmentation tools automatically exclude filtered-out points from selection. Only visible points can be selected.
If the cuboid tool cannot resolve a point cloud in the rendered scene, it falls back to unfiltered selection for that cloud.
Mesh asset settings
When a Scene contains mesh assets, use the Scene settings to inspect their geometry and appearance:
Set Mesh appearance to Textured to display the asset’s colors, or Untextured to apply a neutral fill that makes its shape easier to inspect.
With Untextured selected, enable Faceted shading to shade each triangle separately instead of smoothing the surface.
Adjust Key light to control directional shading and Ambient light to control the even fill light. These lighting preferences persist across sessions.
Rest the pointer over a visible mesh to display its stream name and highlight that part.
These settings appear only when the Scene contains a mesh asset. They do not affect point-cloud-only Scenes.
Point cloud settings
A Scene can optionally include view settings which will be applied when opening it, such as the point cloud size and coloring mode. See Scene view settings to learn more.
Color settingsYou can change the color of point cloud data in the PCD workspace. Here are the options:
Solid: Displays points with a single uniform color.
Height: Displays points in colors based on the distance from the “ground” plane. Selecting this mode shows Height color range in the Scene settings, where you can adjust the displayed range.
You can adjust the “ground” plane using the ground height feature on the Editor toolbar.
Provided: Displays points in colors based on how they were originally captured and recorded. Available when a point cloud includes color data.
Image: Displays points in colors by projecting camera image data onto the points. Available when the scene includes cameras.
Sensor: Displays points colored by the sensor that captured them, making it easy to visually identify which sensor contributed which points in a multi-sensor setup. Available when the scene includes multiple point cloud streams.
The settings panel does not show color modes that the scene data does not support. If a saved color mode is unsupported in a scene, the point cloud renders using Solid.The Display point intensity setting appears only when a point cloud in the Scene includes intensity data. The sRGB color correction setting appears only when the Scene includes provided point-cloud colors and Provided is the active color mode. Render full camera image appears only when the Scene includes camera images.
When you enable Color by sensor mode, points from different sensors are automatically assigned distinct colors from a fixed palette of 20 maximally distinct colors.
Sensor colors are assigned consistently based on the sensor’s stream ID, so the same sensor is always use the same color across different frames and sessions.
PCD display settingsYou can change the display settings of point cloud data in the PCD workspace. Here are the options:
Show: Displays point cloud data in the PCD workspace.
Merge: Displays all point cloud data across time in the PCD workspace.
Hide segmented: Hides all point cloud data that is behind segmented objects in the PCD workspace.
Only segmented objects that are set to be hidden hide all point cloud data behind them.
Hide Unsegmented: Hides all points not covered by any segmentation label. This toggle is off by default. You can also toggle this setting using Shift+U.
When you enable Hide Unsegmented before creating any segmentations, no points are hidden because no segmentation coverage exists yet.
You can combine Hide Unsegmented with Hide segmented to show only points that belong to visible segmentation labels.
Use Hide Unsegmented when trimming or refining segmentations on large point cloud scenes — hiding background points reduces visual clutter and prevents the brush and lasso tools from accidentally selecting unlabeled points.
Point cloud size
Specify the size of cloud data points in the PCD workspace.
Point cloud opacity in 2D views
Specifies the opacity of PCD in 2D views.
The default value is 0. PCD does not display in 2D views with a value of 0.
Render full camera image
Renders the full image captured by the camera beyond the source image’s nominal bounds. Enable this setting when working with wide-angle or fisheye lenses in 3D scenes to display the complete captured area in the rectified camera view.
This setting is off by default. When disabled, the rectified camera view clips to the source image’s nominal bounds. This setting is only visible when you are working in a 3D scene context.
Enable Render full camera image when your camera tiles appear cropped. You can also search for this setting in the settings panel using keywords such as “fisheye”, “wide-angle”, “distortion”, “rectified”, or “clip”.
Ground mesh fitting
The ground mesh fitting tool improves ground detection in LiDAR/point cloud scenes, including curved roads and uneven terrain. Encord automatically detects and fits the mesh in the background as the scene loads. You can then activate it as an overlay in the 3D viewer, giving you a visual reference for scene geometry and making it easier to focus on objects of interest.Ground segmentationEncord automatically segments the point cloud into ground and non-ground points as the scene loads. Click Adjust ground in the toolbar, then Use ground mesh when the detected mesh is ready. To switch back without discarding the detected mesh, click Use ground plane. The segmentation algorithm handles curved and uneven terrain more accurately than a flat ground plane.Height filter integrationWhen you fit a ground mesh, the Height section of the Filters panel gains a Ground mesh mode. In this mode, the height filter measures each point’s height above the local mesh surface rather than a flat plane, enabling accurate filtering over curved or uneven terrain such as cambered roads or hilly ground.To use the height filter with a fitted ground mesh:
Click Adjust ground in the toolbar, then click Use ground mesh when the detected mesh is ready.
Close the Adjust ground pane.
Click Filters in the toolbar, then expand Height.
Select Ground mesh from the mode selector. The selector shows Ground mesh when a fitted mesh is active, or Ground plane when only a flat ground plane is available.
Adjust the Min and Max bounds. The histogram and range reflect heights above the mesh surface.
The Ground mesh option appears in the height filter mode selector only when a fitted ground mesh is active. If no ground mesh has been fitted, the selector shows Ground plane instead.
Click Remove ground to set the minimum height from the fitted mesh’s detected ground level and hide points identified as ground.Lasso (freehand) and brush segmentation tools respect the ground-mesh-relative height filter when Ground mesh mode is active, so only points above the mesh surface at the specified height range are included in your selection.To open or close the Filters panel, press F. Use the reset button beside Height to clear the height filter.When you select a cuboid and click Level, Encord aligns the cuboid with the local slope of the active ground mesh. If you use the ground plane instead, Level aligns the cuboid with that plane. The action preserves the cuboid’s position, size, and heading.
Cuboid fitting on the ground plane currently uses the flat ground plane, not the terrain mesh. Full integration with the terrain mesh is planned for a future release.
Ground mesh fitting runs in the browser. On large or merged point clouds, the fitting process may temporarily affect UI responsiveness while it completes.
Faded point opacity
Specifies the opacity of data points that fade into the background. For example, all data points outside of a Scene slice.
Color points inside cuboids
Controls whether points that fall inside cuboids are highlighted with special coloring to make them more visible. This setting overrides the normal point coloring mode for points contained within cuboid annotations.
Option
Description
All cuboids
Highlights points inside every cuboid annotation (default behavior).
Selected only
Only highlights points inside the currently selected cuboid.
None
Disables cuboid point highlighting entirely.
Use “Selected only” mode when working with many overlapping cuboids to focus on the cuboid you’re currently editing.
Label color mode (review)
Controls how 3D labels are colored during workflow review and consensus review tasks. This setting applies to all 3D label types: cuboids, spheres, polylines, and keypoints/points.
This setting only takes effect when you are in a workflow review stage or consensus review stage. It has no effect outside of review tasks.
By review statusWhen you set Label color mode (review) to By review status, all 3D labels in the point cloud viewport are recolored according to their current review state:
Review state
Color
Pending
Orange
Approved
Green
Rejected
Red
Labels you action (approve or reject) during the current review session fade to the opacity configured in Reviewed label opacity, reducing visual clutter as you work through the scene.
The opacity fade applies only to filled shapes — cuboids and spheres. Polylines and keypoints/points are recolored by review status but do not fade.
Selected 3D labels retain their review-status fill color when selected. Only the selection outline switches to the selection highlight color, matching the behavior in 2D review tasks.
Reviewed label opacity
Specifies the opacity applied to 3D labels that you have actioned (approved or rejected) during the current review session. Reducing this value fades reviewed labels into the background, making it easier to focus on labels that still require review.
The opacity fade applies only to filled shapes — cuboids and spheres. Polylines and keypoints/points are recolored by review status but are not affected by this opacity setting.
This setting only takes effect when Label color mode (review) is set to By review status and you are in a workflow review stage or consensus review stage.
In-editor tutorials (Scene projects)
Scene-type (3D LiDAR/point-cloud) projects include interactive in-editor tutorials you can access directly from the label editor. Each tutorial guides you through a specific workflow step by step, and the editor automatically detects when you complete each action so the tutorial advances in real time.Accessing tutorialsClick the Help button in the top toolbar, then select Tutorials. The tutorials panel lists all available tutorials for your project type. Click Start on any tutorial card to begin.Cuboids across timeThe Cuboids across time tutorial teaches you the full multi-frame cuboid tracking workflow. It takes approximately 5 minutes and covers the following steps:
Select a cuboid — select an existing cuboid in the 3D view.
Copy the cuboid — copy the selected cuboid to the clipboard.
Place it on a later frame — navigate forward several frames, then hold Shift to preview the copied cuboid and click to place it.
Interpolate between keyframes — fill every frame between your two keyframes using the interpolate shortcut or the right-click menu.
View the trajectory — review the trajectory the editor draws between keyframes, then confirm with OK.
Turn on auto re-interpolation — enable Auto interpolate under Drawing in the editor settings so the editor automatically re-runs interpolation when you adjust a keyframe.
Edit the trajectory in grid view — open grid view, drag the cuboid in any frame column to refine its position, and close grid view when done.
Set the front face — use Alt+click to set the front face on the current frame, or add Shift to set it on every frame.
Toggle a keyframe — use Alt+K to unmark or re-mark the current frame as a keyframe.
Lock the size — click Lock size in the cuboid pane to enforce a uniform size across all frames.
Make it static — use Alt+S or the pushpin in the cuboid pane to mark the object as static, copying its current pose to every frame.
After you complete a step, the tutorial advances automatically. Step 5 (View the trajectory) requires you to click OK to advance manually. Once you finish a step, you can click its title to re-expand it and re-read the instructions at any time.
The Cuboids across time tutorial is only available in Scene-type (3D LiDAR/point-cloud) projects. It does not appear for other project types.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Encord","colors":{"primary":"#A6E40E","light":"#C4F53A","dark":"#7AAA0A"},"logo":{"light":"https://storage.googleapis.com/docs-media.encord.com/primary-logo-light.png","dark":"https://storage.googleapis.com/docs-media.encord.com/primary-logo-dark.png"},"favicon":"https://mintcdn.com/encord-30/9VGa3mvnov97xugB/favicon.png?fit=max\u0026auto=format\u0026n=9VGa3mvnov97xugB\u0026q=85\u0026s=3f6951e96cf860a1c336e00cfc11dcbe","appearance":{"default":"system","strict":false},"navbar":{"links":[{"icon":"signal","href":"https://status.encord.com/","label":"Status"},{"icon":"newspaper","href":"https://encord.com/blog/","label":"Blog"}],"primary":{"type":"button","label":"Book a demo","href":"https://encord.com/book-demo/?utm_source=encord_docs_header_cta"}},"footer":{"socials":{"github":"https://github.com/encord-team","linkedin":"https://www.linkedin.com/company/encord-team"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"integrations":{"clearbit":{"publicApiKey":"pk_3adfa5e57fcda43370d4da97618f3856"},"heap":{"appId":"3135473550"}},"banner":{"content":"Introducing Encord Data Labs. [Research at the Frontier](https://encord.com/data-labs/).","dismissible":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"encord-30","hasAudioNarration":false,"actualSubdomain":"encord-30","customDomains":["docs.encord.com"],"gitSource":{"type":"github","owner":"encord-team","repo":"encord-docs-mint","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af1f7abc512f821748abeff","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"SDK","count":192},{"language":"default","tag":"Platform","count":129},{"language":"default","tag":"General","count":123},{"language":"default","tag":"SDK Reference","count":121},{"language":"default","tag":"Data","count":53},{"language":"default","tag":"Labels and Logs","count":47},{"language":"default","tag":"Get Started","count":42},{"language":"default","tag":"Fundamentals","count":36},{"language":"default","tag":"Solutions","count":34},{"language":"default","tag":"Modalities","count":27}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":":root{--encord-primary: #A6E40E;--encord-primary-light: #C4F53A;--encord-primary-dark: #7AAA0A;--encord-text: #1B1916;--encord-white: #FFFFFF;--encord-black: #1B1916}.text-primary,.dark .dark\\:text-primary-light{color:var(--encord-text)!important}.dark a[aria-current=\"location\"]{color:var(--encord-primary-light)!important}.dark #table-of-contents li[data-active]>a{color:var(--encord-primary-light)!important}.bg-primary\\/10{background-color:rgba(166, 228, 14, 0.14)!important}.dark .dark\\:bg-primary-light\\/10,.dark .bg-primary\\/10{background-color:rgba(196, 245, 58, 0.92)!important}.border-primary,.border-primary-light,.dark .dark\\:border-primary-light{border-color:var(--encord-primary)!important}.ring-primary,.ring-primary-light,.dark .dark\\:ring-primary-light{--tw-ring-color: var(--encord-primary) !important}#topbar-cta-button .bg-primary-dark{background-color:var(--encord-primary)!important}#topbar-cta-button a:hover .bg-primary-dark,.group:hover #topbar-cta-button .bg-primary-dark{background-color:var(--encord-primary-light)!important}#topbar-cta-button a,#topbar-cta-button a *{color:var(--encord-text)!important}#assistant-entry,#assistant-entry *,#ask-assistant-code-block-button,#ask-assistant-code-block-button *{color:var(--encord-text)!important}.dark #assistant-entry,.dark #assistant-entry *,.dark #ask-assistant-code-block-button,.dark #ask-assistant-code-block-button *{color:var(--encord-white)!important}#banner{background-color:var(--encord-black)!important;border-color:var(--encord-black)!important}.dark #banner{background-color:var(--encord-white)!important;border-color:var(--encord-white)!important}@layer utilities{#banner,#banner *,#banner a,#banner button,#banner svg{color:var(--encord-white)!important;text-decoration-color:var(--encord-white)!important}.dark #banner,.dark #banner *,.dark #banner a,.dark #banner button,.dark #banner svg{color:var(--encord-black)!important;text-decoration-color:var(--encord-black)!important}}.container{display:flex;flex-wrap:wrap;gap:10px}.clickable-button,.clickable-div{display:flex;align-items:center;justify-content:center;padding:10px 20px;border:2px solid #F0F0F0;border-radius:5px;background-color:var(--encord-white);color:var(--encord-text);font-size:16px;text-align:center;text-decoration:none;cursor:pointer;width:220px;height:60px;line-height:1.2;transition:background-color 0.3s, border-color 0.3s, color 0.3s, transform 0.15s}.dark .clickable-button,.dark .clickable-div{background-color:rgb(var(--gray-900));border-color:rgb(var(--gray-800));color:var(--encord-white)}.clickable-button:hover,.clickable-div:hover,.dark .clickable-button:hover,.dark .clickable-div:hover{background-color:var(--encord-primary-light);border-color:var(--encord-primary-light);color:var(--encord-text)}.clickable-button:hover ol li::marker,.clickable-div:hover ol li::marker,.dark .clickable-button:hover ol li::marker,.dark .clickable-div:hover ol li::marker{color:var(--encord-text)}.clickable-button:active,.clickable-div:active,.dark .clickable-button:active,.dark .clickable-div:active{background-color:var(--encord-primary-dark);border-color:var(--encord-primary-dark);color:var(--encord-text);transform:scale(0.98)}.dark [data-component-part=\"callout-content\"]{--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows)}.dark [data-component-part=\"tab-button\"][data-active=\"true\"]{color:var(--encord-primary-light)!important}#encord-kapa-ask-ai{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;margin-left:6px!important;height:40px!important;min-width:104px!important;padding:0 16px!important;border-radius:12px!important;border:1px solid var(--encord-primary)!important;background:var(--encord-primary)!important;background-color:var(--encord-primary)!important;color:var(--encord-text)!important;font-size:14px!important;font-weight:600!important;line-height:1!important;white-space:nowrap!important;cursor:pointer!important;flex-shrink:0!important}#encord-kapa-ask-ai:hover{background:var(--encord-primary-light)!important;background-color:var(--encord-primary-light)!important;border-color:var(--encord-primary-light)!important;color:var(--encord-text)!important}#encord-kapa-ask-ai:active{background:var(--encord-primary-dark)!important;background-color:var(--encord-primary-dark)!important;border-color:var(--encord-primary-dark)!important;color:var(--encord-text)!important}.dark #encord-kapa-ask-ai,.dark #encord-kapa-ask-ai:hover,.dark #encord-kapa-ask-ai:active{color:var(--encord-text)!important}#encord-kapa-ask-ai .encord-kapa-ask-ai-icon,#encord-kapa-ask-ai .encord-kapa-ask-ai-label{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;line-height:1!important;color:inherit!important}img[alt=\"Project Logo\"]+p,img[alt=\"Project Logo\"]~p,img[alt=\"Project Logo\"]+.mantine-Text-root,img[alt=\"Project Logo\"]~.mantine-Text-root,img[alt=\"Project Logo\"]~*{color:var(--encord-text)!important}img[alt=\"Project Logo\"],img[alt=\"Project Logo\"]~span,img[alt=\"Project Logo\"]~div{color:var(--encord-text)!important}.loom-thumb{position:relative;display:block;cursor:pointer;width:100%;aspect-ratio:16 / 9;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:0.75rem;overflow:hidden}.loom-thumb::before{content:\"\";position:absolute;top:50%;left:50%;width:72px;height:50px;transform:translate(-50%, -50%);background:rgba(0, 0, 0, 0.65);border-radius:12px;transition:background 0.15s ease;pointer-events:none}.loom-thumb::after{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-38%, -50%);border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent #ffffff;pointer-events:none}.loom-thumb:hover::before{background:var(--encord-primary, #A6E40E)}.loom-thumb:hover::after{border-left-color:#1B1916}@keyframes loom-spin{to{transform:rotate(360deg)}}.loom-thumb[aria-label=\"\"],.loom-thumb:not([role=\"button\"])::before,.loom-thumb:not([role=\"button\"])::after{display:none}"}],"page":{"pagePath":"platform-documentation/Annotate/annotate-label-editor/annotate-pcd","slug":"/platform-documentation/Annotate/annotate-label-editor/annotate-pcd","pageMetadata":{"title":"Labeling Scenes","metadata":{"title":"Labeling Scenes","description":"Learn how to annotate and review Scenes, including point clouds, LiDAR, camera views, and sensor streams."},"description":null,"href":"/platform-documentation/Annotate/annotate-label-editor/annotate-pcd"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const LoomVideo=({id,title=`Loom video`,thumbnail})=>{const[playing,setPlaying]=useState(false);const[loaded,setLoaded]=useState(false);const thumb=thumbnail||`https://www.loom.com/v1/videos/${id}/thumbnail`;const play=()=>setPlaying(true);const warm=()=>{if(typeof document===`undefined`||document.getElementById(`loom-preconnect`))return;[`https://www.loom.com`,`https://cdn.loom.com`].forEach((href,i)=>{const l=document.createElement(`link`);l.rel=`preconnect`;l.href=href;if(i===0)l.id=`loom-preconnect`;document.head.appendChild(l)})};return _jsxs(`div`,{className:`loom-thumb`,role:playing?undefined:`button`,tabIndex:playing?undefined:0,\"aria-label\":playing?undefined:`Play: ${title}`,onClick:playing?undefined:play,onMouseEnter:warm,onFocus:warm,onKeyDown:e=>{if(!playing\u0026\u0026(e.key===`Enter`||e.key===` `)){e.preventDefault();play()}},style:{backgroundColor:`#1B1916`,backgroundImage:`url('${thumb}')`,cursor:playing?`default`:`pointer`},children:[playing\u0026\u0026_jsx(`iframe`,{src:`https://www.loom.com/embed/${id}?autoplay=true\u0026hide_owner=true\u0026hide_share=true\u0026hide_title=true`,title,allow:`autoplay *; fullscreen *; picture-in-picture *`,allowFullScreen:true,onLoad:()=>setLoaded(true),style:{position:`absolute`,top:0,left:0,width:`100%`,height:`100%`,border:0,opacity:loaded?1:0,transition:`opacity 0.25s ease`}}),playing\u0026\u0026!loaded\u0026\u0026_jsx(`div`,{\"aria-hidden\":`true`,style:{position:`absolute`,top:`50%`,left:`50%`,width:40,height:40,marginTop:-20,marginLeft:-20,border:`4px solid rgba(255,255,255,0.35)`,borderTopColor:`#fff`,borderRadius:`50%`,animation:`loom-spin 0.8s linear infinite`,zIndex:2}})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Tip,Warning,_MdxComponentBoundary}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`We strongly recommend enabling `,_jsx(_components.a,{href:`https://www.howtogeek.com/412738/how-to-turn-hardware-acceleration-on-and-off-in-chrome/#:~:text=In%20the%20Settings%20menu%2C%20expand,Relaunch%E2%80%9D%20to%20apply%20the%20changes`,children:`graphics acceleration`}),` in Chrome when working with PCD Scenes.`]})}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`When you open a composite Scene, the editor automatically downloads its Scene files to the browser’s IndexedDB file cache in the background, prioritizing the open Scene. If `,_jsx(_components.strong,{children:`Enable task media preloading`}),` is enabled for the Project, the editor then downloads the next composite Scene when cache space permits. This background downloading does not apply to MCAP Scenes.`]}),_jsx(_components.p,{children:`Encord downloads up to 32GB to your local computer.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`in-editor-tutorials`,children:`In-Editor Tutorials`}),`\n`,_jsx(_components.p,{children:`Scene-type Projects include interactive in-editor tutorials that guide you through key annotation workflows step by step. Each tutorial auto-advances as you complete actions in the editor, so you get immediate feedback as you practice on a live scene.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`In-editor tutorials are only available in Scene-type (3D LiDAR/point-cloud) Projects.`})}),`\n`,_jsx(Heading,{level:`3`,id:`cuboids-across-time`,children:`Cuboids across time`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Cuboids across time`}),` tutorial teaches you the full multi-frame cuboid tracking workflow. It takes approximately 5 minutes and covers the following steps:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Select an existing cuboid in the 3D view`}),`\n`,_jsx(_components.li,{children:`Copy the cuboid to the clipboard`}),`\n`,_jsxs(_components.li,{children:[`Navigate forward several frames and place the copied cuboid using `,_jsx(_components.code,{children:`Shift + Click`})]}),`\n`,_jsx(_components.li,{children:`Interpolate between keyframes to fill in-between frames`}),`\n`,_jsx(_components.li,{children:`View the cuboid’s trajectory in the 3D view and on the timeline`}),`\n`,_jsxs(_components.li,{children:[`Enable `,_jsx(_components.strong,{children:`Auto interpolate`}),` in the editor settings so adjustments re-interpolate automatically`]}),`\n`,_jsx(_components.li,{children:`Edit the trajectory in grid view by dragging the cuboid in any frame column`}),`\n`,_jsxs(_components.li,{children:[`Set the front face on the current frame using `,_jsx(_components.code,{children:`Alt + Click`}),`, or on every frame using `,_jsx(_components.code,{children:`Alt + Shift + Click`})]}),`\n`,_jsxs(_components.li,{children:[`Toggle a keyframe using `,_jsx(_components.code,{children:`Alt + K`})]}),`\n`,_jsx(_components.li,{children:`Lock the cuboid size to keep it uniform across all frames`}),`\n`,_jsxs(_components.li,{children:[`Mark the object as static using `,_jsx(_components.code,{children:`Alt + S`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The tutorial auto-advances when the editor detects you have completed each step. Step 5 (view the trajectory) requires you to click `,_jsx(_components.strong,{children:`OK`}),` to advance manually. After you finish a step, you can click its title to re-expand and re-read the instructions at any time.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To start the tutorial:`})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Help panel`,children:_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Help`}),` button in the top toolbar.`]})}),_jsx(Step,{title:`Navigate to Tutorials`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Tutorials`}),` in the Help panel.`]})}),_jsx(Step,{title:`Start the tutorial`,children:_jsxs(_components.p,{children:[`Find the `,_jsx(_components.strong,{children:`Cuboids across time`}),` card and click `,_jsx(_components.strong,{children:`Start`}),`.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`1`,id:`label-and-review-scenes`,children:`Label and Review Scenes`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`We strongly recommend that Taskers use a mouse when annotating or reviewing Scenes. Using a mouse makes annotating or reviewing Scenes significantly easier.`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Start task`}),` or `,_jsx(_components.strong,{children:`Initiate`}),` to annotate a PCD data unit.`]}),`\n`,_jsx(_components.p,{children:`The Label Editor opens with a PCD data unit ready for annotation.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Use the Editor controls and Toolbar buttons to navigate the PCD workspace.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Select an object label from the left-hand menu and begin annotating the PCD data unit.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Use your input device (mouse or trackpad) to create a label in the PCD workspace.`}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Annotate Scenes manually`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`be8e5038ca854f8788a477711fa5d493`,title:`Annotate - Scenes Manually`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/be8e5038ca854f8788a477711fa5d493-c0b6842d9ce2e0d3.jpg`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Annotate Scenes automatically`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`238e9b19f22146d4ae4a58e6f04120d0`,title:`Annotate - Scenes Automatically`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/238e9b19f22146d4ae4a58e6f04120d0-657a8d906db61a23.jpg`})}),`\n`,_jsx(Heading,{level:`3`,id:`recommended-method-of-annotating-pcd`,children:`Recommended Method of Annotating PCD`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`762c12cffccf466e80f2ff9f73a27a5e`,title:`Recommended Method for Point Cloud Annotation`,thumbnail:`https://www.loom.com/v1/videos/762c12cffccf466e80f2ff9f73a27a5e/thumbnail.jpg`})}),`\n`,_jsx(Heading,{level:`2`,id:`scene-layouts`,children:`Scene Layouts`}),`\n`,_jsxs(_components.p,{children:[`Layouts can be configured for both `,_jsx(_components.strong,{children:`MCAP recordings`}),` (Beta) and `,_jsx(_components.strong,{children:`composite Scenes`}),`. Set the camera topics, 3D viewer, numeric plots, and timeline channels with the Python SDK. See `,_jsx(_components.a,{href:`/platform-documentation/Curate/add-files/mcap#configure-an-mcap-layout`,children:`MCAP layout examples`}),` for the configuration script and a visual comparison of the default and custom layouts.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Configured layout`,id:`configured-layout`,children:_jsx(_components.p,{children:`If a Scene has a configured layout, the Label Editor uses it to arrange 3D, camera, and time-series tiles and to select time-series channels for the timeline. If the configuration only specifies timeline channels, the editor retains the default tile arrangement and adds those channels to the timeline.`})}),_jsx(Accordion,{title:`Image / Video without 3D channels`,id:`image-video-without-3d-channels`,children:_jsxs(_components.p,{children:[`For Scenes that contain image or video channels but no 3D channels, the Label Editor automatically arranges up to eight camera views in rows of up to two tiles. Channels with matching `,_jsx(_components.code,{children:`left`}),` and `,_jsx(_components.code,{children:`right`}),` names appear together first, with the left view before the right view. The remaining channels are ordered alphabetically, and an unpaired final channel appears in its own row.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`time-series-in-scenes`,children:`Time Series in Scenes`}),`\n`,_jsx(_components.p,{children:`Time series charts let you compare numeric telemetry with the camera and point cloud views in the same Scene. The shared playback cursor keeps the chart and sensor views aligned.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Composite Scenes:`}),` attach a CSV time series stream alongside the camera and point cloud streams when you `,_jsx(_components.a,{href:`/platform-documentation/Curate/add-files/add-pcd-data`,children:`register the Scene`}),`, then select its numeric columns in the Scene layout. Each selected column becomes a chart channel.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`MCAP Scenes:`}),` select numeric sub-channels in the Scene layout. For a robot recording, this could be forward velocity (`,_jsx(_components.code,{children:`/spot/cmd_vel.linear.x`}),`) and turning velocity (`,_jsx(_components.code,{children:`/spot/cmd_vel.angular.z`}),`). The field paths depend on the recording.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Place the selected channels in the `,_jsx(_components.strong,{children:`timeline`}),` to view telemetry below the sensor views, or in `,_jsx(_components.strong,{children:`chart tiles`}),` to view them alongside other tiles. A layout that specifies only timeline channels keeps the default sensor arrangement above the chart.`]}),`\n`,_jsx(OptimizedImage,{src:`https://storage.googleapis.com/docs-media.encord.com/static/img/annotate/time-series/2026-10-13/mcap-telemetry.png`,alt:`MCAP robot camera view with synchronized forward velocity and turning velocity charts`}),`\n`,_jsxs(_components.p,{children:[`To label an event, select a `,_jsx(_components.strong,{children:`Time range`}),` class and drag across its interval on the chart. For example, mark a change in velocity while inspecting the corresponding camera frames. Select the resulting range to review its boundaries and annotation attributes.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/platform-documentation/Annotate/annotate-label-editor/annotate-time-series`,children:`Time Series`}),` for CSV column requirements, channel customization, and a recording of the range annotation workflow.`]}),`\n`,_jsx(Heading,{level:`1`,id:`navigating-in-the-scene`,children:`Navigating in the Scene`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Context-sensitive keyboard hints display in the top-right corner of the 3D view.`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Move`}),`:`]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(`kbd`,{children:`WASD`}),` keys to move along the X axis in the workspace.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Elevate`}),`:`]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(`kbd`,{children:`QE`}),` keys to move along the Y axis in the workspace.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Rotate`}),`:`]}),`\n`,_jsx(_components.p,{children:`Hold down the scroll wheel and move your mouse to rotate.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Pan`}),`:`]}),`\n`,_jsx(_components.p,{children:`Hold down the right mouse button and move your mouse to pan around.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Go Faster`}),`:`]}),`\n`,_jsxs(_components.p,{children:[`Hold `,_jsx(`kbd`,{children:`Shift`}),` while using the `,_jsx(`kbd`,{children:`WASD`}),`, `,_jsx(`kbd`,{children:`QE`}),`, or camera movement keys to move faster.`]}),`\n`,_jsx(Heading,{level:`2`,id:`polylines`,children:`Polylines`}),`\n`,_jsx(_components.p,{children:`Polylines appear in the orthographic side views in the side work area. Select a polyline to center the side views on its bounds and display its vertex controls. From a side view, you can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Create a polyline by selecting its Ontology class, clicking to place each vertex, and pressing `,_jsx(`kbd`,{children:`Enter`}),` to finish.`]}),`\n`,_jsx(_components.li,{children:`Click a segment to add a vertex, or right-click a vertex to remove it.`}),`\n`,_jsx(_components.li,{children:`Drag a vertex control to move it within the side view’s plane.`}),`\n`,_jsx(_components.li,{children:`Use the selected polyline’s translation and rotation controls to move or rotate it within the side view’s plane.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`cuboids`,children:`Cuboids`}),`\n`,_jsx(_components.p,{children:`Click a cuboid in the 3D view to select it. If one cuboid is inside another, clicking the inner cuboid selects it directly while the outer cuboid is unselected. When the outer cuboid is selected, its face-dragging controls take precedence.`}),`\n`,_jsxs(_components.p,{children:[`To resize a selected cuboid along one axis while keeping the opposite side fixed, hold `,_jsx(`kbd`,{children:`Ctrl`}),` and drag an axis handle. This works in the main 3D view, orthographic side views, camera views, and grid view, including when the cuboid has zero depth along that axis. The axis handles use square tips while resize mode is active. Cuboids with a fixed-size constraint remain in translation mode.`]}),`\n`,_jsx(Heading,{level:`3`,id:`automatically-create-cuboids`,children:`Automatically Create Cuboids`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`c87ee9f981894709ac7ad725700ce3ae`,title:`Auto Create Cuboids with One Click`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/c87ee9f981894709ac7ad725700ce3ae-8cb710457d742bce.jpg`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To automatically create a cuboid:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Select a cuboid object from the left-hand navigation.\nA dialog box appears.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`One-click cuboid`}),` button from the dialog.`]}),`\n`,_jsxs(Tip,{children:[`Use the hotkey `,_jsx(`kbd`,{children:`J`}),` instead of clicking the button.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Hover over an object in the point cloud workspace.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Click the previewed cuboid to create the cuboid in the Scene.`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`smart-interpolation`,children:`Smart Interpolation`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`67bb0b8e453b4e4e8bbee49941b97ac0`,title:`Smart Interpolation of Cuboids`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/67bb0b8e453b4e4e8bbee49941b97ac0-d36956e0269aebfd.jpg`})}),`\n`,_jsx(_components.p,{children:`Smart interpolation tracks a cuboid across frames directly from the point cloud. Instead of placing the cuboid manually on every keyframe, you click a cluster of points on different frames. Encord fits a cuboid to each cluster, then uses the motion of the cluster to interpolate the object’s position on every frame in between.`}),`\n`,_jsxs(_components.p,{children:[`Smart interpolation is available for `,_jsx(_components.strong,{children:`cuboid`}),` objects in Scenes.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Smart interpolation uses a fitted ground mesh to track objects accurately as the terrain rises and falls. If no ground mesh is present, the `,_jsx(_components.strong,{children:`Smart interpolation`}),` panel shows a reminder to add one. Use `,_jsx(_components.strong,{children:`Adjust ground`}),` to fit a ground mesh that follows the terrain before you start adding keyframes.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To track a cuboid with smart interpolation:`})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create a cuboid keyframe`,children:_jsxs(_components.p,{children:[`Place a cuboid on the object in at least one frame. You can draw it manually or use `,_jsx(_components.a,{href:`#automatically-create-cuboids`,children:`One-click cuboid`}),`.`]})}),_jsxs(Step,{title:`Start smart interpolation`,children:[_jsxs(_components.p,{children:[`Right-click the cuboid and select `,_jsx(_components.strong,{children:`Smart interpolation`}),` (the magic-wand icon) from the context menu. The `,_jsx(_components.strong,{children:`Smart interpolation`}),` panel opens.`]}),_jsx(Note,{children:`Smart interpolation is only available for a single, unlocked cuboid on an editable label in a Scene. It is not available for locked or approved labels, or in review and view-only modes.`})]}),_jsxs(Step,{title:`Add keyframes by clicking clusters`,children:[_jsx(_components.p,{children:`Move to another frame and click a cluster of points that belongs to the object. Encord adds a keyframe and fits a cuboid to that cluster. Repeat on as many frames as you need — the more keyframes you add, the more closely the track follows the object.`}),_jsxs(Tip,{children:[`Expand `,_jsx(_components.strong,{children:`Show how-to`}),` in the panel for an illustrated reminder: `,_jsx(_components.em,{children:`Click a cluster of points to add a keyframe. Right-click a new keyframe to remove it.`})]})]}),_jsx(Step,{title:`Adjust and finish`,children:_jsxs(_components.p,{children:[`Fine-tune any keyframe (see below), then click `,_jsx(_components.strong,{children:`Finish`}),` to write the interpolated track to the object. `,_jsx(_components.strong,{children:`Finish`}),` becomes available once you have at least two keyframes. To leave without saving, click `,_jsx(_components.strong,{children:`Close`}),` (the `,_jsx(_components.strong,{children:`X`}),` in the panel).`]})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Adjust keyframes in the interpolation preview`}),`:`]}),`\n`,_jsxs(_components.p,{children:[`When a cuboid keyframe is active in the interpolation preview, use the standard cuboid controls to move, resize, or rotate it. Translation is available on all three axes, so the cuboid is not restricted to the ground plane. You can also use the keyboard shortcuts shown in the top-right corner of the 3D view, including `,_jsx(`kbd`,{children:`R`}),` to switch between translation and rotation and `,_jsx(`kbd`,{children:`X`}),`, `,_jsx(`kbd`,{children:`Y`}),`, or `,_jsx(`kbd`,{children:`Z`}),` to constrain the adjustment to an axis.`]}),`\n`,_jsx(_components.p,{children:`Enabled orthographic side views track the current preview cuboid on both keyframes and interpolated frames, helping you inspect its fit from multiple angles as you move through the preview.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Lock the cuboid size`}),`:`]}),`\n`,_jsxs(_components.p,{children:[`By default, smart interpolation can resize the cuboid to fit the cluster on each keyframe. To keep the cuboid a consistent size across the whole track — useful for rigid objects such as vehicles — click the `,_jsx(_components.strong,{children:`Lock size`}),` toggle (the padlock icon) in the top-right of the panel. Click it again to unlock. The size lock is stored per object, so it is remembered the next time you interpolate that cuboid.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Remove a keyframe`}),`:`]}),`\n`,_jsx(_components.p,{children:`To remove a keyframe you added during smart interpolation, right-click it. The remaining keyframes are re-interpolated automatically.`}),`\n`,_jsx(Heading,{level:`3`,id:`place-a-selected-cuboid-on-an-empty-frame`,children:`Place a selected cuboid on an empty frame`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`792da671a61a489ab73dfa799a8bc26f`,title:`Annotate - PCD - Add a Selected Cuboid on an Empty Frame`,thumbnail:`https://www.loom.com/v1/videos/792da671a61a489ab73dfa799a8bc26f/thumbnail.jpg`})}),`\n`,_jsxs(_components.p,{children:[`When you select a cuboid and navigate to any frame where it has no annotation, the 3D view displays a ghost cuboid and keeps the cuboid pane open. Click the ghost to accept its displayed position, drag it to adjust the position before placing it, or hold `,_jsx(`kbd`,{children:`Shift`}),` to preview it at the pointer and click to place it. Before placing the cuboid, press `,_jsx(`kbd`,{children:`R`}),` or `,_jsx(`kbd`,{children:`T`}),` to rotate it in opposite directions in 5-degree steps. Each placement method creates a keyframe for the selected cuboid on that frame. Between existing keyframes, the ghost uses the interpolated position, orientation, and size. Before the first keyframe or after the last keyframe, it uses the geometry from that nearest keyframe. The full trajectory remains visible while you position the ghost, and the path through the ghost updates as you drag it or preview placement with `,_jsx(`kbd`,{children:`Shift`}),`. The ghost updates when you edit or undo changes to the surrounding keyframes.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cuboid-trajectory-in-grid-view`,children:`Cuboid trajectory in grid view`}),`\n`,_jsx(_components.p,{children:`When you work in grid view with a cuboid selected, the top-down (bird’s-eye) tile displays the selected cuboid’s full trajectory path as a semi-transparent gray line. This gives you a spatial reference for the object’s direction of travel across all frames, making it easier to verify and correct cuboid orientation without switching back to the main 3D view.`}),`\n`,_jsxs(_components.p,{children:[`The grid-view timeline shows the frame ranges for the selected cuboid. While grid view is open, playback and frame navigation stay between the cuboid’s first and last annotated frames. Use the frame skip control to move by one frame for precise adjustments or by five frames to move one grid window at a time. In an MCAP Scene, grid columns and frame steps follow the timeline snap mode rather than fixed frames. See `,_jsx(_components.a,{href:`/platform-documentation/Curate/add-files/mcap#timeline-snapping`,children:`Timeline Snapping`}),`.`]}),`\n`,_jsx(_components.p,{children:`Use the range handles on the timeline to choose which frames appear as grid columns. Drag either handle to adjust that side of the range, or scroll over the timeline to expand or contract both sides around the current frame. Grid view supports up to 30 columns and saves your selected range for the next time you open it.`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Views`}),` in the bottom-right corner of grid view to choose which rows appear. You can show any combination of `,_jsx(_components.strong,{children:`Front`}),`, `,_jsx(_components.strong,{children:`Top`}),`, `,_jsx(_components.strong,{children:`Left`}),`, and `,_jsx(_components.strong,{children:`Right`}),`, but at least one row must remain selected. For Scenes with camera images, you can also select `,_jsx(_components.strong,{children:`Best camera`}),`. This adds a camera row that chooses the camera with the best view of the selected cuboid for each frame and focuses the image on that cuboid. If the cuboid is absent from a frame or no camera sees it, the corresponding cell displays a message instead.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The selected cuboid’s trajectory path appears regardless of the `,_jsx(_components.strong,{children:`Show Cuboid Trajectories`}),` setting. The setting controls whether other eligible cuboid trajectories also appear in the main 3D view. In grid view, the selected path only appears in the top-down tile; it does not appear in side-view tiles (front, back, left, right) or camera-view tiles.`]})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Use the trajectory overlay in the top-down grid tile to spot heading errors across keyframes — for example, when a vehicle’s cuboid orientation does not match its direction of travel. You can correct the orientation directly in grid view without switching back to the main 3D view.`})}),`\n`,_jsx(Heading,{level:`3`,id:`copy-and-pasting-cuboids`,children:`Copy and pasting Cuboids`}),`\n`,_jsxs(_components.p,{children:[`Copy labels from within the same frame using `,_jsx(`kbd`,{children:`Command + C`}),` and `,_jsx(`kbd`,{children:`Command + Shift + V`}),` on Mac, or `,_jsx(`kbd`,{children:`Ctrl + C`}),` and `,_jsx(`kbd`,{children:`Ctrl + Shift + V`}),` on Windows.`]}),`\n`,_jsx(_components.p,{children:`You can select multiple cuboids, copy them as a group, and paste them all at once onto any frame. The copied group moves together as a preview that follows your cursor, preserving each cuboid’s relative position and orientation.`}),`\n`,_jsxs(_components.p,{children:[`Enable `,_jsx(_components.strong,{children:`Permanent drawing (existing instances)`}),` in the Drawing settings to streamline copying cuboids across frames. Paste with `,_jsx(`kbd`,{children:`Ctrl + V`}),` on Windows or `,_jsx(`kbd`,{children:`Command + V`}),` on Mac to extend the existing instances and advance by the configured `,_jsx(_components.strong,{children:`Frame skip interval`}),`. You can then place the copied cuboids again with `,_jsx(`kbd`,{children:`Shift + Click`}),`, and the Label Editor advances by the same interval after each placement. To create new instances on the same frame without advancing, use `,_jsx(`kbd`,{children:`Ctrl + Shift + V`}),` on Windows or `,_jsx(`kbd`,{children:`Command + Shift + V`}),` on Mac.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Only cuboid objects are included in a bulk copy/paste. If your multi-selection includes non-cuboid objects (such as polygons or polylines), those objects are not copied.`})}),`\n`,_jsx(_components.p,{children:`Copy/paste keyboard shortcuts:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`Windows`}),_jsx(_components.th,{children:`Mac`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Copy selected cuboid(s)`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Ctrl + C`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Command + C`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Paste as existing instance(s)`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Ctrl + V`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Command + V`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Paste as new instance(s) on the same frame`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Ctrl + Shift + V`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Command + Shift + V`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Place copied cuboid(s)`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Shift + Click`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Shift + Click`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Yaw-rotate group before placement`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`R`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`R`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Select all cuboids`}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Ctrl + A`})}),_jsx(_components.td,{children:_jsx(`kbd`,{children:`Command + A`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Clear clipboard`}),_jsxs(_components.td,{children:[_jsx(`kbd`,{children:`Ctrl + C`}),` (nothing selected)`]}),_jsxs(_components.td,{children:[_jsx(`kbd`,{children:`Command + C`}),` (nothing selected)`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`stereo-cuboid-tool`,children:`Stereo Cuboid Tool`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`435f96f6308648078cfdfe245c063ad1`,title:`Annotate - Stereo 3D Scenes`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/435f96f6308648078cfdfe245c063ad1-4896c44f2ad9d507.jpg`})}),`\n`,_jsxs(_components.p,{children:[`The stereo cuboid tool provides an assisted workflow for creating and editing 3D cuboid annotations using camera image data. The stereo tool button, `,_jsx(_components.strong,{children:`Edit in stereo mode`}),` context-menu option, and associated keyboard shortcuts are available in any Scene that contains at least one image or video channel.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`The stereo cuboid tool is available for Scene-type datasets only. It requires edit permissions on the label and is not available on approved labels.`})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The stereo tool checks calibration data for each image at fit time. If your single camera image lacks calibration data, the tool may be available but the stereo fit could fail. Ensure your image has valid calibration data for best results.`})}),`\n`,_jsxs(Tip,{children:[`If you work with wide-angle or fisheye camera lenses and camera tiles appear cropped, enable `,_jsx(_components.strong,{children:`Render full camera image`}),` in the `,_jsx(_components.a,{href:`/platform-documentation/Annotate/annotate-label-editor/annotate-label-editor-settings-shortcuts#scene`,children:`Editor settings`}),` panel to display the full captured area.`]}),`\n`,_jsx(_components.p,{children:`** Stereo cuboid keyboard shortcuts**`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`Windows`}),_jsx(_components.th,{children:`Mac`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Activate stereo tool`}),_jsxs(_components.td,{children:[`Stereo hotkey (`,_jsx(_components.code,{children:`tools:stereo`}),`)`]}),_jsxs(_components.td,{children:[`Stereo hotkey (`,_jsx(_components.code,{children:`tools:stereo`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Toggle stereo preview`}),_jsxs(_components.td,{children:[`Stereo preview toggle (`,_jsx(_components.code,{children:`tools:stereo-preview-toggle`}),`)`]}),_jsxs(_components.td,{children:[`Stereo preview toggle (`,_jsx(_components.code,{children:`tools:stereo-preview-toggle`}),`)`]})]})]})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Edit in stereo mode`})}),`\n`,_jsxs(_components.p,{children:[`To edit an existing cuboid in stereo mode, right-click the cuboid annotation and select `,_jsx(_components.strong,{children:`Edit in stereo mode`}),` from the context menu. This option is available in any Scene with at least one image or video channel.`]}),`\n`,_jsx(_components.p,{children:`Drag a seeded corner in one camera view to update the cuboid preview. The matching untouched corner in another camera view follows the fitted cuboid, reducing the number of adjustments you need to make. If you then drag that matching corner, it becomes an independent observation for the fit. The tool gives your moved or added points more influence than untouched seeded points, can fit a cuboid with zero depth, and omits corners on faces viewed at angles that are too shallow for reliable placement.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`point-cloud-segmentation`,children:`Point Cloud Segmentation`}),`\n`,_jsx(Heading,{level:`3`,id:`automatically-create-3d-segmentations`,children:`Automatically Create 3D Segmentations`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`0c04dc688c8a4820a3969a6f05379284`,title:`Auto Create 3D Segmentations`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/0c04dc688c8a4820a3969a6f05379284-73deacd0face957d.jpg`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To automatically create a 3D segmentation:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Select a 3D segmentation object from the left-hand navigation.\nA dialog box appears.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`One-click segmentation`}),` button from the dialog.`]}),`\n`,_jsxs(Tip,{children:[`Use the hotkey `,_jsx(`kbd`,{children:`J`}),` instead of clicking the button.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Hover over an object in the point cloud workspace.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Click the previewed segmentation to create the segmentation in the Scene.`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`merge-3d-segmentations`,children:`Merge 3D Segmentations`}),`\n`,_jsxs(_components.p,{children:[`You can merge two or more 3D segmentations of the same Ontology class into one object. Select the segmentations in the timeline or the left sidebar, right-click the selection, and choose `,_jsx(_components.strong,{children:`Merge segmentations into`}),` or `,_jsx(_components.strong,{children:`Merge into`}),`. Then select the segmentation that you want to keep as the target.`]}),`\n`,_jsx(_components.p,{children:`The target keeps its object identity and class, and its segmentation includes all points from the merged objects. The other objects are removed.`}),`\n`,_jsx(Heading,{level:`3`,id:`scene-slicer`,children:`Scene Slicer`}),`\n`,_jsxs(_components.p,{children:[`The Scene slicer isolates point cloud data so you can focus on a region and prevent points outside it from being selected for annotation. Click `,_jsx(_components.strong,{children:`Isolate points`}),` in the 3D scene toolbar, then choose one of the following tools:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Box`}),`: Drag a box around the points you want to keep.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Polygon`}),`: Click around the points you want to keep, then press `,_jsx(`kbd`,{children:`Enter`}),` or click `,_jsx(_components.strong,{children:`Submit`}),` to close the polygon.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Split`}),`: Click two points to draw a line, then click the side you want to keep.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`You can combine up to six slices. Use `,_jsx(_components.strong,{children:`Reset`}),` in the `,_jsx(_components.strong,{children:`Isolate points`}),` pane to remove all slices, or use undo and redo to step through individual slicing changes. A polygon can contain up to 24 points.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Press `,_jsx(`kbd`,{children:`Escape`}),` to close the `,_jsx(_components.strong,{children:`Filters`}),`, `,_jsx(_components.strong,{children:`Adjust ground`}),`, or `,_jsx(_components.strong,{children:`Isolate points`}),` pane. If you are fitting a ground plane from three points, the first press cancels the fit and leaves `,_jsx(_components.strong,{children:`Adjust ground`}),` open; press `,_jsx(`kbd`,{children:`Escape`}),` again to close the pane.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`toolbar`,children:`Toolbar`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`4f68b31599f74d5b95612edc20c3e39a`,title:`Point Cloud Toolbar in Label Editor`,thumbnail:`https://www.loom.com/v1/videos/4f68b31599f74d5b95612edc20c3e39a/thumbnail`})}),`\n`,_jsx(Heading,{level:`3`,id:`setting-cuboid-orientation`,children:`Setting cuboid orientation`}),`\n`,_jsx(_components.p,{children:`You can show or hide the orientation of cuboids using the “cuboid orientation” setting:`}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`a81402be62a7428baf485ad843e2c2d2`,title:`Setting cuboid orientation`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/a81402be62a7428baf485ad843e2c2d2-3ecd454d3493d0bb.jpg`})}),`\n`,_jsxs(_components.p,{children:[`You can change the front face of a cuboid on the current frame by holding `,_jsx(`kbd`,{children:`Alt`}),` (on Windows) or `,_jsx(`kbd`,{children:`Option`}),` (on Mac) and clicking any face of the cuboid. The frame becomes a keyframe, and automatic orientation from motion does not override your selection during the current editor session. After you reopen the editor, a later automatic trajectory update may change that frame. This works whether the cuboid is selected or unselected.`]}),`\n`,_jsxs(_components.p,{children:[`When you hold `,_jsx(`kbd`,{children:`Alt`}),` / `,_jsx(`kbd`,{children:`Option`}),`, the drag-handle controls hide automatically so your click targets the cuboid face rather than a resize handle.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`To change the front face across every frame where the cuboid exists, hold `,_jsx(`kbd`,{children:`Alt`}),`+`,_jsx(`kbd`,{children:`Shift`}),` (on Windows) or `,_jsx(`kbd`,{children:`Option`}),`+`,_jsx(`kbd`,{children:`Shift`}),` (on Mac) while clicking a face. Interpolated frames retain their interpolated status.`]})}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`178f3470f0e64db9975404563050eded`,title:`Change cuboid front face`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/178f3470f0e64db9975404563050eded-f3a4a730c307c6e1.jpg`})}),`\n`,_jsx(Heading,{level:`3`,id:`point-cloud-filters`,children:`Point Cloud Filters`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Filters`}),` in the toolbar to filter points by motion or height.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Color filter`,id:`color-filter`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Color filter`}),` button appears in the 3D scene editor toolbar only when the loaded point cloud contains color or intensity data.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`The color filter applies globally to all loaded point clouds in the scene. When you enable the filter, points outside the selected range are hidden in the viewport and cannot be selected by any segmentation tool.`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Enabling the filter`})}),_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Color filter`}),` button in the toolbar to toggle the filter on or off.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Filter modes`})}),_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`Color filter`}),` popover (click the chevron next to the button) to configure the filter. Select a mode using the mode selector at the top of the popover:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RGB`}),` — Filter points by red, green, and blue channel ranges (0–255 per channel). Available with `,_jsx(_components.strong,{children:`Provided`}),`, `,_jsx(_components.strong,{children:`Image color`}),`, and `,_jsx(_components.strong,{children:`Sensor`}),` point cloud color modes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`HSV`}),` — Filter points by hue, saturation, and value ranges. Available with `,_jsx(_components.strong,{children:`Provided`}),`, `,_jsx(_components.strong,{children:`Image color`}),`, and `,_jsx(_components.strong,{children:`Sensor`}),` point cloud color modes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Intensity`}),` — Filter points by intensity range (0–100%). Available when the point cloud contains intensity data.`]}),`\n`]}),_jsx(_components.p,{children:`Use the range sliders to set the minimum and maximum values for each channel. Only points whose color or intensity falls within all specified ranges remain visible.`}),_jsxs(_components.p,{children:[`RGB and HSV filtering uses the colors displayed by the active point cloud color mode. It is unavailable with `,_jsx(_components.strong,{children:`Solid`}),` and `,_jsx(_components.strong,{children:`Height`}),`. Use the height filter to filter points by height. Changing the point cloud color mode resets the RGB and HSV filter ranges.`]}),_jsxs(_components.p,{children:[`When filtering by intensity while point intensity is not displayed, the editor prompts you to enable `,_jsx(_components.strong,{children:`Display point intensity`}),` in the scene settings.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Eyedropper (Pick color from scene)`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Pick color from scene`}),` in the popover to activate the eyedropper. Then click any point in the 3D viewport to seed the filter with that point’s color or intensity. The sliders update automatically to a range centered on the sampled value.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Composition with other filters`})}),_jsx(_components.p,{children:`The color filter works together with the height filter and slicer planes. A point must pass all active filters to remain visible and selectable.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Segmentation tool integration`})}),_jsx(_components.p,{children:`When the color filter is active, the lasso, brush, and cuboid segmentation tools automatically exclude filtered-out points from selection. Only visible points can be selected.`}),_jsx(Note,{children:_jsx(_components.p,{children:`If the cuboid tool cannot resolve a point cloud in the rendered scene, it falls back to unfiltered selection for that cloud.`})})]}),_jsxs(Accordion,{title:`Motion filter`,id:`motion-filter`,children:[_jsx(Heading,{level:`3`,id:`motion-filtering`,children:`Motion filtering`}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Motion`}),`, use `,_jsx(_components.strong,{children:`Show dynamic points`}),` and `,_jsx(_components.strong,{children:`Show static points`}),` to control which point classes the editor displays. When you change either setting for the first time, the editor analyzes the scene to classify its points.`]})]}),_jsxs(Accordion,{title:`Height filter`,id:`height-filter`,children:[_jsx(Heading,{level:`3`,id:`height-filtering`,children:`Height filtering`}),_jsx(_components.p,{children:`The height filter lets you restrict which points the editor displays and which points segmentation tools can select, based on each point’s height above a reference surface.`}),_jsx(Heading,{level:`4`,id:`height-filter-modes`,children:`Height filter modes`}),_jsx(_components.p,{children:`The height filter offers two reference modes. The mode selector label updates dynamically depending on which ground reference is currently active:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Mode`}),_jsx(_components.th,{children:`When available`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Ground plane`})}),_jsx(_components.td,{children:`Always`}),_jsxs(_components.td,{children:[`Measures each point’s height relative to the flat (or tilted) ground plane. The label changes to `,_jsx(_components.strong,{children:`Ground mesh`}),` when a fitted ground mesh is active.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Ground mesh`})}),_jsx(_components.td,{children:`Only when a fitted ground mesh is active`}),_jsx(_components.td,{children:`Measures each point’s height above the local mesh surface rather than a flat plane. Use this mode for curved roads, slopes, and uneven terrain.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`World axes`})}),_jsx(_components.td,{children:`Always`}),_jsx(_components.td,{children:`Measures each point’s height along the world vertical axis, ignoring any ground plane tilt or ground mesh.`})]})]})]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Ground mesh`}),` option appears in the mode selector when you activate the automatically detected mesh using `,_jsx(_components.strong,{children:`Adjust ground`}),` → `,_jsx(_components.strong,{children:`Use ground mesh`}),`. If no ground mesh is active, the selector shows `,_jsx(_components.strong,{children:`Ground plane`}),` instead.`]})}),_jsx(Heading,{level:`3`,id:`using-the-height-filter-with-a-ground-mesh`,children:`Using the height filter with a ground mesh`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Fit a ground mesh`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Adjust ground`}),` in the toolbar, then click `,_jsx(_components.strong,{children:`Use ground mesh`}),` when the automatically detected mesh is ready.`]})}),_jsx(Step,{title:`Open the height filter`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Adjust ground`}),` pane, click `,_jsx(_components.strong,{children:`Open filters`}),`, then expand `,_jsx(_components.strong,{children:`Height`}),`.`]})}),_jsx(Step,{title:`Select Ground mesh mode`,children:_jsxs(_components.p,{children:[`In the mode selector, click `,_jsx(_components.strong,{children:`Ground mesh`}),`. The histogram and min/max range update to reflect heights above the mesh surface.`]})}),_jsx(Step,{title:`Set your height bounds`,children:_jsxs(_components.p,{children:[`Drag the slider or type values into the `,_jsx(_components.strong,{children:`Min`}),` and `,_jsx(_components.strong,{children:`Max`}),` inputs to define the height range you want to keep visible. To hide points identified as ground, click `,_jsx(_components.strong,{children:`Remove ground`}),`. This sets the minimum height from the fitted mesh’s detected ground level.`]})})]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Lasso (freehand) and brush segmentation tools respect the ground-mesh-relative height filter when `,_jsx(_components.strong,{children:`Ground mesh`}),` mode is active. Only points above the mesh surface within your defined range are selectable.`]})}),_jsx(Info,{children:_jsx(_components.p,{children:`The height filter range initializes to the 0.5th–99.5th percentile of point heights in the scene, giving you a wider default range that includes more of the point cloud.`})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`label-branches`,children:`Label Branches`}),`\n`,_jsxs(_components.p,{children:[`Label branches let you keep multiple versions of a Project’s labels side-by-side. Use them to preserve a labeled state before a re-labeling pass, run an experiment without disturbing `,_jsx(_components.code,{children:`main`}),`, or hold a reviewer-only copy of labels.`]}),`\n`,_jsx(_MdxComponentBoundary,{name:`LoomVideo`,children:_jsx(LoomVideo,{id:`795d49df662946d0b85bad2adc57ae2a`,title:`Create \u0026 Display label branches`,thumbnail:`https://cdn.loom.com/sessions/thumbnails/795d49df662946d0b85bad2adc57ae2a-0a79de7da81c86ba.jpg#t=0.1`})}),`\n`,_jsx(Heading,{level:`3`,id:`create-label-branches`,children:`Create Label Branches`}),`\n`,_jsxs(_components.p,{children:[`Label branches are created in the `,_jsx(_components.a,{href:`/platform-documentation/Annotate/annotate-label-editor/annotate-label-editor-annotate#branch-overlay-labels`,children:`Label Checkpoint Workflow stage`}),`, or using the `,_jsx(_components.a,{href:`/sdk-documentation/sdk-labels/sdk-label-versioning`,children:`SDK`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`view-label-branches`,children:`View Label Branches`}),`\n`,_jsx(`div`,{class:`mint-flex mint-justify-center`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/docs-media.encord.com/static/img/branch-overlay.png`,width:`600`})}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`This feature is only available to Workspace and Project Admins, and Team Managers in the REVIEW and COMPLETE Workflow stages.`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To view labels from other branches:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Branches`}),` button in the Label Editor header.\nThe branch overlay panel opens.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Select the checkboxes for the branches you want to overlay.\nEach branch displays with a unique color indicator.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Click outside the panel to close it.\nThe selected branch labels now appear as read-only overlays in the 3D scene.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Press `,_jsx(`kbd`,{children:`Alt`}),` + `,_jsx(`kbd`,{children:`B`}),` to hide all overlaid branches. Press it again to restore your previous selection. If you have not selected branches in the current task, the shortcut overlays all available branches. The shortcut is unavailable when there are no branches to overlay.`]}),`\n`,_jsx(_components.p,{children:`In Projects that use a Form layout, each selected branch’s classification answers also appear beneath the corresponding field, tagged with the branch’s name and color.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Branch label comparison is available in Review and Complete editor views — no feature flag or admin configuration required. Overlay labels are read-only. You cannot edit annotations from other branches directly in the overlay view.`})}),`\n`,_jsx(Info,{children:`Audio and text-document modalities do not yet display branch names on overlay labels. The vertical fan-out uses fixed pixel offsets and is not collision-aware; in very dense scenes with many overlapping annotations, labels from multiple branches may still be difficult to read.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`1`,id:`editor-actions`,children:`Editor Actions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Clear scene media cache`,id:`clear-scene-media-cache`,children:[_jsxs(_components.p,{children:[`For composite Scenes, select `,_jsx(_components.strong,{children:`Clear scene media cache`}),` from the Actions menu to remove the current Scene’s cached point cloud and image files from your browser. The editor downloads the Scene media again and reloads the Scene, allowing you to view updates made to the source files.`]}),_jsxs(_components.p,{children:[`Open the Actions menu with `,_jsx(`kbd`,{children:`Ctrl`}),` + `,_jsx(`kbd`,{children:`K`}),` (Windows) or `,_jsx(`kbd`,{children:`Cmd`}),` + `,_jsx(`kbd`,{children:`K`}),` (Mac), then search for `,_jsx(_components.strong,{children:`Clear scene media cache`}),`.`]})]}),_jsxs(Accordion,{title:`Center content`,id:`center-content`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`Shift + C`})]}),_jsxs(_components.p,{children:[`Centers the camera on the selected object (cuboid, keypoint, or polyline). With no object selected, the camera centers on the ego frame when `,_jsx(_components.strong,{children:`Follow ego`}),` is enabled and you are viewing a single frame. When `,_jsx(_components.strong,{children:`Follow ego`}),` is disabled or the merged point cloud is displayed, the camera centers on the geometric center of the points.`]})]}),_jsxs(Accordion,{title:`Align camera with tile`,id:`align-camera-with-tile`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`ALT/OPTION + T`})]}),_jsx(_components.p,{children:`Brings the POV to the “tiles” listed in the drop-down that appears.`})]}),_jsxs(Accordion,{title:`Adjust ground`,id:`adjust-ground`,children:[_jsx(_components.p,{children:`Sets the position and rotation of the ground plane in the workspace. The ground plane is used for navigation (see “pan along ground” setting) as well as determining the initial position of cuboids.`}),_jsx(_components.p,{children:`Click the ground plane icon in the toolbar to open the ground height controls:`}),_jsx(OptimizedImage,{src:`https://storage.googleapis.com/docs-media.encord.com/static/img/annotate/scenes/ground-height-popover.png`,width:`360`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Auto-detection`}),`: Encord detects and fits a terrain-conforming ground mesh in the background as the scene loads. Click `,_jsx(_components.strong,{children:`Use ground mesh`}),` when it is ready. Click `,_jsx(_components.strong,{children:`Use ground plane`}),` to switch back to the flat ground plane without discarding the detected mesh.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`Automatic ground segmentation is a preview capability. Advanced controls for ground mesh fitting parameters and the segmentation grid overlay are available in the debug panel for internal and developer users. Known limitations include reduced accuracy on steep slopes and uneven terrain in some configurations.`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Set Manually`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Slider`}),`: Drag to adjust the ground height. The range spans from the lowest to the highest point in the point cloud along the up axis.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Visibility toggle`}),`: Show or hide the ground grid overlay in the 3D view.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fit from 3 points`}),`: Select 3 points on any point cloud to automatically fit the ground plane. This is useful when the ground is not flat or is at an angle.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can also enter “Fit from 3 points” mode directly using the keyboard shortcut `,_jsx(`kbd`,{children:`Option + G`}),` (Mac) or `,_jsx(`kbd`,{children:`Alt + G`}),` (Windows), without opening the popover first.`]})}),`\n`,_jsx(_components.p,{children:`When fitting mode is active, the toolbar button changes to show how many points remain to be picked:`}),`\n`]}),`\n`]}),_jsx(OptimizedImage,{src:`https://storage.googleapis.com/docs-media.encord.com/static/img/annotate/scenes/ground-fit-mode.png`,width:`500`}),_jsxs(_components.p,{children:[`Click 3 points on the point cloud surface to define the ground plane. The counter updates as each point is picked. Click the `,_jsx(_components.strong,{children:`x`}),` on the button or press `,_jsx(`kbd`,{children:`Escape`}),` to cancel.`]}),_jsxs(_components.p,{children:[`When the ground plane is rotated (tilted), rotation information is displayed in the controls. Use the `,_jsx(_components.strong,{children:`Reset rotation`}),` button to return the ground plane to flat.`]}),_jsx(_components.p,{children:`When the ground grid is visible, it is displayed as a grid in the scene:`}),_jsx(OptimizedImage,{src:`https://storage.googleapis.com/docs-media.encord.com/static/img/annotate/scenes/ground-height-grid.png`,width:`700`}),_jsxs(Tip,{children:[`For ground mesh fitting (an improved, terrain-conforming alternative to the flat ground plane), see the `,_jsx(_components.strong,{children:`Ground mesh fitting`}),` settings below.`]})]}),_jsxs(Accordion,{title:`Radius indicators`,id:`radius-indicators`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`Option + R`})]}),_jsx(_components.p,{children:`Radius indicators are useful guides when annotating in 3D space. For example, you might only want to annotate anything that comes within 3 meters of your object (vehicle, robot, drone). You would then use a radius of three and only annotate anything within that radius.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ON`}),`: Displays one or more radii centered on the object (vehicle, robot, drone) that captured PCD. You can select the color used for all radii.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`OFF`}),`: Hides all the radii.`]}),`\n`]})]}),_jsxs(Accordion,{title:`Follow ego`,id:`follow-ego`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`ALT/OPTION + E`})]}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Follow ego`}),` in the 3D toolbar to anchor the Scene origin to an eligible moving frame of reference, such as an ego vehicle. Click the button again to stop following, keep the view in place, and return the origin to the root frame.`]}),_jsx(Info,{children:_jsx(_components.p,{children:`The button appears only when the Scene contains a frame whose position changes relative to its parent.`})})]}),_jsxs(Accordion,{title:`Merged cloud point view`,id:`merged-cloud-point-view`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`ALT/OPTION + M`})]}),_jsx(_components.p,{children:`Displays point cloud data from multiple frames simultaneously in the workspace. When enabled, you can use the frame range controls to specify which frames to merge.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ON`}),`: Displays PCD from multiple frames at once. Adjust the frames displayed by dragging sliders in the navigation bar.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`OFF`}),`: Displays the PCD for the current frame only.`]}),`\n`]}),_jsx(Note,{children:_jsx(_components.p,{children:`When you enable merged view for the first time in a session, Encord selects an adaptive range of 11 to 101 frames based on the number of points in the current frame, or includes every frame if the Scene has fewer than 11. The range moves with the playhead and remains centered on it where the Scene boundaries allow. Drag the handles on the timeline or scroll over it to resize the range.`})})]}),_jsxs(Accordion,{title:`Show points in images`,id:`show-points-in-images`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`ALT/OPTION + I`})]}),_jsx(_components.p,{children:`Displays point cloud data in 2D images.`})]}),_jsxs(Accordion,{title:`Set camera target`,id:`set-camera-target`,children:[_jsxs(_components.p,{children:[`Hot key: `,_jsx(`kbd`,{children:`CONTROL + ALT/OPTION+ C`})]}),_jsx(_components.p,{children:`Specify the camera target on a single point in the PCD data.`}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use this feature with `,_jsx(_components.strong,{children:`Center content`}),`.`]})})]}),_jsxs(Accordion,{title:`Scene view settings`,id:`scene-view-settings`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Scene view settings`}),` on the right side of the 3D toolbar to display or hide elements in the PCD space.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show control hints`}),`: Displays context-sensitive keyboard shortcut hints in the top-right corner.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show camera switcher`}),`: Displays video views for the Scene.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show zoom indicator`}),`: Displays zoom level information.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show size rulers`}),`: Displays a scale ruler in the orthographic side views showing world unit measurements.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show camera target`}),`: Displays the camera target in the 3D view.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show ground cursor`}),`: Displays the ground-position crosshair in the 3D view.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Show camera tiles`}),`: Selects how camera tiles appear in the side work area.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Lidar visibility`}),`: Shows or hides individual LiDAR streams. When `,_jsx(_components.strong,{children:`Point cloud color mode`}),` is set to `,_jsx(_components.strong,{children:`Sensor`}),`, each stream displays a dot that matches its point cloud color. Appears only when the Scene contains LiDAR streams.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Model visibility`}),`: Shows or hides individual model streams, which are visible by default. Model streams can display cuboids, ellipsoids, lines, points, and GLTF/GLB, STL, or OBJ meshes. A warning icon identifies streams that contain unsupported spheres, Collada models, or models with an unknown format; hover over or focus the icon for details. Supported geometries in the same stream still display. Model stream rendering and `,_jsx(_components.strong,{children:`Model visibility`}),` controls are not available for MCAP Scenes.`]}),`\n`]}),_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Show camera switcher`}),` and `,_jsx(_components.strong,{children:`Show camera tiles`}),` settings appear only when the Scene includes camera images.`]}),_jsx(_components.p,{children:`The zoom indicator is always displayed in the 3D view, except in first-person mode.`}),_jsxs(_components.p,{children:[`When the Scene includes camera images, select `,_jsx(_components.strong,{children:`Camera`}),` in the side work area or press `,_jsx(_components.code,{children:`Shift + V`}),` to switch between `,_jsx(_components.strong,{children:`3D`}),` and `,_jsx(_components.strong,{children:`Camera`}),` modes. Use `,_jsx(_components.strong,{children:`Follow camera target in camera views`}),` to turn tracking on or off. When tracking is on, the side work area displays the camera views in which the selected cuboid is visible and focuses each view on the cuboid. If no cuboid is selected, the camera views follow the camera target. Hold `,_jsx(_components.code,{children:`Ctrl`}),` on Windows or `,_jsx(_components.code,{children:`Command`}),` on Mac while hovering over a valid point to preview that point as the target; when the preview ends, the camera views return to the camera target you set.`]}),_jsxs(_components.p,{children:[`To resize the side work area in either `,_jsx(_components.strong,{children:`3D`}),` or `,_jsx(_components.strong,{children:`Camera`}),` mode, drag the vertical divider between it and the main 3D view. Centered orthographic side views automatically refit their content as you resize the area. Your chosen width is retained when you reload the Label Editor; double-click the divider to restore the default width.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`1`,id:`editor-settings`,children:`Editor Settings`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`General settings`,id:`general-settings`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Input Device`})}),_jsxs(_components.p,{children:[`Specify using a `,_jsx(_components.code,{children:`mouse`}),` or `,_jsx(_components.code,{children:`trackpad`}),` to rotate or pan in the workspace.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`We `,_jsx(_components.strong,{children:`STRONGLY`}),` recommend using a mouse to rotate or pan in the workspace.`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Pre-load data`})}),_jsx(_components.p,{children:`Pre-load data in the background for smoother navigation. Enabling this setting can improve performance when annotating or reviewing point cloud data.`}),_jsx(_components.hr,{})]}),_jsxs(Accordion,{title:`Cuboid settings`,id:`cuboid-settings`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Face`})}),_jsx(_components.p,{children:`Shows/Hides the “face” of cuboids in the PCD workspace.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Show cuboid orientation`})}),_jsxs(_components.p,{children:[`Controls how cuboid orientation appears in the PCD workspace. Select `,_jsx(_components.strong,{children:`Front only`}),` to show an arrow that indicates the cuboid’s facing direction, `,_jsx(_components.strong,{children:`All axes`}),` to show its three orientation axes, or `,_jsx(_components.strong,{children:`None`}),` to hide orientation indicators. These indicators also appear on ghost cuboids while you preview their placement.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Set front face from motion`})}),_jsx(_components.p,{children:`When enabled, Encord automatically orients the front face of a cuboid annotation based on the object’s local direction of motion whenever you add or paste a keyframe. It ignores small movements caused by annotation jitter. Encord re-orients existing keyframes for that cuboid in the same operation, except for frames where you manually set the front face during the current editor session, so undoing the action also reverts the orientation change.`}),_jsx(Note,{children:_jsxs(_components.p,{children:[`This setting is disabled by default. When disabled, the front face follows how the cuboid was originally created. You can always set the front face manually at any time using `,_jsx(_components.code,{children:`Alt+Click`}),`.`]})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Set front face from motion`}),` when annotating moving objects (such as vehicles or pedestrians) to keep cuboid orientations consistent with the direction of travel across all keyframes.`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Setting the front face manually with Alt+Click`})}),_jsxs(_components.p,{children:[`Hold `,_jsx(_components.code,{children:`Alt`}),` and click any face of a cuboid to designate that face as the front face on the clicked frame. The frame becomes a keyframe, and automatic orientation from motion does not override your selection during the current editor session. After you reopen the editor, a later automatic trajectory update may change that frame. Hold `,_jsx(_components.code,{children:`Alt+Shift`}),` and click a face to set the front face across every frame instead. These shortcuts work whether the cuboid is selected or unselected.`]}),_jsxs(_components.p,{children:[`While you hold `,_jsx(_components.code,{children:`Alt`}),`, Encord hides the cuboid’s drag-handle controls and makes the cuboid body the click target, so you can accurately pick the intended face without accidentally resizing the cuboid.`]}),_jsx(_components.p,{children:`When you set the front face across every frame, keyframes update their stored rotation, and interpolated frames rotate to match but retain their interpolated status.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Show Cuboid Trajectories`})}),_jsxs(_components.p,{children:[`Encord always renders the full trajectory path for selected cuboids across frames. Enable `,_jsx(_components.strong,{children:`Show Cuboid Trajectories`}),` to also display the trajectories of other eligible cuboids. Trajectory paths appear in the main 3D view, while the selected cuboid’s path also appears in the top-down (bird’s-eye) tile of grid view. The trajectory does not appear in front, back, left, right, or camera-view tiles — only the top-down tile shows it, because the path collapses to a point or line from those angles.`]}),_jsx(Tip,{children:_jsx(_components.p,{children:`Use the trajectory path in the top-down grid view tile to verify and correct cuboid orientation against the object’s actual direction of travel, especially when a vehicle or object has an incorrect heading across keyframes. You can do this without leaving grid view.`})}),_jsx(Note,{children:_jsx(_components.p,{children:`Cuboids with only a single frame of annotation have no trajectory data and display nothing.`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Wireframe cuboids in camera views`})}),_jsx(_components.p,{children:`Enable this setting to display unselected cuboids as outlines in camera-image views. Encord hides edges blocked by the cuboid itself or by other visible cuboids, making overlapping and stacked cuboids easier to inspect. The outlines use the configured label edge opacity. This setting is disabled by default and is available only for Scenes with camera channels.`})]}),_jsxs(Accordion,{title:`Helpers`,id:`helpers`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Ground`})}),_jsx(_components.p,{children:`Shows/Hides the “ground” plane as a grid in the PCD workspace.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Axis`})}),_jsx(_components.p,{children:`Shows/Hides the axis of the point of origin in the PCD workspace.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Cameras`})}),_jsx(_components.p,{children:`Shows/Hides camera helper lines to aid in annotating PCD.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Frames of reference`})}),_jsx(_components.p,{children:`Shows/Hides frame origins and the parent-to-child connections between them in the main 3D view. Arrows point from each parent frame to its child. Hover over a frame origin to view the frame name, parent frame, position, and quaternion rotation relative to its parent.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Background`})}),_jsx(_components.p,{children:`Shows/Hides the background in the PCD workspace.`})]}),_jsxs(Accordion,{title:`Color filter`,id:`color-filter-1`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Filters`}),` in the 3D Label Editor Toolbar, then expand `,_jsx(_components.strong,{children:`Color`}),`. The section reports when the loaded point cloud has no color or intensity data.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`The color filter applies globally to all loaded point clouds in the scene. When you enable the filter, points outside the selected range are hidden in the viewport and cannot be selected by any segmentation tool.`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Filter modes`})}),_jsx(_components.p,{children:`Select a mode using the mode selector at the top of the section:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RGB`}),` — Filter points by red, green, and blue channel ranges (0–255 per channel). Available with `,_jsx(_components.strong,{children:`Provided`}),`, `,_jsx(_components.strong,{children:`Image color`}),`, and `,_jsx(_components.strong,{children:`Sensor`}),` point cloud color modes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`HSV`}),` — Filter points by hue, saturation, and value ranges. Available with `,_jsx(_components.strong,{children:`Provided`}),`, `,_jsx(_components.strong,{children:`Image color`}),`, and `,_jsx(_components.strong,{children:`Sensor`}),` point cloud color modes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Intensity`}),` — Filter points by intensity range (0–100%). Available when the point cloud contains intensity data.`]}),`\n`]}),_jsx(_components.p,{children:`Use the range sliders to set the minimum and maximum values for each channel. Only points whose color or intensity falls within all specified ranges remain visible.`}),_jsxs(_components.p,{children:[`RGB and HSV filtering uses the colors displayed by the active point cloud color mode. It is unavailable with `,_jsx(_components.strong,{children:`Solid`}),` and `,_jsx(_components.strong,{children:`Height`}),`. Use the height filter to filter points by height. Changing the point cloud color mode resets the RGB and HSV filter ranges.`]}),_jsxs(_components.p,{children:[`When filtering by intensity while point intensity is not displayed, the editor prompts you to enable `,_jsx(_components.strong,{children:`Display point intensity`}),` in the scene settings.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Eyedropper (Pick color from scene)`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Pick color from scene`}),` in the `,_jsx(_components.strong,{children:`Color`}),` section of the `,_jsx(_components.strong,{children:`Filters`}),` pane to activate the eyedropper. Then click any point in the 3D viewport to seed the filter with that point’s color or intensity. The sliders update automatically to a range centered on the sampled value.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Composition with other filters`})}),_jsx(_components.p,{children:`The color filter works together with the height filter and slicer planes. A point must pass all active filters to remain visible and selectable.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Segmentation tool integration`})}),_jsx(_components.p,{children:`When the color filter is active, the lasso, brush, and cuboid segmentation tools automatically exclude filtered-out points from selection. Only visible points can be selected.`}),_jsx(Note,{children:_jsx(_components.p,{children:`If the cuboid tool cannot resolve a point cloud in the rendered scene, it falls back to unfiltered selection for that cloud.`})})]}),_jsxs(Accordion,{title:`Mesh asset settings`,id:`mesh-asset-settings`,children:[_jsx(_components.p,{children:`When a Scene contains mesh assets, use the Scene settings to inspect their geometry and appearance:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.strong,{children:`Mesh appearance`}),` to `,_jsx(_components.strong,{children:`Textured`}),` to display the asset’s colors, or `,_jsx(_components.strong,{children:`Untextured`}),` to apply a neutral fill that makes its shape easier to inspect.`]}),`\n`,_jsxs(_components.li,{children:[`With `,_jsx(_components.strong,{children:`Untextured`}),` selected, enable `,_jsx(_components.strong,{children:`Faceted shading`}),` to shade each triangle separately instead of smoothing the surface.`]}),`\n`,_jsxs(_components.li,{children:[`Adjust `,_jsx(_components.strong,{children:`Key light`}),` to control directional shading and `,_jsx(_components.strong,{children:`Ambient light`}),` to control the even fill light. These lighting preferences persist across sessions.`]}),`\n`]}),_jsx(_components.p,{children:`Rest the pointer over a visible mesh to display its stream name and highlight that part.`}),_jsx(Note,{children:_jsx(_components.p,{children:`These settings appear only when the Scene contains a mesh asset. They do not affect point-cloud-only Scenes.`})})]}),_jsxs(Accordion,{title:`Point cloud settings`,id:`point-cloud-settings`,children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`A Scene can optionally include view settings which will be applied when opening it, such as the point cloud size and coloring mode. See `,_jsx(_components.a,{href:`/sdk-documentation/index-sdk/sdk-scenes#scene-view-settings`,children:`Scene view settings`}),` to learn more.`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Color settings`})}),_jsx(_components.p,{children:`You can change the color of point cloud data in the PCD workspace. Here are the options:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Solid`}),`: Displays points with a single uniform color.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Height`}),`: Displays points in colors based on the distance from the “ground” plane. Selecting this mode shows `,_jsx(_components.strong,{children:`Height color range`}),` in the Scene settings, where you can adjust the displayed range.`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`You can adjust the “ground” plane using the `,_jsx(_components.a,{href:``,children:`ground height`}),` feature on the Editor toolbar.`]})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Provided`}),`: Displays points in colors based on how they were originally captured and recorded. Available when a point cloud includes color data.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Image`}),`: Displays points in colors by projecting camera image data onto the points. Available when the scene includes cameras.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sensor`}),`: Displays points colored by the sensor that captured them, making it easy to visually identify which sensor contributed which points in a multi-sensor setup. Available when the scene includes multiple point cloud streams.`]}),`\n`]}),_jsxs(_components.p,{children:[`The settings panel does not show color modes that the scene data does not support. If a saved color mode is unsupported in a scene, the point cloud renders using `,_jsx(_components.strong,{children:`Solid`}),`.`]}),_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Display point intensity`}),` setting appears only when a point cloud in the Scene includes intensity data. The `,_jsx(_components.strong,{children:`sRGB color correction`}),` setting appears only when the Scene includes provided point-cloud colors and `,_jsx(_components.strong,{children:`Provided`}),` is the active color mode. `,_jsx(_components.strong,{children:`Render full camera image`}),` appears only when the Scene includes camera images.`]}),_jsx(Note,{children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`When you enable `,_jsx(_components.strong,{children:`Color by sensor`}),` mode, points from different sensors are automatically assigned distinct colors from a fixed palette of 20 maximally distinct colors.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Sensor colors are assigned consistently based on the sensor’s stream ID, so the same sensor is always use the same color across different frames and sessions.`}),`\n`]}),`\n`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`PCD display settings`})}),_jsx(_components.p,{children:`You can change the display settings of point cloud data in the PCD workspace. Here are the options:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Show: Displays point cloud data in the PCD workspace.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Merge: Displays all point cloud data across time in the PCD workspace.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Hide segmented: Hides all point cloud data that is behind segmented objects in the PCD workspace.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Only segmented objects that are set to be hidden hide all point cloud data behind them.`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Hide Unsegmented: Hides all points not covered by any segmentation label. This toggle is off by default. You can also toggle this setting using `,_jsx(_components.code,{children:`Shift`}),`+`,_jsx(_components.code,{children:`U`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`When you enable `,_jsx(_components.strong,{children:`Hide Unsegmented`}),` before creating any segmentations, no points are hidden because no segmentation coverage exists yet.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`You can combine `,_jsx(_components.strong,{children:`Hide Unsegmented`}),` with `,_jsx(_components.strong,{children:`Hide segmented`}),` to show only points that belong to visible segmentation labels.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Hide Unsegmented`}),` when trimming or refining segmentations on large point cloud scenes — hiding background points reduces visual clutter and prevents the brush and lasso tools from accidentally selecting unlabeled points.`]})}),`\n`]}),`\n`]})]}),_jsx(Accordion,{title:`Point cloud size`,id:`point-cloud-size`,children:_jsx(_components.p,{children:`Specify the size of cloud data points in the PCD workspace.`})}),_jsxs(Accordion,{title:`Point cloud opacity in 2D views`,id:`point-cloud-opacity-in-2d-views`,children:[_jsx(_components.p,{children:`Specifies the opacity of PCD in 2D views.`}),_jsx(Note,{children:_jsx(_components.p,{children:`The default value is 0. PCD does not display in 2D views with a value of 0.`})})]}),_jsxs(Accordion,{title:`Render full camera image`,id:`render-full-camera-image`,children:[_jsx(_components.p,{children:`Renders the full image captured by the camera beyond the source image’s nominal bounds. Enable this setting when working with wide-angle or fisheye lenses in 3D scenes to display the complete captured area in the rectified camera view.`}),_jsx(Note,{children:_jsx(_components.p,{children:`This setting is off by default. When disabled, the rectified camera view clips to the source image’s nominal bounds. This setting is only visible when you are working in a 3D scene context.`})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Enable `,_jsx(_components.strong,{children:`Render full camera image`}),` when your camera tiles appear cropped. You can also search for this setting in the settings panel using keywords such as “fisheye”, “wide-angle”, “distortion”, “rectified”, or “clip”.`]})})]}),_jsxs(Accordion,{title:`Ground mesh fitting`,id:`ground-mesh-fitting`,children:[_jsx(_components.p,{children:`The ground mesh fitting tool improves ground detection in LiDAR/point cloud scenes, including curved roads and uneven terrain. Encord automatically detects and fits the mesh in the background as the scene loads. You can then activate it as an overlay in the 3D viewer, giving you a visual reference for scene geometry and making it easier to focus on objects of interest.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Ground segmentation`})}),_jsxs(_components.p,{children:[`Encord automatically segments the point cloud into ground and non-ground points as the scene loads. Click `,_jsx(_components.strong,{children:`Adjust ground`}),` in the toolbar, then `,_jsx(_components.strong,{children:`Use ground mesh`}),` when the detected mesh is ready. To switch back without discarding the detected mesh, click `,_jsx(_components.strong,{children:`Use ground plane`}),`. The segmentation algorithm handles curved and uneven terrain more accurately than a flat ground plane.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Height filter integration`})}),_jsxs(_components.p,{children:[`When you fit a ground mesh, the `,_jsx(_components.strong,{children:`Height`}),` section of the `,_jsx(_components.strong,{children:`Filters`}),` panel gains a `,_jsx(_components.strong,{children:`Ground mesh`}),` mode. In this mode, the height filter measures each point’s height above the local mesh surface rather than a flat plane, enabling accurate filtering over curved or uneven terrain such as cambered roads or hilly ground.`]}),_jsx(_components.p,{children:`To use the height filter with a fitted ground mesh:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Adjust ground`}),` in the toolbar, then click `,_jsx(_components.strong,{children:`Use ground mesh`}),` when the detected mesh is ready.`]}),`\n`,_jsxs(_components.li,{children:[`Close the `,_jsx(_components.strong,{children:`Adjust ground`}),` pane.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Filters`}),` in the toolbar, then expand `,_jsx(_components.strong,{children:`Height`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Ground mesh`}),` from the mode selector. The selector shows `,_jsx(_components.strong,{children:`Ground mesh`}),` when a fitted mesh is active, or `,_jsx(_components.strong,{children:`Ground plane`}),` when only a flat ground plane is available.`]}),`\n`,_jsxs(_components.li,{children:[`Adjust the `,_jsx(_components.strong,{children:`Min`}),` and `,_jsx(_components.strong,{children:`Max`}),` bounds. The histogram and range reflect heights above the mesh surface.`]}),`\n`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Ground mesh`}),` option appears in the height filter mode selector only when a fitted ground mesh is active. If no ground mesh has been fitted, the selector shows `,_jsx(_components.strong,{children:`Ground plane`}),` instead.`]})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Remove ground`}),` to set the minimum height from the fitted mesh’s detected ground level and hide points identified as ground.`]}),_jsxs(_components.p,{children:[`Lasso (freehand) and brush segmentation tools respect the ground-mesh-relative height filter when `,_jsx(_components.strong,{children:`Ground mesh`}),` mode is active, so only points above the mesh surface at the specified height range are included in your selection.`]}),_jsxs(_components.p,{children:[`To open or close the `,_jsx(_components.strong,{children:`Filters`}),` panel, press `,_jsx(_components.code,{children:`F`}),`. Use the reset button beside `,_jsx(_components.strong,{children:`Height`}),` to clear the height filter.`]}),_jsxs(_components.p,{children:[`When you select a cuboid and click `,_jsx(_components.strong,{children:`Level`}),`, Encord aligns the cuboid with the local slope of the active ground mesh. If you use the ground plane instead, `,_jsx(_components.strong,{children:`Level`}),` aligns the cuboid with that plane. The action preserves the cuboid’s position, size, and heading.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`Cuboid fitting on the ground plane currently uses the flat ground plane, not the terrain mesh. Full integration with the terrain mesh is planned for a future release.`})}),_jsx(Note,{children:_jsx(_components.p,{children:`Ground mesh fitting runs in the browser. On large or merged point clouds, the fitting process may temporarily affect UI responsiveness while it completes.`})})]}),_jsx(Accordion,{title:`Faded point opacity`,id:`faded-point-opacity`,children:_jsx(_components.p,{children:`Specifies the opacity of data points that fade into the background. For example, all data points outside of a Scene slice.`})}),_jsxs(Accordion,{title:`Color points inside cuboids`,id:`color-points-inside-cuboids`,children:[_jsx(_components.p,{children:`Controls whether points that fall inside cuboids are highlighted with special coloring to make them more visible. This setting overrides the normal point coloring mode for points contained within cuboid annotations.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`All cuboids`})}),_jsx(_components.td,{children:`Highlights points inside every cuboid annotation (default behavior).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Selected only`})}),_jsx(_components.td,{children:`Only highlights points inside the currently selected cuboid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`None`})}),_jsx(_components.td,{children:`Disables cuboid point highlighting entirely.`})]})]})]}),_jsx(Tip,{children:`Use “Selected only” mode when working with many overlapping cuboids to focus on the cuboid you’re currently editing.`})]}),_jsxs(Accordion,{title:`Label color mode (review)`,id:`label-color-mode-review`,children:[_jsx(_components.p,{children:`Controls how 3D labels are colored during workflow review and consensus review tasks. This setting applies to all 3D label types: cuboids, spheres, polylines, and keypoints/points.`}),_jsx(Note,{children:_jsx(_components.p,{children:`This setting only takes effect when you are in a workflow review stage or consensus review stage. It has no effect outside of review tasks.`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`By review status`})}),_jsxs(_components.p,{children:[`When you set `,_jsx(_components.strong,{children:`Label color mode (review)`}),` to `,_jsx(_components.strong,{children:`By review status`}),`, all 3D labels in the point cloud viewport are recolored according to their current review state:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Review state`}),_jsx(_components.th,{children:`Color`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Pending`}),_jsx(_components.td,{children:`Orange`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Approved`}),_jsx(_components.td,{children:`Green`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rejected`}),_jsx(_components.td,{children:`Red`})]})]})]}),_jsxs(_components.p,{children:[`Labels you action (approve or reject) during the current review session fade to the opacity configured in `,_jsx(_components.strong,{children:`Reviewed label opacity`}),`, reducing visual clutter as you work through the scene.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`The opacity fade applies only to filled shapes — cuboids and spheres. Polylines and keypoints/points are recolored by review status but do not fade.`})}),_jsx(_components.p,{children:`Selected 3D labels retain their review-status fill color when selected. Only the selection outline switches to the selection highlight color, matching the behavior in 2D review tasks.`})]}),_jsxs(Accordion,{title:`Reviewed label opacity`,id:`reviewed-label-opacity`,children:[_jsx(_components.p,{children:`Specifies the opacity applied to 3D labels that you have actioned (approved or rejected) during the current review session. Reducing this value fades reviewed labels into the background, making it easier to focus on labels that still require review.`}),_jsx(Note,{children:_jsx(_components.p,{children:`The opacity fade applies only to filled shapes — cuboids and spheres. Polylines and keypoints/points are recolored by review status but are not affected by this opacity setting.`})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`This setting only takes effect when `,_jsx(_components.strong,{children:`Label color mode (review)`}),` is set to `,_jsx(_components.strong,{children:`By review status`}),` and you are in a workflow review stage or consensus review stage.`]})})]}),_jsxs(Accordion,{title:`In-editor tutorials (Scene projects)`,id:`in-editor-tutorials-scene-projects`,children:[_jsx(_components.p,{children:`Scene-type (3D LiDAR/point-cloud) projects include interactive in-editor tutorials you can access directly from the label editor. Each tutorial guides you through a specific workflow step by step, and the editor automatically detects when you complete each action so the tutorial advances in real time.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Accessing tutorials`})}),_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Help`}),` button in the top toolbar, then select `,_jsx(_components.strong,{children:`Tutorials`}),`. The tutorials panel lists all available tutorials for your project type. Click `,_jsx(_components.strong,{children:`Start`}),` on any tutorial card to begin.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Cuboids across time`})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Cuboids across time`}),` tutorial teaches you the full multi-frame cuboid tracking workflow. It takes approximately 5 minutes and covers the following steps:`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Select a cuboid`}),` — select an existing cuboid in the 3D view.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Copy the cuboid`}),` — copy the selected cuboid to the clipboard.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Place it on a later frame`}),` — navigate forward several frames, then hold `,_jsx(_components.code,{children:`Shift`}),` to preview the copied cuboid and click to place it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Interpolate between keyframes`}),` — fill every frame between your two keyframes using the interpolate shortcut or the right-click menu.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`View the trajectory`}),` — review the trajectory the editor draws between keyframes, then confirm with `,_jsx(_components.strong,{children:`OK`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Turn on auto re-interpolation`}),` — enable `,_jsx(_components.strong,{children:`Auto interpolate`}),` under `,_jsx(_components.strong,{children:`Drawing`}),` in the editor settings so the editor automatically re-runs interpolation when you adjust a keyframe.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Edit the trajectory in grid view`}),` — open grid view, drag the cuboid in any frame column to refine its position, and close grid view when done.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Set the front face`}),` — use `,_jsx(_components.code,{children:`Alt`}),`+click to set the front face on the current frame, or add `,_jsx(_components.code,{children:`Shift`}),` to set it on every frame.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Toggle a keyframe`}),` — use `,_jsx(_components.code,{children:`Alt`}),`+`,_jsx(_components.code,{children:`K`}),` to unmark or re-mark the current frame as a keyframe.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Lock the size`}),` — click `,_jsx(_components.strong,{children:`Lock size`}),` in the cuboid pane to enforce a uniform size across all frames.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Make it static`}),` — use `,_jsx(_components.code,{children:`Alt`}),`+`,_jsx(_components.code,{children:`S`}),` or the pushpin in the cuboid pane to mark the object as static, copying its current pose to every frame.`]}),`\n`]}),_jsxs(_components.p,{children:[`After you complete a step, the tutorial advances automatically. Step 5 (View the trajectory) requires you to click `,_jsx(_components.strong,{children:`OK`}),` to advance manually. Once you finish a step, you can click its title to re-expand it and re-read the instructions at any time.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Cuboids across time`}),` tutorial is only available in Scene-type (3D LiDAR/point-cloud) projects. It does not appear for other project types.`]})})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{LoomVideo,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Labeling Scenes","metadata":{"title":"Labeling Scenes","description":"Learn how to annotate and review Scenes, including point clouds, LiDAR, camera views, and sensor streams."},"description":null,"href":"/platform-documentation/Annotate/annotate-label-editor/annotate-pcd"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[145,1748,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"In-Editor Tutorials","slug":"in-editor-tutorials","depth":2,"children":[{"title":"Cuboids across time","slug":"cuboids-across-time","depth":3,"children":[]}]},{"title":"Label and Review Scenes","slug":"label-and-review-scenes","depth":1,"children":[{"title":"Recommended Method of Annotating PCD","slug":"recommended-method-of-annotating-pcd","depth":3,"children":[]}]},{"title":"Scene Layouts","slug":"scene-layouts","depth":2,"children":[{"title":"Time Series in Scenes","slug":"time-series-in-scenes","depth":3,"children":[]}]},{"title":"Navigating in the Scene","slug":"navigating-in-the-scene","depth":1,"children":[]},{"title":"Polylines","slug":"polylines","depth":2,"children":[]},{"title":"Cuboids","slug":"cuboids","depth":2,"children":[{"title":"Automatically Create Cuboids","slug":"automatically-create-cuboids","depth":3,"children":[]},{"title":"Smart Interpolation","slug":"smart-interpolation","depth":3,"children":[]},{"title":"Place a selected cuboid on an empty frame","slug":"place-a-selected-cuboid-on-an-empty-frame","depth":3,"children":[]},{"title":"Cuboid trajectory in grid view","slug":"cuboid-trajectory-in-grid-view","depth":3,"children":[]},{"title":"Copy and pasting Cuboids","slug":"copy-and-pasting-cuboids","depth":3,"children":[]},{"title":"Stereo Cuboid Tool","slug":"stereo-cuboid-tool","depth":3,"children":[]}]},{"title":"Point Cloud Segmentation","slug":"point-cloud-segmentation","depth":2,"children":[{"title":"Automatically Create 3D Segmentations","slug":"automatically-create-3d-segmentations","depth":3,"children":[]},{"title":"Merge 3D Segmentations","slug":"merge-3d-segmentations","depth":3,"children":[]},{"title":"Scene Slicer","slug":"scene-slicer","depth":3,"children":[]}]},{"title":"Toolbar","slug":"toolbar","depth":2,"children":[{"title":"Setting cuboid orientation","slug":"setting-cuboid-orientation","depth":3,"children":[]},{"title":"Point Cloud Filters","slug":"point-cloud-filters","depth":3,"children":[]}]},{"title":"Label Branches","slug":"label-branches","depth":2,"children":[{"title":"Create Label Branches","slug":"create-label-branches","depth":3,"children":[]},{"title":"View Label Branches","slug":"view-label-branches","depth":3,"children":[]}]},{"title":"Editor Actions","slug":"editor-actions","depth":1,"children":[]},{"title":"Editor Settings","slug":"editor-settings","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/encord-30/d15b515f4c558429/kapa.js","/_mintlify/custom/encord-30/29a7567284ffb810/hubspot-tracking.js"],"dynamicCss":".mint-flex {\n display: flex\n}\n.mint-justify-center {\n justify-content: center\n}","subdomain":"encord-30","siteName":"Encord","title":"Labeling Scenes - Encord","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T16:41:38.107Z","originalFileLocation":"platform-documentation/Annotate/annotate-label-editor/annotate-pcd.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Encord\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Labeling Scenes - Encord\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Encord\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://encord-30.mintlify.site/_mintlify/api/og/v2?division=LiDAR%2C+Radar+and+Sensor+Data\u0026amp;title=Labeling+Scenes\u0026amp;theme=9922bbf922698869e1d3a373\u0026amp;signature=2535d52e3ac9d50420a41dac7ce29f84a70dc909dc208388275a825ca21cdfe5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Labeling Scenes - Encord\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://encord-30.mintlify.site/_mintlify/api/og/v2?division=LiDAR%2C+Radar+and+Sensor+Data\u0026amp;title=Labeling+Scenes\u0026amp;theme=9922bbf922698869e1d3a373\u0026amp;signature=2535d52e3ac9d50420a41dac7ce29f84a70dc909dc208388275a825ca21cdfe5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/encord-30/fUSFXKv0aq-6s8pC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Encord\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#A6E40E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/platform-documentation/Annotate/annotate-label-editor/annotate-pcd.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.encord.com/#organization\",\"name\":\"Encord\",\"url\":\"https://docs.encord.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://storage.googleapis.com/docs-media.encord.com/primary-logo-light.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.encord.com#website\",\"name\":\"Encord\",\"url\":\"https://docs.encord.com\",\"publisher\":{\"@id\":\"https://docs.encord.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd#webpage\",\"url\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd\",\"name\":\"Labeling Scenes\",\"dateModified\":\"2026-11-09T16:41:38.107Z\",\"isPartOf\":{\"@id\":\"https://docs.encord.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LiDAR, Radar and Sensor Data\",\"item\":\"https://docs.encord.com/platform-documentation/Curate/add-files/add-pcd-data\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Labeling Scenes\",\"item\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd#article\",\"headline\":\"Labeling Scenes\",\"name\":\"Labeling Scenes\",\"url\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd\",\"mainEntityOfPage\":{\"@id\":\"https://docs.encord.com/platform-documentation/Annotate/annotate-label-editor/annotate-pcd#webpage\"},\"dateModified\":\"2026-11-09T16:41:38.107Z\",\"publisher\":{\"@id\":\"https://docs.encord.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.encord.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Encord\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Encord","nav":{"global":null,"tabs":[{"tab":"Platform","pages":[{"title":"Platform","href":"/platform-documentation/GettingStarted/gettingstarted-welcome"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk-documentation/general-sdk/general-concepts-sdk"}]},{"tab":"Modalities","groups":[{"group":"Overview","expanded":false,"pages":[{"title":"Modalities in Encord","href":"/platform-documentation/Curate/modalities-landing-page"}]},{"group":"LiDAR, Radar and Sensor Data","expanded":false,"pages":[{"title":"Create and Register Scenes","href":"/platform-documentation/Curate/add-files/add-pcd-data"},{"title":"Scene Concepts","href":"/platform-documentation/Curate/add-files/scene-concepts"},{"title":"MCAP Support","description":"Upload MCAP recordings, view synchronized sensor topics, configure layouts, and import or export labels.","href":"/platform-documentation/Curate/add-files/mcap"},{"title":"Labeling Scenes","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-pcd"},{"title":"Scene Annotation End-to-End","description":null,"href":"/end-to-end/Modalities/pcd/e2e-pcd"}]},{"group":"Time Series Data","expanded":false,"pages":[{"title":"Time Series","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-time-series"},{"title":"Time Series Customization","sidebarTitle":"Customization","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-time-series-customization"}]},{"group":"Visual Data","expanded":false,"pages":[{"group":"Labeling","expanded":false,"pages":[{"title":"Images","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-images"},{"title":"Videos \u0026 Image Sequences","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-videos"}]},{"title":"Curate \u0026 Explore Visual Data","href":"/platform-documentation/Curate/index-video"},{"title":"Visual Data End-to-End","href":"/end-to-end/Modalities/e2e-data-images-videos"}]},{"group":"Audio Data","expanded":false,"pages":[{"title":"How to Label Audio","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-audio"},{"title":"Curate \u0026 Explore Audio","href":"/platform-documentation/Curate/index-audio"},{"group":"End-to-End Guides","expanded":false,"pages":[{"title":"Curating and Annotating Audio Files","href":"/end-to-end/Modalities/audio/audio-curation-label"},{"title":"Audio for Direct Comparison (RLHF)","href":"/end-to-end/Modalities/audio/audio-rlhf"}]}]},{"group":"Text, HTML, and PDFs","expanded":false,"pages":[{"group":"Labeling","expanded":false,"pages":[{"title":"Labeling Documents","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-documents"},{"title":"Labeling Text and HTML","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-text-html"}]},{"group":"Curate \u0026 Explore","expanded":false,"pages":[{"title":"Labeling Documents","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-documents"},{"title":"Labeling Text and HTML","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-text-html"}]},{"group":"End-to-End Guides","expanded":false,"pages":[{"title":"Text / HTML End-to-End","href":"/end-to-end/Modalities/text/text-annotation"},{"title":"Entity Mapping End-to-End","href":"/end-to-end/Modalities/tabular/e2e-tabular-data"}]}]},{"group":"DICOM and NIFTI","expanded":false,"pages":[{"group":"Labeling","expanded":false,"pages":[{"title":"DICOM and NifTi","href":"/platform-documentation/Annotate/annotate-label-editor/annotate-dicom"},{"title":"Mammography","hidden":false,"href":"/platform-documentation/Annotate/annotate-label-editor/annotate-mammo"}]},{"title":"DICOM End-to-End","href":"/end-to-end/Modalities/dicom/dicom-annotation"}]},{"group":"Multimodal","expanded":false,"pages":[{"title":"Set Up Multimodal Groups","href":"/platform-documentation/Curate/data-groups/index-data-groups"},{"title":"Label Multi-Modal Groups","href":"/platform-documentation/Annotate/annotate-label-editor/multimodal-groups"},{"title":"Human-in-the-Loop Validation","href":"/end-to-end/Features/e2e-data-groups"}]},{"group":"Geospatial Data","expanded":false,"pages":[{"title":"Rendering Geospatial Imagery","href":"/platform-documentation/Other/geospatial-guidelines"}]}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions-documentation/solutions-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/releasenotes-2026"}]}]},"basePath":"","title":"Labeling Scenes - Encord","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["10e4515597","a74be98ba7"],"chunks":["BannerMarkdown-DV-WToSZ.js","dist-CBUH0-zX.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-CR-RHrVC.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}