# Tools

The `tools` object is part of the [`task`](/data/importing-and-exporting-annotations/exporting-annotations/ango-export-format/asset/task.md) object in the Ango Annotation Format. It contains all annotation data pertaining to labels created with *tools*, e.g. not classifications, relations, or brushes.

Annotations created with the following annotation tools will appear in the `tools` object:

{% hint style="warning" %}
Annotations created with the [*Brush*](/labeling/labeling-tools/tools/brush-bucket.md) and [*Voxel Brush*](/labeling/labeling-tools/tools/voxel-brush.md) tools are not saved here. They are instead saved, respectively, in the `brushDataUrl` and the `medicalBrushDataUrl` objects within the [`task`](/data/importing-and-exporting-annotations/exporting-annotations/ango-export-format/asset/task.md) object. See [the page on the Task object](/data/importing-and-exporting-annotations/exporting-annotations/ango-export-format/asset/task.md) for more.

That said, if the voxel brush in your project has nested classifications, the nested classification contents will appear here.
{% endhint %}

{% hint style="warning" %}
The `page` property, in the export, is 0-indexed, while in the Ango Hub user interface it is 1-indexed.

What this means in practice is that pages start at 0 in the export, but 1 in the UI.

So for example, if, in the UI, you create a bounding box at page "12", it will appear under page "11" in the export.
{% endhint %}

## General Structure

{% code fullWidth="true" %}

```json
"tools" : [{
    bounding-box OR rotated-bounding-box OR polygon OR polyline OR segmentation OR ner OR point OR pdf OR spline// object, tool coordinate info
    objectId // string, ID of the object
    schemaId, // string, ID of the labeling tool in the project
    classifications, // list, nested classifications
    title // string, title of the tool
    page // int, page where the object is located (only multi-page, non-video assets)
    medical-brush, // bool, true if the current tool is a medical brush
    },
    { ... }
]
```

{% endcode %}

### Common Properties

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>objectId</code></td><td>String</td><td><p>Object ID of the tools. Unique in the asset.</p><pre class="language-json"><code class="lang-json">"objectId": "6b8a4338d299c63b5ee7825"
</code></pre></td></tr><tr><td><code>classifications</code></td><td>List</td><td><p>List of nested classifications (if any). May contain further nested classifications in its own <code>classifications</code> property. Each object in the list is of the <a href="/pages/jJ5k9hn01BuZ1WTY4B8q">classification</a> format. See its docs page for more information.</p><pre class="language-json"><code class="lang-json">"classifications": [    
{
      "objectId": "78d263ed59db8dd1dcb4666",
      "schemaId": "4460fa700ef030c4e575604",
      "tool": "radio",
      "title": "Nested Radio",
      "answer": "1",
      "metadata": {
        "createdAt": "2023-09-05T10:28:18.667Z",
        "createdBy": "lorenzo@example.net",
     },
    "classifications": []
  }
]
</code></pre></td></tr><tr><td><code>schemaId</code></td><td>String</td><td><p>ID of the class to which the object belongs.</p><pre class="language-json"><code class="lang-json">"schemaId": "4460fa700ef030c4e575604"
</code></pre></td></tr><tr><td><code>title</code></td><td>String</td><td><p>Name of the class to which the object belongs.</p><pre class="language-json"><code class="lang-json">"title": "Vehicle"
</code></pre></td></tr><tr><td><code>metadata</code></td><td>Dict</td><td>Only appears if the <em>Annotation Metadata</em> toggle has been turned on before export.<br><br><code>createdAt</code>: int, Time of creation in Unix epoch time in milliseconds. GMT.<br><code>createdBy</code>: string, email of user creating the object<br><code>updatedAt</code>: int, optional. Time of last object update in Unix millisecond epoch time. GMT. Only appears if object has been updated.<br><code>updatedBy</code>: string, optional. email of user last updating the object. Only appears if object has been updated.</td></tr></tbody></table>

### Coordinates in the Ango Annotation Format

This is the coordinate system used when determining the position of points in the Ango export.

The origin point lies at the top left corner, and each point has a (X, Y) coordinate pair determining its position, in pixels, on the image.

<figure><img src="/files/ZE8LMxKubOd2EE2K1MfC" alt="" width="563"><figcaption></figcaption></figure>

### Changes in Video Assets

