For the complete documentation index, see llms.txt. This page is also available as Markdown.

Supervisely

Overview

All information about the Supervisely Meshes annotation format can be found here

Format description

Supported mesh formats: .ply, .stl, .obj With annotations: yes Supported annotation format: .json + .bin geometry files. Data structure: Information is provided below.

Input files structure

Both directory and archive are supported. Each dataset is a directory with meshes and annotations subdirectories. Nested datasets are stored in a datasets subdirectory of the parent dataset.

Recommended directory structure:

📦 project_name
├── 📂 dataset_name
│   ├── 📂 meshes
│   │   ├── 📄 mesh_01.ply
│   │   └── 📄 mesh_02.ply
│   ├── 📂 annotations
│   │   ├── 📂 mesh_01.ply
│   │   │   ├── 📄 annotation.json
│   │   │   └── 📂 geometries
│   │   │       ├── 📄 {label_key}.indices.bin
│   │   │       └── 📄 {label_key}.indices.bin
│   │   └── 📂 mesh_02.ply
│   │       ├── 📄 annotation.json
│   │       └── 📂 geometries
│   │           └── 📄 {label_key}.indices.bin
│   └── 📂 datasets
│       └── 📂 nested_dataset_name
│           ├── 📂 meshes
│           └── 📂 annotations
└── 📄 meta.json

Project meta file meta.json contains classes and tags definitions. Learn more about the meta.json file here.

annotation.json

Each mesh has a corresponding annotation.json describing its labels.

Fields definitions:

  • key — unique annotation key

  • tags — entity-level tags of the mesh

  • labels — list of labeled objects; each label has a classTitle and a unique key, and stores vertex indices via indicesPath

  • indicesPath — path to the .bin file containing the vertex index set for this label (little-endian uint32), relative to the annotation directory of the item

  • meshId, id, tagId, priority, customData and other server-side metadata fields are written on export and are optional on import — they are not required to create the annotations

Last updated