# Projects, annotations, and branches

> Learn how projects coordinate collaborators, labels, resources, and annotation history.

A project is the boundary for a collaborative annotation task. It combines a stable label
configuration with the people, resources, and review history needed to complete that task.

## Project configuration

Projects share semantic labels across both detection and segmentation work. Annotation geometry
is determined separately for each branch, so no project type needs to be chosen at creation.

## Project roles

Project membership uses roles:

* **Owners and administrators** manage the project and its collaborators.
* **Contributors** work with project resources and annotations.
* **Viewers** inspect the project without changing it.

The exact actions shown in the interface follow both the current user's role and the
deployment's enabled capabilities.

## Annotation branches

Branches let a project preserve separate lines of annotation work. The protected main branch
is created with the project. Additional branches can support independent annotation, review,
or experimentation without overwriting another contributor's saved work.

Each branch spans the project's images, with a separate annotation snapshot for each image.
Branches can start from existing annotation history or from the project's empty initial
revision. An empty branch retains access to the project's images and semantic labels.

The first saved annotation fixes the branch type: rectangles mean detection and polygons mean
segmentation. The type applies to every image and remains after annotations are deleted. Forks
inherit the type at their source revision; empty branches start without a type. Detection and
segmentation branches cannot be merged or compared.

Graphical objects and their tags belong to an image within a project branch. An annotation
set is a separate, immutable execution result that can cover multiple images and can be
promoted into an editable branch.