Video assets have a slightly different format for the "tools" property:

```json
"tools" : [{
    schemaId, // string, ID of the labeling tool in the project
    objectId, // string, ID of the object
    segments, // list, start and end frames of segments for this class
    keyFrames, // object, list of keyframes for this annotation for this class
    bounding-box OR rotated-bounding-box OR polygon OR polyline OR segmentation OR ner OR point OR pdf OR spline// object, tool coordinate info
    lock, // bool, whether this object has been locked from being edited or not
    ocr, // bool, whether this object had OCR enabled or not (bounding-box only)
    metadata, // object, metadata about the object,
    outOfViewSegments, // list, start and end frames for out-of-view portions for this class
    classifications, // list, nested classifications, following the same format as parent
    },
    { ... }
]
```

We recommend examining a sample export from Ango Hub to better understand how it fits together, such as the following:

<details>

<summary>Sample Video Export</summary>

```json
[
  {
    "asset": "https://angohub-test-assets.s3.eu-central-1.amazonaws.com/67b2efe918816f1f08d26758/assets/video.mp4",
    "assetId": "67b2f05618816f1f08d26835",
    "externalId": "Atlas _ Partners in Parkour.mp4",
    "metadata": {
      "width": 1280,
      "height": 720,
      "frameTotal": 1972,
      "frameRate": 29.97
    },
    "batches": [],
    "task": {
      "taskId": "67b2f07418816f1f08d268c0",
      "type": "default",
      "stage": "Start",
      "stageId": "Start",
      "updatedAt": "2025-02-18T09:59:05.682Z",
      "updatedBy": "example@imerit.net",
      "totalDuration": 0,
      "tools": [
        {
          "schemaId": "6898f9b5d827f3583355586",
          "segments": [
            0,
            100
          ],
          "keyFrames": {
            "0": {
              "bounding-box": {
                "x": 0.6799999999999997,
                "y": 512.1166666666667,
                "width": 20,
                "height": 40
              }
            },
            "1": {
              "bounding-box": {
                "x": 0.6676905999999997,
                "y": 509.2601909333333,
                "width": 21.1217784,
                "height": 46.2854962
              }
            }
          },
          "objectId": "1",
          "lock": false,
          "ocr": null,
          "metadata": {
            "createdAt": 1739797009308,
            "createdBy": "import"
          },
          "outOfViewSegments": [],
          "classifications": [
            {
              "objectId": "6",
              "schemaId": "cb64ec98cca7c5bdb8f8330",
              "tool": "radio",
              "title": "bb-rad",
              "keyFrames": {
                "60": {
                  "answer": "a"
                },
                "61": {
                  "answer": "a"
                }
              },
              "segments": null,
              "outOfViewSegments": [],
              "classifications": []
            }
          ]
        },
        {
          "schemaId": "6898f9b5d827f3583355586",
          "segments": [
            150,
            175
          ],
          "keyFrames": {
            "155": {
              "bounding-box": {
                "x": 0.6799999999999997,
                "y": 512.1166666666667,
                "width": 20,
                "height": 40
              }
            },
            "156": {
              "bounding-box": {
                "x": 0.6184529999999997,
                "y": 497.834288,
                "width": 25.608892,
                "height": 71.427481
              }
            }
          },
          "objectId": "2",
          "lock": false,
          "ocr": null,
          "metadata": {
            "createdAt": 1739797009308,
            "createdBy": "import"
          },
          "outOfViewSegments": [],
          "classifications": []
        }
      ],
      "classifications": [
        {
          "objectId": "e6af03900d3d1727d083528",
          "schemaId": "8ae3d748a66f22f4e954374",
          "tool": "radio",
          "title": "top-radio",
          "answer": "topr3",
          "classifications": []
        },
        {
          "objectId": "d4047efd2336ecab924c770",
          "schemaId": "328e7973dbe087d4849b299",
          "tool": "checkbox",
          "title": "top-chkbox",
          "answer": [
            "topc1"
          ],
          "classifications": []
        },
        {
          "objectId": "3",
          "schemaId": "a5f51ee4a6ff0f827fb0442",
          "tool": "radio",
          "title": "radio",
          "answer": [
            "r1",
            "r2",
            "r3"
          ],
          "keyFrames": {
            "50": {
              "answer": "r1"
            },
            "51": {
              "answer": "r1"
            },
            "52": {
              "answer": "r1"
            }
          },
          "segments": [
            50,
            250
          ],
          "outOfViewSegments": [],
          "classifications": [
            {
              "objectId": "4",
              "schemaId": "44b504df31195596ca46557",
              "tool": "single-dropdown",
              "title": "radio-dropdown",
              "keyFrames": {
                "60": {
                  "answer": "rr1"
                },
                "61": {
                  "answer": "rr1"
                },
                "62": {
                  "answer": "rr1"
                }
              },
              "segments": null,
              "outOfViewSegments": [],
              "classifications": []
            }
          ]
        }
      ],
      "relations": [],
      "brushDataUrl": null,
      "medicalBrushDataUrl": null
    }
  }
]
```

