> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/3d-multi-sensor-fusion/change-log-3d-msf-product-updates.md).

# Change Log - 3D MSF Product Updates

All notable changes to the platform are documented here. Follows Semantic Versioning.

### v27.21.0 - September 17, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Unified Validation Report with Configurable Segmentation Coverage** - Program managers can now enable segmentation validation for a project and set the point coverage percentage the guidelines require. Once configured, the **Validate** action runs the segmentation coverage analysis and the project's validation scripts together in a single pass and presents both sets of results in one report.

* **Coverage configuration in project setup** - Segmentation validation can be turned on or off per project, and the required coverage percentage is set alongside it.
* **Coverage analysis** - Validate identifies every unsegmented region in the frame and lists each cluster with its location coordinates and point count, sorted largest first across paginated results.
* **Jump to cluster** - A Jump To icon on each cluster moves the camera to that region with a smooth one to two second transition, so remaining gaps can be worked through in sequence.
* **Warning and error states** - When the frame meets the configured coverage percentage, any remaining clusters are flagged as non-blocking warnings. When the frame falls short, every listed cluster is flagged as an error and the task cannot be submitted until the coverage requirement is met. The state is shown on each validation card.
* **One report, two tabs** - The Interactive Validation panel now shows a Seg Coverage tab alongside the existing Internal tab, which continues to display script-based issues as before. A combined summary sits above both tabs showing when validation completed and the total blocker and non blocker issue counts across both sources. Current Version no longer appears in the summary.
* **Separate CSV exports** - Each tab downloads its own report. The segmentation export lists every unsegmented cluster with X, Y and Z coordinates, frame number, warning or error state, point count, and cluster name.
* **Partial configuration** - Projects configured with only one validation type still validate successfully. The tab for the unconfigured type is hidden, and summary counts and exports reflect only what is configured.
* **Validation summary on submit** - If blockers remain when a task is submitted, a Validation Summary lists one row per configured tab with options to download the CSV, view the report, or cancel and return to the task. Submit becomes available only once all blockers across both tabs are resolved, leaving warnings free to pass through.

**For Annotators:** Missed regions are surfaced with their exact location and size rather than being found by visual scanning, and a single Validate action replaces two separate checks. The warning and error distinction makes it immediately clear whether a frame is finished or genuinely short of the guideline, reducing time per task on segmentation work and removing the guesswork at submission.

**For Customers (AI/ML & Perception Engineering):** Coverage requirements are enforced at annotation time and tuned to each project's guidelines, so delivered point cloud datasets meet an agreed completeness standard. Rule based and coverage based issues are reported against the same task in one place, improving the reliability of segmentation output and reducing pre-processing effort on incomplete frames.

**Cost Efficiency:** Catching unsegmented regions before submission rather than in QA or post-delivery review reduces rework hours, and consolidating two validation passes into one shortens the checking cycle on every task at scale.

***

### v27.20.6 - September 16, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

A clear notification now appears when a task cannot be opened because the session is already open elsewhere, so the reason for the page not loading is immediately visible.

***

### v27.20.5 - September 15, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Point clouds now load reliably for every frame in a task, and returning to a frame that has not yet rendered now displays its point cloud correctly. Locally cached point cloud data is refreshed rather than reused when it is out of date.

***

### v27.20.4 - September 11, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

**Authoring Information Performance** - Authoring Information now keeps a single current record per annotation as a task moves between workflow stages, rather than adding a new record at every stage transition, and the panel's data is delivered in compressed form. The panel opens and updates faster, and stays responsive on long running projects with many stages and large annotation histories.

***

### v27.20.3 - September 4, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

The tool no longer waits unnecessarily to sync segmented nodes on non-segmentation batches during submission. Previously, the tool would generate and attempt to save segmented node data even when the batch flow did not require segmentation, causing significant submission delays.

***

### v27.20.2 - September 2, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Prelabel data is no longer loaded in a locked state.

***

### v27.20.1 - September 1, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Point cloud caching speed for older non-segmentation batches is now restored to its previous performance level.
* The tool no longer shows a white screen after batch submission.
* Segmentation data now syncs correctly for batches where certain offset fields were missing from the batch API response.

***

## AUGUST

### v27.20.0 - August 28, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

* Segment data during continuous paintbrush strokes now syncs significantly faster to the backend. Previously, heavy stroke sessions could take up to 30 seconds to save, causing noticeable slowdowns during active segmentation work.

#### <mark style="color:blue;">**Bug Fixes**</mark>

* The default point colour on task launch is now **Elevation Gradient** instead of RGBA, reflecting the most appropriate default for the majority of datasets.
* The Visualization tag no longer appears briefly when opening a task already assigned to the current user.
* Point colour selection is now retained across page refreshes and frame navigation.
* Polygon and brush sphere annotations are now correctly visible when a completed task is opened in visualization mode.
* The tool no longer stalls when a cuboid is created in empty space with no points. Unhandled console errors when creating invalid cuboids have also been resolved.
* Class changes for 2D annotations (rectangle, polygon, polyline) now apply correctly after creation without requiring a page reload. Previously, the Apply Classification prompt would not dismiss, blocking any class change until refresh.

***

### v27.19.1 - August 26, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Duplicate annotations that were accumulating on the server due to prior propagation and smart-merge bugs no longer appear in the scene or annotation count. Duplicates are now deduplicated on cache initialisation and task load, with stale records removed from IndexedDB immediately and cleaned up on the server in the background.

***

### v27.19.0 - August 21, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Velocity-Based Sanity Check:** Project managers can now configure a velocity sanity check per object class directly in the recipe, specifying the axis (Vx, Vy, Vz, Vxy, Vyz, Vxz, or Vxyz, defaulting to Vxyz), the velocity threshold in m/s (or inch/s), along with the threshold value. Configuration can be set or updated at any point during the project and applies immediately to active tasks on reload. The check is fully backward compatible with existing projects. When a tracked cuboid's velocity exceeds the configured threshold on the selected axis, a visual cue appears on the affected cuboid and on the timeline, consistent with the existing sanity check framework. Violations are non-blocking.

