---
title: "ClassDescription"
---
<!-- DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/docs/website.rs -->

The description of a semantic Class.

If an entity is annotated with a corresponding [`components.ClassId`](https://rerun.io/docs/reference/types/components/class_id), Rerun will use
the attached [`datatypes.AnnotationInfo`](https://rerun.io/docs/reference/types/datatypes/annotation_info) to derive labels and colors.

Keypoints within an annotation class can similarly be annotated with a
[`components.KeypointId`](https://rerun.io/docs/reference/types/components/keypoint_id) in which case we should defer to the label and color for the
[`datatypes.AnnotationInfo`](https://rerun.io/docs/reference/types/datatypes/annotation_info) specifically associated with the Keypoint.

Keypoints within the class can also be decorated with skeletal edges.
Keypoint-connections are pairs of [`components.KeypointId`](https://rerun.io/docs/reference/types/components/keypoint_id)s. If an edge is
defined, and both keypoints exist within the instance of the class, then the
keypoints should be connected with an edge. The edge should be labeled and
colored as described by the class's [`datatypes.AnnotationInfo`](https://rerun.io/docs/reference/types/datatypes/annotation_info).

## Fields
#### `info`
Type: non-null [`AnnotationInfo`](../datatypes/annotation_info.md)

The [`datatypes.AnnotationInfo`](https://rerun.io/docs/reference/types/datatypes/annotation_info) for the class.

#### `keypoint_annotations`
Type: non-null List of [`AnnotationInfo`](../datatypes/annotation_info.md)

The [`datatypes.AnnotationInfo`](https://rerun.io/docs/reference/types/datatypes/annotation_info) for all of the keypoints.

#### `keypoint_connections`
Type: non-null List of [`KeypointPair`](../datatypes/keypoint_pair.md)

The connections between keypoints.


## Arrow datatype
```
Struct(
    "info": non-null Struct(
        "id": non-null UInt16
        "label": Utf8
        "color": UInt32
    )
    "keypoint_annotations": non-null List(non-null Struct(
            "id": non-null UInt16
            "label": Utf8
            "color": UInt32
        ))
    "keypoint_connections": non-null List(non-null Struct(
            "keypoint0": non-null UInt16
            "keypoint1": non-null UInt16
        ))
)
```

## API reference links
 * 🌊 [C++ API docs for `ClassDescription`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassDescription.html)
 * 🐍 [Python API docs for `ClassDescription`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassDescription)
 * 🦀 [Rust API docs for `ClassDescription`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassDescription.html)


## Used by

* [`ClassDescriptionMapElem`](../datatypes/class_description_map_elem.md)