</details>

## Angle

```json
{
    "angle": {
        "vertex": [
            121,
            112,
            60
        ],
        "p1": [
            17,
            166,
            60
        ],
        "p2": [
            170,
            176,
            60
        ],
        "angle": 100
    },
    "objectId": "5b1e9542a735f72f5edc815",
    "classifications": [],
    "schemaId": "e83ed8591f14d6c804f9919",
    "title": "My Angle Tool"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="92.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>vertex</code></td><td>List</td><td>The 0-indexed coordinates of the slice where the angle vertex is located, in this order:<br>- Coronal<br>- Sagittal<br>- Axial</td></tr><tr><td><code>p1</code></td><td>List</td><td>0-indexed coordinates of the slice where one of the two angle extremities is located.</td></tr><tr><td><code>p2</code></td><td>List</td><td>0-indexed coordinates of the slice where one of the two angle extremities is located.</td></tr><tr><td><code>angle</code></td><td>Float</td><td>Degrees of the angle.</td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Angle](/labeling/labeling-tools/tools/angle.md)
{% endhint %}

## Bounding Box

```json
{
    "bounding-box": {
        "x": 399.840782122905,
        "y": 400.4,
        "height": 196.84469273743017,
        "width": 199.08156424581006
    },
    "objectId": "9e9550c056d05bea9e01135",
    "classifications": [],
    "schemaId": "b1c6805d054f0e44ae11500",
    "title": "bb"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>bounding-box</code></td><td>Object</td><td><p>Object containing details about the bounding box.<br></p><p><code>x</code> - The X coordinate of the top-left point<br><code>y</code> - The Y coordinate of the top-left point<br><code>height</code> - The height, in pixels, of the bounding box<br><code>width</code> - The width, in pixels, of the bounding box</p><pre class="language-json"><code class="lang-json">"bounding-box": {
    "x": 399.840782122905,
    "y": 400.4,
    "height": 196.84469273743017,
    "width": 199.08156424581006
  }
</code></pre></td></tr></tbody></table>

#### 3D Medical Labeling Editor Sample

```json
{
    "objectId": "c8ac348fccbc78fae847014",
    "classifications": [],
    "bounding-box": {
        "x1": 124.572,
        "y1": 187.675,
        "z1": 60,
        "x2": 64.696,
        "y2": 144.039,
        "z2": 60,
        "coordinates1": {
            "coordinates": [
                {
                    "value": 15.66,
                    "direction": "R"
                },
                {
                    "value": 52.21,
                    "direction": "A"
                },
                {
                    "value": 3.81,
                    "direction": "S"
                }
            ],
            "spaceUnit": "mm"
        },
        "coordinates2": {
            "coordinates": [
                {
                    "value": 15.42,
                    "direction": "L"
                },
                {
                    "value": 29.49,
                    "direction": "A"
                },
                {
                    "value": 0.6,
                    "direction": "S"
                }
            ],
            "spaceUnit": "mm"
        }
    },
    "metadata": {
        "createdAt": 1769423798092,
        "createdBy": "lorenzo@example.net"
    },
    "schemaId": "85e5b37c42b27a719ccd680",
    "title": "Object",
    "tool": "bounding-box"
}
```

{% hint style="info" %}
**See also**

[Bounding Box](/labeling/labeling-tools/tools/bounding-box.md), [3D Bounding Box](/labeling/labeling-editor-interface/medical-labeling-editor/3d-bounding-box.md)
{% endhint %}

## Circle

```json
{
    "circle": [
        [
            1006.798,
            1109.969
        ],
        [
            1006.798,
            1182.982
        ],
        [
            1245.712,
            1147.936
        ]
    ],
    "objectId": "429464f9fca3d931af48249",
    "classifications": [],
    "metadata": {
        "createdAt": 1768993823249,
        "createdBy": "lorenzo@example.com",
        "updatedAt": 1768993827163,
        "updatedBy": "lorenzo@example.com"
    },
    "schemaId": "0bef79b7b7eac92b498e083",
    "title": "Circle-Tool",
    "tool": "circle"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="92.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>circle</code></td><td>List</td><td>X, Y coordinates of the points used to create the circle.</td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Circle](/labeling/labeling-tools/tools/circle.md)
{% endhint %}

## Entity

The Entity tool is used in both audio and text to select a portion of the asset.

#### Audio

```json
{
    "ner": {
        "start": 5.125670601851851,
        "end": 6.434645621141975
    },
    "objectId": "f3a454f8d23d212c73a4479",
    "classifications": [],
    "schemaId": "b1919d09c9770392ebdb948",
    "title": "ent"
}
```

#### Text

```json
{
    "ner": {
        "start": 319,
        "end": 429,
        "selection": "desk surface/wrist rest and still reach the buttons. I liked this enough to try to grip it a bit differently (h"
    },
    "objectId": "b6846451de619fa72bf0466",
    "classifications": [],
    "schemaId": "b1919d09c9770392ebdb948",
    "title": "ent"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>ner</code></td><td>Object</td><td><p>Object containing start/end details about the entity selected.</p><pre class="language-json"><code class="lang-json">"ner": {
          "start": 319,
          "end": 429,
          "selection": "desk surface/wrist rest and still reach the buttons. I liked this enough to try to grip it a bit differently (h"
        }
</code></pre><ul><li><p><code>start</code></p><ul><li>In text, int, 0-indexed index of the first character in the entity.</li><li>In audio, float, value in seconds where the entity starts.</li></ul></li><li><p><code>end</code></p><ul><li>In text, int, 0-indexed index of the last character in the entity.</li><li>In audio, float, value in seconds where the entity stops.</li></ul></li><li><code>selection</code> (text only): Text content of the entity.</li></ul></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Entity](/labeling/labeling-tools/tools/entity.md)
{% endhint %}

## PDF

```json
{
    "pdf": {
        "position": {
            "boundingRect": {
                "x1": 12,
                "y1": 207.234375,
                "x2": 346,
                "y2": 292.234375,
                "width": 733.44,
                "height": 1073.9200133333334
            },
            "rects": [],
            "pageNumber": 1
        },
        "content": {
            "text": "FACHZEITSCHRIFT\n\nFUR DAS MODELLEISENBAHNWESEN\nUND ALLE FREUNDE\n\nDER EISENBAHN JAHRGANG 29\n",
            "confidence": 91
        }
    },
    "objectId": "49f4415f1fab3bbbc96a275",
    "classifications": [],
    "schemaId": "aca6765850e6fa107053050",
    "title": "pdf"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>pdf</code></td><td>Object</td><td><p>Object containing coordinate, size, and content details about the PDF area.<br></p><pre class="language-json"><code class="lang-json">"pdf": {
          "position": {
            "boundingRect": {
              "x1": 12,
              "y1": 207.234375,
              "x2": 346,
              "y2": 292.234375,
              "width": 733.44,
              "height": 1073.9200133333334
            },
            "rects": [],
            "pageNumber": 1
          },
          "content": {
            "text": "FACHZEITSCHRIFT\n\nFUR DAS MODELLEISENBAHNWESEN\nUND ALLE FREUNDE\n\nDER EISENBAHN JAHRGANG 29\n",
            "confidence": 91
          }
        }
</code></pre><ul><li><p><code>position</code>: dict, positional information regarding the object</p><ul><li><p><code>boundingRect</code>: dict, positional information regarding the object</p><ul><li><code>x1</code> and <code>y1</code> X, Y coordinates of the top left point of the PDF area</li><li><code>x2</code> and <code>y2</code> X, Y coordinates of the bottom right point of the PDF area</li></ul></li><li><code>rects</code>: list, deprecated.</li><li><code>pageNumber</code>: int, the number of the PDF page where the object is found. 1-indexed.</li></ul></li><li><p><code>content</code>: dict, information regarding the content of the object</p><ul><li><code>text</code>: string, if OCR was run for the object, the OCR result.</li><li><code>confidence</code>: int, range: 0-100, if OCR was run for the object, the confidence in the OCR result as returned by Hub.</li></ul></li></ul></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[PDF Tool](/labeling/labeling-tools/tools/pdf-tool.md)
{% endhint %}

## Point

```json5
{
    "point": [
        721.2065972222223,
        146.8480902777778
    ],
    "objectId": "d0d9f24d6e927bd72dfe987",
    "classifications": [],
    "schemaId": "376a18175f35d976d204251",
    "title": "poi"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>point</code></td><td>Object</td><td><p>Object containing coordinate details about the point.<br><br>The X, Y coordinates of the point.</p><pre class="language-json"><code class="lang-json">"point": [
          721.2065972222223,
          146.8480902777778
        ]
</code></pre></td></tr></tbody></table>

#### 3D Medical Labeling Editor Sample

```json
{
    "objects": [
        {
            "point": [
                123.324,
                139.468,
                60,
                {
                    "coordinates": [
                        {
                            "value": 15.03,
                            "direction": "R"
                        },
                        {
                            "value": 27.11,
                            "direction": "A"
                        },
                        {
                            "value": 3.42,
                            "direction": "S"
                        }
                    ],
                    "spaceUnit": "mm"
                }
            ],
            "objectId": "38a308e54c497009355d650",
            "classifications": [],
            "metadata": {
                "createdAt": 1769424136679,
                "createdBy": "lorenzo@example.net"
            },
            "schemaId": "fe0b2ca0750764bd9287518",
            "title": "",
            "tool": "point"
        }
    ],
    "classifications": [],
    "relations": []
}
```

{% hint style="info" %}
**See also**

[Point](/labeling/labeling-tools/tools/point.md)
{% endhint %}

## Polygon

```json
{
    "polygon": [
        [
            600.4611650485438,
            537.2912621359224
        ],
        [
            600.4611650485438,
            472.03883495145635
        ],
        [
            543.5388349514564,
            399.84466019417476
        ]
    ],
    "objectId": "6b8a4338d299c63b5ee7825",
    "classifications": [
        {
            "objectId": "78d263ed59db8dd1dcb4666",
            "schemaId": "4460fa700ef030c4e575604",
            "tool": "radio",
            "title": "Nested Radio",
            "answer": "1",
            "metadata": {
                "createdAt": "2023-09-05T10:28:18.667Z",
                "createdBy": "lorenzo@example.net"
            },
            "classifications": []
        }
    ],
    "schemaId": "a966c7799383465850cd803",
    "title": "gon"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="92.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>polygon</code></td><td>List</td><td><p>List of lists containing X, Y coordinates of each polygon point. List may contain any number of x, y coordinate pairs.</p><pre class="language-json"><code class="lang-json">"polygon": [
    [
      600.4611650485438, // x
      537.2912621359224  // y
    ],
    [
      600.4611650485438, // x
      472.03883495145635 // y
    ],
    [
      543.5388349514564, // x
      399.84466019417476 // y
    ]
  ]
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Polygon](/labeling/labeling-tools/tools/polygon.md), [3D Polygon](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/3d-polygon.md), [What's the difference between the Polygon tool and the Segmentation tool?](/other/whats-the-difference-between-the-polygon-tool-and-the-segmentation-tool.md)
{% endhint %}

## Polyline

```json
{
    "polyline": [
        [
            359.734375,
            155.53732638888889
        ],
        [
            357.99652777777777,
            244.16753472222223
        ],
        [
            512.6649305555555,
            242.4296875
        ]
    ],
    "objectId": "7f9483f8f5506c6eeb72654",
    "classifications": [],
    "schemaId": "7a6e6f643d4adb817a35776",
    "title": "ine"
}
```

<table data-full-width="true"><thead><tr><th width="123">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>polyline</code></td><td>Object</td><td><p>Object containing coordinate details about the points making up the polyline.<br><br>A list of X, Y coordinates of its points. Points are represented consecutively. The first point in the list is the first point that was clicked when creating the polyline.<br></p><pre class="language-json"><code class="lang-json">"polyline": [
              [
                514.3834951456311,
                338.75728155339806
              ],
              [
                338.06310679611653,
                488.6990291262136
              ],
              [
                408.86893203883494,
                590.0485436893204
              ],
              [
                549.0922330097087,
                590.0485436893204
              ],
              [
                578.247572815534,
                445.6601941747573
              ]
            ]
</code></pre></td></tr></tbody></table>

#### Medical Line Tool

```json
{
    "objects": [
        {
            "objectId": "33cd357abc65e4df2536228",
            "classifications": [],
            "polyline": {
                "x1": 166.568,
                "y1": 175.208,
                "z1": 60,
                "x2": 39.333,
                "y2": 131.571,
                "z2": 60,
                "coordinates1": {
                    "coordinates": [
                        {
                            "value": 37.48,
                            "direction": "R"
                        },
                        {
                            "value": 45.72,
                            "direction": "A"
                        },
                        {
                            "value": 5.77,
                            "direction": "S"
                        }
                    ],
                    "spaceUnit": "mm"
                },
                "coordinates2": {
                    "coordinates": [
                        {
                            "value": 28.59,
                            "direction": "L"
                        },
                        {
                            "value": 23,
                            "direction": "A"
                        },
                        {
                            "value": 0.72,
                            "direction": "I"
                        }
                    ],
                    "spaceUnit": "mm"
                },
                "measurement": {
                    "distance": 69.88,
                    "unit": "mm"
                }
            },
            "metadata": {
                "createdAt": 1769424005228,
                "createdBy": "lorenzo@example.net"
            },
            "schemaId": "f98b3d8400ccc2f37e4d008",
            "title": "",
            "tool": "polyline"
        }
    ],
    "classifications": [],
    "relations": []
}
```

<table data-full-width="true"><thead><tr><th width="136">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>polyline</code></td><td>Object</td><td><p>Object containing coordinate details about the points making up the line.<br><br>A dict containing 3D coordinates, in pixels, of its points, as well as its length. (Length is only available for lines created or modified after the Ango Hub 3.21 update.)</p><pre class="language-json"><code class="lang-json">"polyline": {
      "x1": 18,
      "y1": 38,
      "z1": 17,
      "x2": 47,
      "y2": 10,
      "z2": 17,
      "measurement": {
        "distance": 130.64254312955103,
        "unit": "mm"
      }
    }
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Polyline](/labeling/labeling-tools/tools/polyline.md), [3D Polyline](/3d-multi-sensor-fusion/labeling/3d-multi-sensor-fusion-labeling-editor/drawing-tools/3d-polyline.md)
{% endhint %}

## Rotated Bounding Box

#### Rotated Bounding Box Angles

<figure><img src="/files/MSAA9UY8V9NmFrFy8TZW" alt="" width="563"><figcaption></figcaption></figure>

```json
{
    "rotated-bounding-box": {
        "x": 210.33495145631068,
        "y": 179.0970873786408,
        "height": 197.14563106796118,
        "width": 13.883495145631068,
        "corners": [
            [
                210.33495145631068,
                179.0970873786408
            ],
            [
                325.56796116504853,
                338.75728155339806
            ],
            [
                336.825603074518,
                330.6322008709114
            ],
            [
                221.59259336578015,
                170.97200669615412
            ]
        ],
        "rotation": -35.81945804237385
    },
    "objectId": "c23f41f1bddead556d82085",
    "classifications": [],
    "schemaId": "c8c1f3d2388109519849399",
    "title": "rbb"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>rotated-bounding-box</code></td><td>Object</td><td><p>Object containing coordinate and dimension details about the rotated bounding box.<br><br><code>x</code> - The X coordinate of the origin point (i.e. where the user first clicked) of the rotated bounding box</p><p><code>y</code> - The Y coordinate of the origin point (i.e. where the user first clicked) of the rotated bounding box</p><p><code>width</code> - The width of the rotated bounding box, in pixels</p><p><code>height</code> - the height of the rotated bounding box, in pixels</p><p><code>rotation</code> - the angle of rotation of the rotated bounding box, in degrees. Range: -180|+180</p><p><code>corners</code> - A list of X, Y coordinate pairs pertaining to the location of the four corners of the rotated bounding box.</p><pre class="language-json"><code class="lang-json">"rotated-bounding-box": {
          "x": 210.33495145631068,
          "y": 179.0970873786408,
          "height": 197.14563106796118,
          "width": 13.883495145631068,
          "corners": [
            [
              210.33495145631068,
              179.0970873786408
            ],
            [
              325.56796116504853,
              338.75728155339806
            ],
            [
              336.825603074518,
              330.6322008709114
            ],
            [
              221.59259336578015,
              170.97200669615412
            ]
          ],
          "rotation": -35.81945804237385
        }
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Rotated Bounding Box](/labeling/labeling-tools/tools/rotated-bounding-box.md)
{% endhint %}

## Segmentation

{% hint style="warning" %}
Segmentation point coordinates will not be visible in your export unless you activate the "Segmentation Points" toggle in the *Export* tab under the *Fields* dropdown.
{% endhint %}

{% hint style="info" %}
Metadata for segmentations will not appear even when enabling the *Annotation Metadata* toggle in the export settings.
{% endhint %}

Segmentations are composed of instances, zones, regions, and holes.

An instance may contain more than one zone. One zone contains exactly one region. A region can contain more than one hole.

Each of the points composing the segmentation is represented as an X/Y coordinate pair.

<div data-with-frame="true"><figure><img src="/files/PTzPZo0Tt7H0MFnYE71D" alt=""><figcaption><p>Properties of the Segmentation Tool</p></figcaption></figure></div>

```json
{
    "schemaId": "0ccae6f3a41e4f8cd1de721",
    "objectId": "eace3fa4ad53eedfa033266",
    "segmentation": {
        "zones": [
            {
                "region": [
                    [
                        313.162,
                        414.94
                    ],
                    [
                        313.717,
                        411.981
                    ],
                    [
                        316.517,
                        397.045
                    ]
                ],
                "holes": []
            },
            {
                "region": [
                    [
                        369.814,
                        331.194
                    ],
                    [
                        376.151,
                        328.957
                    ],
                    [
                        389.216,
                        324.346
                    ]
                ],
                "holes": [
                    [
                        [
                            406.712,
                            372.575
                        ],
                        [
                            407.344,
                            380.782
                        ],
                        [
                            409.238,
                            388.358
                        ]
                    ]
                ]
            }
        ]
    },
    "classifications": [],
    "title": "Vehicle"
}
```

<table data-full-width="true"><thead><tr><th width="201">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>segmentation</code></td><td>Object</td><td><p>Object containing details about a segmentation instance.<br>A segmentation instance can be composed of multiple zones. Each zone contains at least one region and may optionally contain a hole, which is always included, coordinate wise, within the region. More details in the <a href="#segmentation">segmentation</a> section above.</p><pre class="language-json"><code class="lang-json">"segmentation": {
    "zones": [
      {
        "region": [
          [
            313.162, // x
            414.94.  // y
          ],
          [
            313.717,
            411.981
          ],
          [
            316.517,
            397.045
          ]
        ],
        "holes": []
      },
      {
        "region": [
          [
            369.814,
            331.194
          ],
          [
            376.151,
            328.957
          ],
          [
            389.216,
            324.346
          ]
        ],
        "holes": [
          [
            [
              406.712,
              372.575
            ],
            [
              407.344,
              380.782
            ],
            [
              409.238,
              388.358
            ]
          ]
        ]
      }
    ]
}
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Segmentation](/labeling/labeling-tools/tools/segmentation.md), [What's the difference between the Polygon tool and the Segmentation tool?](/other/whats-the-difference-between-the-polygon-tool-and-the-segmentation-tool.md)
{% endhint %}

## Skeleton

```json
{
    "schemaId": "b233269571ca360af279958",
    "objectId": "c1f620d19695e29aa6e7035",
    "skeleton": {
        "nodes": [
            {
                "id": "2d0b31e36fc36ab7c8b8255",
                "x": 237.701,
                "y": 93.92,
                "occluded": false
            },
            {
                "id": "d241121647111766e19c743",
                "x": 238.806,
                "y": 151.379,
                "occluded": false
            },
            {
                "id": "6db8e6f91a9efc803f05004",
                "x": 196.817,
                "y": 192.815,
                "occluded": false
            },
            {
                "id": "d6df89cc9917e1641537667",
                "x": 287.67,
                "y": 197.609,
                "occluded": false
            }
        ],
        "edges": [
            {
                "id": "5abdfe2f38da9f859ea5275",
                "from": "2d0b31e36fc36ab7c8b8255",
                "to": "d241121647111766e19c743",
                "occluded": false
            },
            {
                "id": "99652b301b58111d86fb802",
                "from": "d241121647111766e19c743",
                "to": "6db8e6f91a9efc803f05004",
                "occluded": false
            },
            {
                "id": "78d167d96c6c1d9773d1651",
                "from": "d241121647111766e19c743",
                "to": "d6df89cc9917e1641537667",
                "occluded": false
            }
        ]
    },
    "title": "Skeleton",
    "classifications": [],
}
```

<table data-full-width="true"><thead><tr><th width="153.67578125">Property</th><th width="90.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>skeleton</code></td><td>Object</td><td><p>Object containing coordinate and dimension details about the skeleton tool.<br><br><code>nodes</code> - A list of keypoints that define the skeleton structure. Each node represents a point with a position in the asset.</p><p><code>edges</code> - A list of connections between nodes that define the relationships or bones of the skeleton.</p><pre class="language-json"><code class="lang-json">"skeleton": {
        "nodes": [
            {
                "id": "2d0b31e36fc36ab7c8b8255",
                "x": 237.701,
                "y": 93.92,
                "occluded": false
            },
            {
                "id": "d241121647111766e19c743",
                "x": 238.806,
                "y": 151.379,
                "occluded": false
            },
            {
                "id": "6db8e6f91a9efc803f05004",
                "x": 196.817,
                "y": 192.815,
                "occluded": false
            },
            {
                "id": "d6df89cc9917e1641537667",
                "x": 287.67,
                "y": 197.609,
                "occluded": false
            }
        ],
        "edges": [
            {
                "id": "5abdfe2f38da9f859ea5275",
                "from": "2d0b31e36fc36ab7c8b8255",
                "to": "d241121647111766e19c743",
                "occluded": false
            },
            {
                "id": "99652b301b58111d86fb802",
                "from": "d241121647111766e19c743",
                "to": "6db8e6f91a9efc803f05004",
                "occluded": false
            },
            {
                "id": "78d167d96c6c1d9773d1651",
                "from": "d241121647111766e19c743",
                "to": "d6df89cc9917e1641537667",
                "occluded": false
            }
        ]
    }
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
**See also**

[Skeleton](/labeling/labeling-tools/tools/skeleton.md)
{% endhint %}

## PCT

```json
{
    "objectId": "afabc5ad-cbac-4714-8b52-c70b54928e14",
    "classifications": [],
    "schemaId": "1bc59958525e1c8992a2256",
    "page": "1",
    "markingTool": "Polygon",
    "pct": {
        "label": "1bc59958525e1c8992a2256",
        "_id": "672c608c12a2f1820a433449",
        "id": "afabc5ad-cbac-4714-8b52-c70b54928e14",
        "object_type": "polygongroup",
        "identity": 0,
        "position": [
            0,
            0,
            0
        ],
        "orientation": [
            0,
            0,
            0,
            1
        ],
        "points": [
            {
                "position": {
                    "x": 0.04556074766355134,
                    "y": -0.06644275700934575,
                    "z": 1.4210144207991604e-18
                }
            },
            {
                "position": {
                    "x": 0.022196261682243094,
                    "y": -0.030373831775700934,
                    "z": 1.4210144207991604e-18
                }
            },
            {
                "position": {
                    "x": 0.0887850467289719,
                    "y": 0.09681658878504669,
                    "z": 1.4210144207991604e-18
                }
            },
            {
                "position": {
                    "x": 0.2756254016834791,
                    "y": 0.29481451192726466,
                    "z": -0.021115406983940727
                }
            },
            {
                "position": {
                    "x": 0.24406891483779214,
                    "y": 0.14731302359852402,
                    "z": -0.02109511367217651
                }
            },
            {
                "position": {
                    "x": 0.24406891483779214,
                    "y": 0.14731302359852402,
                    "z": -0.02109511367217651
                }
            }
        ],
        "taxonomy_attribute": {}
    },
    "title": "Polygons"
}
```

{% hint style="info" %}
**See also**

[PCT](/3d-multi-sensor-fusion/labeling/category-schema/pct-class-level.md)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.imerit.net/data/importing-and-exporting-annotations/exporting-annotations/ango-export-format/asset/task/tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
