> 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

### 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.&#x20;

* **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.&#x20;

***

### 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="/files/25LNdKH9xzA2MpYTgnv9" 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&#x20;

#### <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&#x20;

#### <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="/files/omHNyZLHinfOpmJDuyOo" 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="/files/xQfKY4MQHWqWNCjn3YY9" 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="/files/yzEVqhaX7WbRxVek6iXJ" 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="/files/avHhL6jX70JBT5p2PHfa" 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 BRT 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="/files/TpsNAiGlU53Q5bxESnsh" 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="/files/J8QDZwzZZbSzKhdH6eoS" 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="/files/ONbcvGn19MNUBOmR420y" 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="/files/ZioPEt6SmcqUt72NprI9" 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)