* **For Annotators:** Surfaces physically implausible velocity events in real time without requiring manual frame-by-frame review, allowing annotators to identify and correct misplaced cuboids that produce unrealistic speed spikes before submission. Reduces time per object on motion-critical tracking tasks by directing attention to the specific frames that need correction.
* **For Customers (AI/ML & Perception Engineering):** Provides a configurable, project-specific guardrail against velocity anomalies in cuboid tracking data, improving the physical plausibility of motion annotations used for velocity estimation, trajectory prediction, and behaviour modelling. Violations surfaced at annotation time are significantly cheaper to correct than those discovered during model training or post-delivery QA.
* **Cost Efficiency:** Catching implausible velocity events at the point of annotation reduces the volume of motion errors reaching QA and delivery, lowering rework costs and compressing turnaround times on datasets where object motion accuracy is a contractual requirement.

[Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/sanity-checks/velocity.md)

**Global Lock/Unlock:** Annotators can now lock or unlock all annotations simultaneously using **Ctrl+Q**, toggling instantly between a fully protected view and an editable one. A toaster notification confirms when all annotations are unlocked, lock indicators in the annotation list update accordingly, and the action is recorded in undo/redo history. The shortcut is listed in the help menu.

* **For Annotators:** Eliminates the need to lock or unlock annotations one by one, significantly reducing time spent managing annotation states when switching between review and editing modes on dense scenes with many objects.

***

### v27.18.0 - August 18, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

The tool now loads faster and runs more smoothly during annotation. Stuttering and lag when creating or selecting annotations have been reduced, the tool becomes ready to use more quickly after launch, and overall rendering performance is improved across both Windows and macOS. Compatibility with AMD GPUs has also been improved.

***

### v27.17.0 - August 17, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Configurable Velocity Axis in the Velocity Graph:** The velocity graph now includes a dropdown to select which velocity component to display - Vx, Vy, Vz, or any combination to view planar or full 3D velocity. Units can be toggled between **m/s** (default) and **inch/s**. The graph and units label update in real time on selection, and the selected object's name appears in the graph heading.

* **For Annotators & Reviewers:** Enables motion inspection across specific axes without leaving the annotation workspace, making it faster to identify directional anomalies in object trajectories.
* **For Customers (AI/ML & Perception Engineering):** Supports more granular validation of object motion data across all axes, improving confidence in velocity annotations used for trajectory and behaviour prediction model training.

#### <mark style="color:blue;">**Bug Fixes**</mark>

Resolved a crash that occurred when the classification worker returned a cancelled or incomplete result during a frame switch. Brush bounding box calculations that were silently stalling as a result are now also correctly resolved.

***

### v27.16.0 - August 14, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Jump To Largest Cluster — Paintbrush —** When a paintbrush annotation contains multiple disconnected regions, the Jump To action now automatically navigates to the cluster with the highest point count. The largest segment is identified, calculated, and selected in one action.

* **For Annotators:** Removes guesswork when navigating to fragmented annotations, landing directly on the most significant region and reducing time spent locating the primary segmented area.

***

### v27.15.0 - August 12, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Retained Clip and Visibility State Across Edit Mode and Tool Switches:** Clip and visibility states on segmented annotations now persist when entering edit mode via the pencil icon and when switching between configured drawing tools within an active edit session. States are maintained across the sequence until explicitly changed by the user or the tool is reloaded. Committing or cancelling an edit session no longer alters clip or visibility state as a side effect. Where a tool reload cannot retain the clip state, the tool restores the clipped points and updates the clip control icon accordingly.
  * **For Annotators:** Eliminates a disruptive workflow interruption where previously segmented points would reappear on entering edit mode, forcing annotators to re-identify missed points among already-classified ones. This directly reduces time per annotation on iterative segmentation tasks and improves the accuracy of gap-filling edits.
  * **For Customers (AI/ML & Perception Engineering):** Reduces overwriting of correctly classified points during edit passes, producing cleaner and more reliable segmentation boundaries in delivered datasets.
  * **Cost Efficiency:** Fewer unintended point reclassifications reaching QA means reduced rework effort and lower correction costs on segmentation-heavy projects.
* **Real-Time Unclassified Point Counter:** A persistent counter is now displayed prominently in the top-left of the tool, showing classified points, total frame points, and remaining unclassified points in the format **Classified / Total Frame Points \[Unclassified]**. The counter updates in real time as soon as a paintbrush drag is released or a polygon is closed. A tooltip displays the current classified percentage (e.g. "70% Classified").
  * **For Annotators:** Provides an at-a-glance progress indicator during segmentation, eliminating guesswork about annotation completeness and reducing the time spent visually scanning for missed points. Directly supports quality by making it immediately visible when a frame is fully classified.
  * **Cost Efficiency:** Catching incomplete segmentation at annotation time rather than during QA or post-delivery review significantly reduces the cost of corrections at scale.
* **Individual Cuboid Editing Within a Group -** Annotators can now reposition, resize, and adjust the yaw, pitch, and roll of individual cuboids within a group on a per-frame basis, without breaking the group. A first click selects the group and a second click selects the individual cuboid for editing. Edits propagate forward and backward from the current frame based on interpolation until the next cuboid-level keyframe, consistent with standard keyframing behaviour. The group bounding envelope updates automatically to reflect the change on that frame. This applies to position, dimensions, and rotation independently.
  * **For Annotators:** Removes the need to ungroup, edit, and regroup cuboids when accounting for real-world positional shifts, size changes, or rotational changes at bends and slopes. This substantially reduces time per object on multi-part vehicle and articulated object tracking tasks.
  * **For Customers (AI/ML & Perception Engineering):** Enables accurate per-frame representation of physically connected objects - such as truck cabins with trailers or articulated buses - that undergo positional or dimensional changes mid-sequence, producing training data that more faithfully reflects real-world object behaviour.
  * **Cost Efficiency:** Eliminating the ungroup-edit-regroup cycle on articulated object tasks reduces annotation time and the risk of grouping errors being introduced during correction, lowering rework costs on complex tracking datasets.
* **Group Information Row in Timeline -** When a grouped annotation is selected, a Group Information row now appears in the expanded timeline below existing attribute rows. Each frame where the group is active is colour-coded by group ID, with distinct colours representing different group ranges. A single annotation cannot display more than one colour on the same frame.
  * **For Annotators & Reviewers:** Makes it immediately visible which frames a group is active on without opening the grouping dialogue, reducing navigation time during review and making group continuity errors easier to spot.
