<table class="fo-notebook-links" align="left">
    <td>
        <a target="_blank" href="https://colab.research.google.com/github/voxel51/fiftyone/blob/main/docs/source/getting_started/threed_visual_ai/02_loading_annotations.ipynb">
            <img src="https://cdn.voxel51.com/colab-logo-256px.png"> &nbsp; Run in Google Colab
        </a>
    </td>
    <td>
        <a target="_blank" href="https://github.com/voxel51/fiftyone/blob/main/docs/source/getting_started/threed_visual_ai/02_loading_annotations.ipynb">
            <img src="https://cdn.voxel51.com/github-logo-256px.png"> &nbsp; View source on GitHub
        </a>
    </td>
    <td>
        <a target="_blank" href="https://raw.githubusercontent.com/voxel51/fiftyone/main/docs/source/getting_started/threed_visual_ai/02_loading_annotations.ipynb" download>
            <img src="https://cdn.voxel51.com/cloud-icon-256px.png"> &nbsp; Download notebook
        </a>
    </td>
</table>

# Getting Started with Loading 3D Annotations

3D samples may contain any type and number of custom fields, including 3D detections and 3D polylines, which are natively visualizable by the [App’s 3D visualizer](https://docs.voxel51.com/user_guide/app.html#using-the-3d-visualizer).

Because 3D annotations are stored in dedicated fields of datasets rather than being embedded in FO3D files, they can be queried and filtered via dataset views and in the App just like other primitive/label fields. It looks like this:

Let’s break down the label a little bit more, diving into just exactly what `location`, `dimensions`, and `rotation` entail:

Note here that scene coordinates are starting from `[0,0,0]` which almost always is the ego, or the location of where the sensor started. It does not map from any known global coordinates.

# 3D Polylines

3D Polylines work much the same as the detection do! They are stored as a decdicated field on your dataset and needs the arguments `label` and `points3d`:

Another note, notice how for 3D you dont use `Detection3D` or `Polyline3D` classes from FiftyOne. The label classes `Detection` and `Polyline` will automatically adjust given 2D or 3D inputs!