* **Group Member Tooltip on Timeline -** Hovering over a coloured frame in the Group Information row displays a tooltip listing all other annotations grouped with the selected annotation on that frame, excluding the selected annotation itself. The tooltip correctly reflects group membership for that specific frame, accounting for annotations that belong to different groups across different frame ranges. The lead cuboid name is also displayed in the grouping context menu.
  * **For Annotators & Reviewers:** Provides instant visibility into group composition at any point in the sequence without interrupting the annotation workflow, reducing the time needed to verify group integrity during QA.
* **Distinct Group and Cuboid Selection Borders -** Selecting a group now displays a **white** bounding envelope border, while selecting an individual cuboid continues to display a **yellow** border. The distinction is consistent across BEV mode, 3D mode, and orthographic views, and applies across all frames where the group is active.
  * **For Annotators:** Eliminates ambiguity between individual and group selection states, reducing accidental group-level edits when only a single cuboid is intended to be modified and vice versa.

[Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/cuboid-grouping.md#steps-to-use-cuboid-grouping)

***

### v27.14.7 - August 11, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Creating a cuboid with the same class and instance ID in a subsequent batch no longer incorrectly imports keyframes from the previous batch. Each batch now initialises cuboid keyframes independently.
* Batch submission UX has been improved with clearer feedback and more reliable redirect behaviour. A single persistent notification now displays during syncing, submission is delayed until conflicts are resolved, and redirection on submit or error now uses a fixed Ango Hub URL rather than browser history to ensure consistent navigation.

***

### v27.14.6 - August 7, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Cuboid annotations no longer trigger a schema validation error when origin geometry is absent. The tool now correctly omits the `originGeometry` key from the annotation data rather than passing it as null, resolving validation failures reported in the Bedrock production environment.

***

### v27.14.5 - August 6, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

Batch submission now provides clearer, more reliable feedback throughout the process. A single persistent notification is displayed during annotation syncing instead of multiple short-lived messages, shown above a blurred loading background. A confirmation notification appears once the batch has been submitted and while a new batch is being requested. Batch submission is now delayed until all conflicts are resolved, preventing failed submissions due to unresolved conflicts. Redirection after submission or error now uses a fixed Ango Hub URL instead of browser history, ensuring reliable navigation back to the platform regardless of how the batch was opened.

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Unsaved annotations created offline are now correctly restored to the scene when the batch is reopened. Previously, annotations saved to IndexedDB while offline were not rendering in the scene on reopen, and resyncing was generating one API call per frame regardless of annotation count, causing unnecessary network load.
* Submitting a batch while annotation syncing is still in progress no longer results in a failed submission. Previously, clicking submit before the syncing indicator cleared would cause the submission to hang and fail, requiring a second attempt that would also fail.
* Duplicate annotation entries that were silently accumulating in IndexedDB across sessions are now correctly deduplicated. Previously, a combination of three compounding bugs could result in two records being stored for the same annotation, causing a visible annotation count of 2 for a single geometry after a page refresh, with duplicates persisting across sessions.

***

### v27.14.4 - August 5, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Opening a batch in review mode on a second machine no longer disrupts an active labeling session on the first machine. Previously, this caused the labeler to receive an unexpected error prompt that closed the tool on acknowledgement.

***

## JULY

### v27.14.3 - July 30, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

Frame navigation is now faster under load. Worker operations are paused until the current frame is fully loaded, giving IndexedDB requests for point clouds, images, and annotations higher priority and reducing the time taken for a scene to become ready.

***

### v27.14.2 - July 27, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Resolved a WebGL crash on AMD GPUs that was causing the tool to crash for the Bedrock team following the conflict resolution release. A shader check that was no longer necessary has been removed as the root cause.
* The TOP, FRONT, and SIDE orthographic views now display correctly after pressing **R** to rotate a selected cuboid. Previously, the side view would render incorrectly following a rotation action.

***

### v27.14.1 - July 21, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Ray Beam now functions correctly in the production environment. Previously, enabling Ray Beam had no effect on some client datasets and Nvidia.
* Locking a polygon annotation while the polygon addition tool is active now correctly prevents any further modification. Previously, the lock was not enforced if the polygon addition tool had been selected prior to locking.
* Keyboard shortcuts for cuboid rotation, BEV/3D mode toggle, and ground level modification no longer incorrectly trigger lasso mode.
* Minimum points per distance entries in the Cuboid Sanity Checks configuration no longer duplicate on each edit. Previously, performing an update action would add a new entry rather than replacing the existing value, resulting in an incrementing list of duplicates.

***

### **v27.14.0** - July 20, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Annotate Once and Propagate on Merged Point Cloud Using Polygon -** Annotators can now draw a single polygon annotation directly on a merged point cloud and have it automatically applied across all frames included in the merge. The polygon tool behaves consistently on merged clouds as it does on single frames, and visual feedback confirms annotation coverage across the merged sequence. This extends the existing merged point cloud paintbrush capability to polygon annotations, completing the annotate-once workflow for the two primary segmentation tools.
  * **For Annotators:** Eliminates the need to redraw the same polygon annotation frame by frame on static objects, delivering a substantial reduction in time per object on sequential datasets. Combined with the existing paintbrush propagation on merged clouds, annotators can now handle the full segmentation workflow for static objects in a single pass.
  * **For Customers (AI/ML & Perception Engineering):** Annotations propagated from a single high-quality polygon on a merged cloud are geometrically consistent across all frames, producing more spatially uniform training data than frame-by-frame annotation. This consistency is particularly valuable for static object segmentation in autonomous driving and infrastructure mapping datasets.
  * **Cost Efficiency:** Reducing repetitive frame-by-frame polygon annotation on static objects directly lowers time per task on sequential datasets, compressing delivery timelines and reducing the cost of annotation at scale. Combined with paintbrush propagation on merged clouds, this marks a significant step forward in the efficiency of point cloud segmentation workflows.

***

### v27.13.0 - July 16, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Jump To Error Handling (Empty Polygon and Paintbrush Annotations) -** The Jump To icon is now disabled and greyed out for annotations with no segmented points, with a tooltip reading "No segmented region to display." Clicking the disabled icon displays a notification: "This annotation has no segmented points." This replaces the previous behaviour where the jump would silently fail with no explanation.
  * **For Annotators:** Eliminates confusion when a jump action does not respond, providing immediate and clear feedback that directs annotators to resolve empty annotations rather than losing time investigating an unresponsive control.

***

### v27.12.0 - July 14, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Velocity Graph:** Annotators, reviewers, and clients can now open a velocity graph for any cuboid by right-clicking and selecting Velocity. The graph appears as a floating panel below the point cloud, plotting forward velocity (m/s) on the y-axis against absolute frame numbers on the x-axis. Occluded frame ranges where the cuboid was deleted between keyframes render as gaps in the line rather assumed values, ensuring the graph accurately reflects only visible object positions. The *velocity option is not shown* when ego pose data is absent or when the frames are not timestamped.

* **For Annotators:** Provides an immediate, at-a-glance view of an object's speed profile across the sequence without manually scrubbing through frames, reducing time per object during tracking and interpolation tasks.
* **For Customers (AI/ML & Perception Engineering):** Enables direct visual validation of object motion data against expected real-world speed profiles. Higher confidence in motion data quality translates directly into more reliable velocity estimation and trajectory prediction model training.
* **Cost Efficiency:** Surface-level motion anomalies that previously required frame-by-frame scrubbing to detect can now be identified in seconds from the graph, reducing QA time and the cost of late-stage corrections on motion-critical datasets.

**Hover Crosshair and Tooltip:** Hovering over the velocity graph displays intersecting horizontal and vertical guide lines anchored to the nearest data point, alongside a tooltip showing the frame number and velocity value to one or two decimal places. For very small values, scientific notation (10⁻ˣ) is used. Hovering over an occluded gap displays "frame N · occluded" with no velocity value shown.

* **For Annotators & Reviewers:** Enables precise reading of velocity values at any point.

**Zoom and Pan on Velocity Graph:** The velocity graph supports zooming along the x-axis and y-axis. After zooming in, the graph can be panned by clicking and dragging.

***

### v27.11.0 - July 13, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Combined Polygon and Paintbrush Annotation on a Single Object:** Annotators can now use both the polygon and paintbrush tools on the **same** annotation object. This means complex objects can be outlined with a polygon for precise boundary definition and refined with the paintbrush for detailed point-level segmentation, all within a single annotation, without creating separate instances or merging workflows manually.
  * **For Annotators:** Significantly reduces time per object on geometrically complex annotations by eliminating the need to choose between boundary precision and point-level detail. Annotators can now achieve both in a single continuous workflow, **improving annotation quality** **without a trade-off in speed**.
  * **For Customers (AI/ML & Perception Engineering):** Produces richer, more accurate segmentation data for complex real-world objects, such as vehicles with irregular attachments, vegetation, or construction equipment, that previously required compromise in either boundary accuracy or point coverage. Higher fidelity training data directly improves model performance.
  * **Cost Efficiency:** Combining two tools into a single annotation pass reduces the time and effort required per complex object, lowering the cost per annotation on segmentation-heavy projects and reducing the volume of QA corrections needed post-delivery.
* **Configured Drawables per Class:** The tool palette now displays only the drawing tools configured for the selected class. When a class has only one tool configured, the palette is skipped entirely and the tool activates immediately with a brief confirmation strip.
  * **For Annotators:** Reduces decision time and eliminates the risk of accidentally selecting an unsupported tool, contributing to faster and more accurate annotation sessions.
* **Distinct Create and Edit Icons in Class List:** The **+** icon now creates a new annotation and the **pencil** icon opens an existing one for editing, removing ambiguity between the two actions in the class list panel.
  * **For Annotators:** Reduces accidental overwrites and improves workflow clarity, particularly across large sequences with many existing annotations.

[Learn More](https://docs.imerit.net/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/combined-tools-cuboid-3d-polygons-3d-polylines-+-2d-drawables#example-workflow)

***

### v27.10.0 - July 10, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Undo/Redo History During Paintbrush Drawing:** Annotators now have full undo and redo history maintained throughout an active paintbrush session, including across view navigation (pan, rotate, zoom) and tool switches. Srokes can be undone or redone without losing progress. Navigation actions themselves are not recorded in the history.

* **For Annotators:** Eliminates the need to restart or redo entire paintbrush sessions after a mistake, directly reducing time per annotation on segmentation-heavy tasks. Improves annotation quality by giving annotators the confidence to experiment and correct freely.
* **For Customers (AI/ML & Perception Engineering):** Reduces the likelihood of incomplete or over-segmented point cloud deliverables caused by unrecoverable annotation errors, resulting in cleaner and more reliable training data.

**Multi-Tool Annotation History (Undo/Redo):** Undo and redo now works seamlessly across all tools used within a single annotation session. Annotators can undo up to 50 steps back through any combination of tools - for example, undoing a cuboid creation after switching from a paintbrush stroke - and redo preserves the full multi-tool sequence.

* **For Annotators:** Removes the risk of losing work when switching between tools to refine a single annotation, reducing time per object on complex multi-sensor tasks and encouraging more precise, iterative refinement.
* **For Customers (AI/ML & Perception Engineering):** More refined annotations produced through iterative multi-tool workflows translate directly into higher quality training data, reducing the need for rework cycles post-delivery.

**Undo/Redo for Lock State and Point Reassignment:** Annotators can now undo and redo both lock and unlock actions (**Ctrl+Z** / **Ctrl+Shift+Z**) as well as automatic point reassignments triggered during segmentation. History is clearly maintained for both lock state changes and point modifications, and persists across navigation and tool switches. This is particularly significant for point cloud segmentation workflows where accidental point reassignment between classes has previously resulted in data loss.

* **For Annotators:** Eliminates the risk of permanently losing segmented point data due to accidental lock changes or unintended point reassignments, improving both annotation quality and confidence during complex segmentation tasks. Reduces time per annotation by removing the need to re-segment areas affected by accidental reassignment.
* **For Customers (AI/ML & Perception Engineering):** Ensures that segmentation boundaries between classes are accurate and intentional, reducing class overlap errors in delivered datasets and lowering the cost of post-delivery corrections.
* **Cost Efficiency:** Fewer annotation errors reaching QA and delivery stages means reduced rework hours and faster project turnaround, lowering the overall cost of dataset production for both iMerit and its customers.

***

### v27.9.1 - July 8, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Deleting a polygon vertex by dragging it onto an adjacent one now correctly reflects the updated vertex count in the saved annotation. Previously, the deletion was being processed after the save snapshot was taken, causing stale coordinates to be recorded in the annotation output and undo history.

***

## JUNE

### v27.9.0 - June 29, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Vertex Snapping to 2D Drawable Corners and Edges:** The cursor now snaps to the nearest vertex or edge of any visible 2D bounding box, polygon, or polyline within the same frame and sensor when drawing. Clicking while snapped places the vertex at the exact coordinates with no offset, enabling precise boundary alignment without manual pixel-level adjustment. Snapping is togglable via a **Shift** keypress.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FoxwyUOvKRJ1iU4mQ4s7n%2FSnapping.mp4?alt=media&token=ca557bff-492d-4445-b124-27abb62fc567>" %}

* **Axis-Aligned Segment Creation:** Annotators can now constrain a polygon or polyline edge to be perfectly horizontal or vertical while drawing by holding **Shift** when placing a vertex. The constrained direction is resolved dynamically from the last placed vertex based on cursor movement. A real-time preview of the constrained edge is shown while Shift is held, and releasing it restores freehand placement for subsequent vertices.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FK10ve2vZ5dIsrZIASN6K%2FScreenshot%202026-06-29%20at%2020.01.07.png?alt=media&amp;token=eb4c1c29-8c7d-4768-a036-f10352da9a3f" alt=""><figcaption></figcaption></figure>

* **Visual Differentiation of Straight Edges:** Axis-aligned (perfectly horizontal or vertical) polygon and polyline edges are now rendered in a distinct accent colour (red), clearly distinguishable from freehand edges. The accent colour is applied during the drawing preview and on saved annotations, and is preserved across all interaction states - selected, hovered, and highlighted.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FvKMs4kllLkmfKK0jZyF5%2FStraightLines.mp4?alt=media&token=d9f6776e-e225-4185-b76a-86195da1a8bd>" %}

* **Crosshair Guide for 2D Vertex Placement:** A full-image crosshair now appears across the entire image canvas whenever a vertex is being placed, dragged, or hovered over in the 2D polygon, 2D bounding box, and 2D polyline tools. The crosshair updates in real time as the cursor moves and disappears immediately when none of these states are active. It is rendered in a semi-transparent colour to remain visible without obscuring the annotation or underlying image, and can be toggled on or off via the toolbar with the state persisting for the session.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FJVqtXE8VSniEYyNxbouG%2FCrosshair.mp4?alt=media&token=331fd6dd-acad-4597-beb8-7a47390323c4>" %}

***

### v27.8.4 - June 24, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* The "Session has been terminated as the batch has been opened from another browser" message now correctly redirects the user to Ango Hub instead of repeatedly reappearing.
* A batch can no longer be accessed simultaneously from multiple systems, preventing data inconsistency issues.

***

### v27.8.3 - June 23, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* In Annotate 2D mode, creation and edits to a rectangle annotation are being saved to the backend correctly.

***

### v27.8.2 - June 22, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

Export generation for large LAS deliverables has been significantly optimised. Previously, exports were processing the entire deliverables zip rather than only the required output file, causing exports to take upwards of 14 minutes. Generation time is now substantially reduced.

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Creating 2D and 3D annotations sharing the same identity and class no longer triggers a schema validation error.

***

### v27.8.1 - June 19, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**2D Polyline Start Vertex Indicator:** The first vertex of every 2D polyline is now automatically rendered with a distinct visual marker, differentiating it from all subsequent vertices during drawing and on saved annotations. The indicator is visible in selected state - requiring no additional action from the annotator.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FA5Fci4kEFNlHZpcnL2aQ%2FFirstVertex.mp4?alt=media&token=353602ec-4d54-441b-9b04-bdedf544cedb>" %}

#### <mark style="color:$warning;">**Improvements**</mark>

Paintbrush strokes now move smoothly across the point cloud without stopping abruptly, resolving the laggy experience previously seen when the brush was restricted to running only over points.

#### <mark style="color:blue;">**Bug Fixes**</mark>

Sanity checks have been restored following a regression introduced by recent additions. Specifically:

* Sanity checks now execute correctly when selecting any cuboid annotation
* Sanity checks now run automatically on tool reload when a cuboid is already selected.
* Sanity checks now execute after interpolation is applied.
* Point density sanity checks have been disabled pending a fix.

***

### v27.8.0 - June 16, 2026

#### <mark style="color:$success;">**New Feature**</mark>

**Visual Highlight After Jump - Paintbrush**: After jumping to a paintbrush annotation via the Jump To icon, the segmented region now briefly brightens for 3 seconds, allowing annotators to immediately identify the annotation they have navigated to.

***

### v27.7.6 - June 15, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Annotations no longer auto-lock unexpectedly between sessions. Previously, annotations could become locked when reopening a batch the following day. As default, all annotations are created as 'unlocked'.

***

### v27.7.5 - June 12, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Polygon vertices are no longer snapped to point cloud positions while drawing, allowing for free and accurate vertex placement.

***

### v27.7.4 - June 10, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Jump to Object and Delete Annotation actions on brush annotations with tracking (Has Instance) disabled no longer incorrectly display a "hasInstance disabled" error toaster. Both actions now complete without any error messages.
* Cuboid sanity violation checks are no longer executed redundantly on every frame switch when the cuboid's geometry has not changed. Additionally, annotation fetch API calls are no longer made on every annotation selection when annotations are already cached in IndexedDB.

***

### v27.7.3 - June 7, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Paintbrush annotations on high point density datasets now persist correctly after task submission. Previously, relaunching the same task in the next workflow node caused paintbrush annotations to partially disappear, affecting both the in-tool view and the delivered output.

***

### v27.7.2 - June 5, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

Resolved a console error that was triggered unnecessarily each time the user hovered the mouse pointer over 2D reference images while switching between frames.

***

### v27.7.0 - June 1st, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Jump To Paintbrush Annotation -** A Jump To icon now appears next to each paintbrush annotation in the Class List. Clicking it smoothly animates the camera to center on the segmented region at an appropriate zoom level, filling 60–80% of the viewport. A tooltip reading "Jump to Object" appears on hover.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FcsaOpPVOMi0TnYfYpaoL%2FJumpToAnnPB.gif?alt=media&amp;token=080bf14d-561e-4187-b0c6-5ea6f4982d0f" alt=""><figcaption></figcaption></figure>

* **Rotate and Pan While Drawing 3D Polygon (BEV Mode) -** Annotators can now rotate and pan the view while actively drawing a polygon in BEV mode without cancelling the in-progress annotation. Hold **Spacebar + Left-drag** to rotate and **Spacebar + Right-drag** to pan. Use **Spacebar + Mouse wheel**, **Spacebar + arrow keys**, and **Spacebar + WASD** keys without affecting the polygon. The cursor changes to a hand icon during navigation, the partially drawn polygon will update as per action taken, and a toast notification prompts the annotator to continue drawing when navigation ends.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2F65zyAjQizhZzkP7Cyctf%2FPolygonSpacebar.gif?alt=media&amp;token=c882319e-37d5-453f-9b2c-d988da0f42fe" alt=""><figcaption></figcaption></figure>

#### <mark style="color:$warning;">**Improvements**</mark>

* Point cloud loading has been optimised to eliminate unnecessary network requests. The tool now waits for the zipped point cloud file to be confirmed available before fetching individual node files, removing redundant 404 errors from the browser console and reducing load on the main thread during tool initialisation.

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Deleting a paintbrush annotation no longer incorrectly displays the error message "This annotation has no segmented points."

***

## MAY

### v27.6.2 - May 20th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Paintbrush annotations configured as non-tracking (semantic segmentation) can now be saved correctly after segmenting point clouds.

***

### v27.6.1 - May 19th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Jumping to an object via the annotation list now correctly highlights and selects the annotation at its location. Previously the view navigated to the annotation but it remained unselected and unhighlighted.
* Cancelling a pasted polygon on a frame no longer leaves a colored segmented area. Previously, pasting a polygon with Ctrl+V and navigating away without saving would still display the colored area on return to that frame.
* The ray beam icon in *Annotate Image* view now scales proportionally when zooming in on far-away objects, and no longer enlarges disproportionately or obscures the underlying target objects.
* The Shortcut Key Menu now correctly displays `F` as the shortcut for Ray Beam Freeze.
* Point size settings are now correctly restored after a page refresh. Previously, adjustments made to the point size modifier in Tool Settings were not reflected after reload.
* The point size modifier slider now correctly applies changes when set below 1.5. The slider range has been updated to `1–5`, and reducing the value below the previous threshold now visibly updates the point cloud.
* Splitting a polyline when the project ontology contains a single class with no instance now correctly shows an informational message instead of creating a duplicate annotation.

***

### v27.6.0 - May 15th, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Individual Annotation Point Clipping -** Annotators can now hide the points and boundary of individual annotations using the clip icon in the annotation list. Clipping applies across the sequence for the session, and unclipping restores full visibility. Clipping operates independently of the existing visibility toggle.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2F2pj3WAjab2aPz8wlFEqk%2Fimage.png?alt=media&amp;token=d4b19dc9-bc7d-476a-8f71-ef3f64b31488" alt="" width="334"><figcaption></figcaption></figure>

* **Bulk Point Clipping Controls -** Annotators can now clip or unclip points across multiple annotations simultaneously. Use Clip All / Unclip All to toggle all annotations at once, or Clip by Class / Unclip by Class to manage entire class categories.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FEYlpZGXldoCYMunTqJtR%2Fimage.png?alt=media&amp;token=1096b3cc-be6c-4fda-b9fc-36fba77284d7" alt="" width="342"><figcaption></figcaption></figure>

* **Rotate and Pan View While Using Paintbrush -** Annotators can now rotate and pan the point cloud view while actively painting, without losing progress or saving incomplete work. Hold Spacebar + Left-drag to rotate and Spacebar + Right-drag to pan. Mouse wheel, arrow keys, and WASD keys navigate without triggering painting. The cursor changes to a hand icon during navigation, painted points remain frozen and visible, and a toast notification prompts the annotator to resume segmenting. Right-clicking without Spacebar saves normally.
* **Paintbrush Annotation on Merged Point Cloud -** Annotators can now create paintbrush stroke annotations directly on a merged point cloud, eliminating the need to repeat the same annotation across multiple frames. The paintbrush tool behaves consistently on merged clouds as on single frames, provides visual feedback on annotation coverage, and automatically applies the annotation to all frames included in the merge.
  * **Merge Point Clouds for Static Objects -** Annotators can now merge point clouds across all frames into a single dense unified cloud for static objects, allowing the complete structure of an object to be viewed and annotated once rather than frame by frame. The merged cloud maintains spatial accuracy and alignment, and can be previewed before committing to annotation.
  * **Review and Refine Propagated Annotations -** Annotators can identify and manually refine propagated annotations that need adjustment using all standard editing tools. Refinements made to a frame do not affect any other frames in the sequence.

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Object clipping works correctly on cuboid annotations regardless of their lock state. Previously, enabling object clipping on a locked or unlocked cuboid had no effect.

***

### v**27.5.4** - May 12th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Switching frames and submitting batches no longer causes the tool to display a prolonged loading screen when multiple cuboids with propagation are present in a task.

***

### v**27.5.3** - May 8th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Locked annotations can no longer have their dimensions modified using the Dynamic Dimension option. Previously the lock was not enforced for this specific interaction.
* Locking a polygon annotation no longer causes the segmented area to disappear from the workspace. The lock now correctly restricts editing only, while the segmented area remains fully visible.
* Locked polyline annotations can no longer have their width modified via the Status panel.
* Locked polygon and brush annotations can no longer be modified using the Add or Subtract segment options.
* Locked annotations in BEV mode are now correctly protected from annotation reassignment when a new annotation is drawn over them.
* Locked polygon areas can no longer be overlapped by new segmentations from a different class. The locked area is now fully protected from overlap by any other annotation.
* Lock state is now correctly enforced across all drawables in Agritech datasets. Locked objects can no longer be modified, overlapped, or deleted.
* When a locked annotation is present, selecting a different class and attempting to create a new object in the same area no longer generates a new class ID or displays a bounding box in that area.
* Polygon segmentation and its bounding box now remain visible after saving. Adding a new segment to an existing polygon no longer causes previously created segmented areas or bounding boxes to disappear.

***

### v**27.5.2** - May 7th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Submitting a batch where the next batch contains fewer frames than the previous one no longer causes the tool to fail to load. Previously this triggered either an incorrect error message or a console error. The new batch now loads correctly regardless of frame count differences.

***

### v27.5.1 - May 6th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* In Merged Point Cloud (MPC) view, points were incorrectly loading and unloading when navigating between merged frames, instead of remaining fully loaded for the duration of the merge. Points now stay loaded consistently across all frames included in the MPC view.

***

## APRIL

### v27.5.0 - April 30th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Undo (**Ctrl+Z**) now responds correctly while a polygon is active after adding or subtracting a segment, removing the need to manually deselect the polygon before undoing.

***

### v27.4.0 - April 23rd, 2026

#### <mark style="color:$success;">**New Feature**</mark>

* **Individual Annotation Visibility Toggle -** Annotators can now show or hide individual annotations directly from the annotation list using the eye icon next to each annotation. When hidden, the annotation boundary is concealed and classified points appear as unclassified, reducing visual distraction when working on specific objects. Visibility state is saved with the annotation and retained across the sequence and while drawing, until the tool is reloaded.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2Fm8XN8kUdJk9EFj1evptf%2FIndividual%20Annotation%20Visibility.gif?alt=media&amp;token=c2333a34-c5b6-4b58-b546-6099141883d4" alt=""><figcaption></figcaption></figure>

* **Bulk Visibility Controls -** Annotators can now show or hide multiple annotations at once to quickly manage visual complexity. Entire class categories can be toggled using **Hide by Class / Show by Class**. For more granular control, multi-select annotations using **Ctrl + Click** and toggle visibility with **Ctrl + 1** (or **Cmd + 1** on macOS).

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FUGVCFMc74mZyCQSbdsdd%2FBulk%20Visibility%20Contrls.gif?alt=media&amp;token=6875de8a-43d0-46e2-816c-c632db199ed3" alt=""><figcaption></figcaption></figure>

***

### v**27.3.1 - April 22nd, 2026**

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Cuboids created across a sequence were incorrectly showing a message stating they did not exist in any frame other than the current one when attempting to group them. Grouping now works correctly across all frames in the sequence.

***

### **v27.3.0 - April 21st, 2026**

#### <mark style="color:$success;">**New Feature**</mark>

* **Hide Polygon Geometry Visibility -** Annotators can now hide the boundary edges of polygon annotations while keeping segmented points fully visible. This reduces visual clutter from overlapping polygon edges, allowing annotators to focus on point classifications. Geometry details are retained in full for analytics. Note that the polygon currently being drawn or edited will still display its temporary geometry until the operation is complete.

***

### v27.2.5 - April 20th, 2026

#### <mark style="color:orange;">**Known Issues**</mark>

* The Hotzone feature has been temporarily disabled while an investigation into unidentified issues is ongoing. This is a precautionary measure to prevent data inconsistency.

***

### v27.2.4 - April 13th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* The error message shown when no tasks are available or when the point cloud tool needs to be relaunched from Ango Hub has been improved. Users will now see: *"Task Unavailable — Something went wrong. Please go back to Ango Hub and launch the point cloud tool again."*\ <br>

  <figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2Fx8H0WWf7jQKEt3sxOZ3j%2FScreenshot%202026-04-20%20at%2011.41.35.png?alt=media&amp;token=cf6d3eac-4a61-42e0-9854-f986c73415b6" alt=""><figcaption></figcaption></figure>

***

### v27.2.3 - April 10th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* **Command + Left Click** to add a new vertex to a polygon now works correctly on macOS.

***

### v27.2.2 - April 9th, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* In scenes with 21 or more cuboids, points inside some annotations were not being colored when navigating between frames. All points inside all annotations are now correctly colored when classification is computed.
* Points were displaying incorrect colors when navigating quickly between frames on cuboids with noticeable position shifts between interpolated frames. Point colors now correctly match their annotation geometries during fast frame navigation.
* Resolved a storage quota issue on Chrome for Windows that was causing images to fail to load.
* Conflict resolution for cuboids, polygons, and polylines is now processed in the background, and is automatically executed on interpolation and propagation across all affected frames. A progress indicator is now displayed in the bottom-left corner of the scene during conflict resolution.

  <figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2Fsx6aHcYMmATpH4qlAniA%2FScreenshot%202026-04-09%20at%2014.24.15.png?alt=media&amp;token=8c3c360b-78b3-45e1-8b6a-d9a42624722a" alt=""><figcaption></figcaption></figure>
* Classification colors are no longer lost when pressing **Ctrl+Z** while the Brush tool is active.
* Sync-All polylines has now been fixed

***

### v27.2.1 - April 8th, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

* Resolved lag experienced when segmenting points for the first time using the brush tool, and when segmenting points in BEV view. Both operations now perform smoothly.

***

### v27.2.0 - April 7th, 2026

#### <mark style="color:$success;">**New Features**</mark>

* **Paintbrush Drawable Settings Persistence -** Previously, the brush tool would revert to its default diameter whenever you switched layers or reloaded the application. With this update, the last used brush sphere size is now saved automatically.
  * Drawable Continuity: Switch between different frames, classes or drawables without losing your preferred brush scale.
  * Session Persistence: If you refresh your browser or accidentally close your tab, your brush size will be exactly where you left it when you return.

[Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/brush.md#persistent-settings)

***

### v27.1.0 - April 3rd, 2026

#### <mark style="color:$success;">**New Features**</mark>

* **Polygon Vertex Undo/Redo -** Annotators can now undo and redo individual vertex placements while drawing a polygon, removing the need to restart from scratch when correcting a mistake. Use **Ctrl+Z** to remove the last placed vertex and **Ctrl+Shift+Z** to redo it. Undo can be applied all the way back to zero vertices, returning to an empty state. Pressing **ESC** cancels the entire polygon and clears all vertices. Undo history is preserved during navigation. [Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/3d-polygon.md#undoing-and-redoing-vertex-placements)
* **Lasso Mode for Polygon Drawing -** A new lasso mode allows annotators to draw smooth, curved polygons by automatically placing vertices as the cursor moves, eliminating repetitive clicking. Press **G** to toggle lasso mode on or off. When active, a visual indicator - cursor change and toolbar highlight - confirms the mode is enabled. Toggling off pauses or completes the polygon, and the mode persists until manually turned off. Lasso mode works for
  * 2D Polygon [Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/2d-polygon.md#lasso-mode)
  * 3D Polygon [Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/3d-polygon.md#lasso-mode)

***

### v27.0.1 - April 1st, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Paintbrush segmentation in BEV mode now works correctly when the project ontology contains a cuboid with predefined dimensions.
* Resolved an issue where image datasets were hitting a quota limit, causing images to fail to load.

***

## MARCH

### v27.0.0 - March 31, 2026

#### <mark style="color:$warning;">**Improvements**</mark>

* **Performance Boost** **-** Point cloud data is now bundled per frame into a single zip file for download, replacing the previous per-node request model. This significantly reduces the number of network requests made when loading the tool. Learn More Key benefits include:
  * Faster tool load times (including when merging point clouds).
  * Reduced network congestion when multiple users load the tool simultaneously.
  * Lower risk of failed or incomplete point cloud loads due to request overload.
  * More consistent performance across varying network conditions.
* **Hotzone -** Users can now isolate a section of the point cloud using the Hotzone tool and work exclusively within that area without risk of accidentally segmenting surrounding points. Rendering performance within the isolated section is also significantly smoother as only that portion of the point cloud is active. [Learn More](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/hotzone.md)

***

### v26.4.5 - March 25, 2026

#### <mark style="color:$success;">**New Features**</mark>

* The point cloud tool now supports PCD as an import and export format alongside LAS. When LiDAR files are imported in PCD format, the output will be delivered in PCD, and when imported in LAS, the output will be delivered in LAS. This eliminates the need for any pre-import or post-export file conversion. [Learn More](/3d-multi-sensor-fusion/importing-data-in-the-3d-multi-sensor-fusion-labeling-tool.md#lidar-data-required)
* Project owners and managers can now attach a labeling instruction document (PDF) to any active project directly from Ango Hub. The instruction link is accessible to all project members from within the 3D MSF labeling tool - click the **?** icon in the top-right corner, select **Instructions** from the dropdown, and click the attached PDF to open it in a new tab for reference. If instructions have already been uploaded, they can be replaced at any time via the **Upload Instructions** option in Ango Hub. [Learn More](/3d-multi-sensor-fusion/labeling/instruction.md)

***

### v26.4.4 - March 23, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* When changing frame using the timeline while an object is selected, the object gets automatically deselected. Only the timeline would remain visible without any object selected, causing confusion during annotation. This has now been fixed to correctly displaying the selected object in the orthographic views and the main view.
* A console error was displayed on generating rectangles. This scenario has been handled.
* Images were not loading due to s3 transfer acceleration enablement. This has been fixed and now the tool user will observe improved loading times.

***

### v26.4.3 - March 13, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* Pointcloud annotations on tasks with 200 or more annotations now correctly display class colors for segmented points.
* Deleted paintbrush segmentation points now correctly remain invisible and no longer reappear when an adjacent area is re-segmented.
* The brush sphere hotkey on macOS now works consistently.
* Polygon subtraction hotkeys are now listed in the Shortcut menu.
* Selecting **Submit and Exit** now correctly redirects users back to Ango Hub without closing the tab, and no new task is assigned following the action.
* Copy-pasting a polygon no longer causes the tool to stop responding.

***

### v26.4.2 - March 4, 2026

#### <mark style="color:blue;">**Bug Fixes**</mark>

* **Undo/Redo flickering in orthographic viewports -** Pressing undo/redo was forcing the selected annotation to deselect, causing flickering and rapid blinking in the orthographic viewports when triggered multiple times in quick succession. Undo/redo now completes smoothly without any viewport flickering.
* **Duplicate annotation on instance class change -** Changing the instance class to a class without an instance was incorrectly creating a duplicate annotation. Class changes now apply cleanly with no duplicate data created, ensuring full data integrity.
* **Inconsistent bottom line in orthographic viewports -** The bottom grey line length rendered inconsistently when changing the size of the rectangle in the orthographic viewports. It now renders uniformly.
* **Incorrect redirect after exiting 3D Film Reel -** After entering the 3D Film Reel, clicking on a 2D annotation, clicking back to a 3D annotation view and then exiting the 3D Film Reel view, incorrectly redirected users to the reference image of 2D annotation instead of returning to the last selected annotation. Exit behaviour now returns users to the correct view of selected annotation.
* **Main viewing area jump on 'top' label double-click -** Double-clicking the *top* label in the orthographic viewports caused an unexpected jump in the main viewing area. The view now remains stable on double-click.
* **Timeline attributes not updating on edit -** Attribute values edited on the timeline were not visually refreshing until the user hovered their cursor over the annotation. Attributes now update immediately upon edit without requiring any additional interaction.

***

### v26.4.1 - March 2, 2026

#### <mark style="color:$success;">**New Features**</mark>

* **Minimum LiDAR Point Density -** A new sanity check that automatically monitors the number of LiDAR points within each cuboid annotation relative to its distance from the ego vehicle. When the count falls below the project-configured threshold for a given distance band, a non-blocking warning is surfaced on the timeline per track ID and frame. Thresholds are configured per object class and distance range in the project category schema. [Learn more →](https://docs.imerit.net/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/sanity-checks/minimum-lidar-point-density)
* **Class-Based Cuboid Dimensions -** A new sanity check that validates the computed volume (L × W × H) of every cuboid against the minimum and maximum bounds defined per class in the project ontology. A visual cue appears within \~2 seconds when a cuboid's volume falls outside the permitted range for its class, distinguishing between too-small and too-large violations. Both warnings are non-blocking and clear automatically once the volume is within range. [Learn more →](https://docs.imerit.net/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/key-features/sanity-checks/class-based-cuboid-dimensions)
