Unlocking the Power of 3D Annotations with CVAT: A Comprehensive Guide

Jun 5, 2025

Introduction to CVAT

CVAT (Computer Vision Annotation Tool) is an open-source tool designed for annotating images and videos, particularly in the realm of computer vision. The CVAT-CANVAS-3D module, written in TypeScript, provides a robust canvas for viewing, drawing, and editing 3D annotations, making it an essential tool for developers and researchers working with 3D data.

Key Features of CVAT

  • 3D Annotation Support: Easily create and manage 3D annotations.
  • TypeScript Implementation: Leverage the power of TypeScript for better code quality and maintainability.
  • API Methods: A comprehensive set of API methods for advanced functionalities.
  • Community Contributions: Open-source nature encourages contributions and improvements.

Technical Architecture and Implementation

The CVAT project is structured with a focus on modularity and scalability. The CVAT-CANVAS-3D module is a core component that allows users to interact with 3D data seamlessly. The architecture is designed to handle complex data structures while providing a user-friendly interface.

With a total of 2589 files and 389489 lines of code, the project is substantial, indicating a well-thought-out design and implementation.

Setup and Installation Process

To get started with CVAT, follow these simple steps:

git clone https://github.com/cvat-ai/cvat.git
cd cvat

Next, build the module from the sources:

yarn run build
yarn run build --mode=development  # without a minification

Ensure you have all dependencies installed and follow the official documentation for detailed setup instructions.

Usage Examples and API Overview

The CVAT-CANVAS-3D module provides various API methods to interact with the canvas. Here’s a brief overview of some key methods:

interface Canvas3d {
  html(): ViewsDOM;
  setup(frameData: any, objectStates: any[]): void;
  isAbleToChangeFrame(): boolean;
  mode(): Mode;
  render(): void;
  keyControls(keys: KeyboardEvent): void;
  draw(drawData: DrawData): void;
  cancel(): void;
  dragCanvas(enable: boolean): void;
  activate(clientID: number | null, attributeID?: number): void;
  configureShapes(shapeProperties: ShapeProperties): void;
  fitCanvas(): void;
  fit(): void;
  group(groupData: GroupData): void;
}

Here’s how to create an instance of the canvas:

const canvas = new window.canvas.Canvas3d();
console.log('Version ', window.canvas.CanvasVersion);
console.log('Current mode is ', window.canvas.mode());

For more detailed usage, refer to the official documentation.

Community and Contribution Aspects

CVAT thrives on community contributions. If you’re interested in contributing, please follow the guidelines outlined in the Contributing Guidelines section of the repository. Good pull requests are always welcome!

To contribute:

  1. Fork the repository.
  2. Clone your fork and create a new topic branch.
  3. Make your changes and commit them.
  4. Push your changes and open a pull request.

For detailed instructions, check the official repository.

License and Legal Considerations

CVAT is licensed under the MIT License, allowing for free use, modification, and distribution. However, it’s important to adhere to the license terms when using or contributing to the project.

Project Roadmap and Future Plans

The CVAT team is continuously working on enhancing the tool with new features and improvements. Future plans include:

  • Improving the user interface for better usability.
  • Adding more annotation types and tools.
  • Enhancing performance and scalability.

Stay tuned for updates by following the project on GitHub!

Conclusion

CVAT is a powerful tool for anyone involved in computer vision and 3D data annotation. With its open-source nature, extensive features, and active community, it stands out as a leading choice for developers and researchers alike.

For more information, visit the CVAT GitHub Repository.

FAQ

What is CVAT?

CVAT is an open-source tool designed for annotating images and videos, particularly in computer vision applications. It supports 3D annotations through its CVAT-CANVAS-3D module.

How can I contribute to CVAT?

You can contribute by forking the repository, making changes, and submitting a pull request. Ensure to follow the contribution guidelines provided in the repository.

What programming language is CVAT written in?

CVAT is primarily written in TypeScript, which enhances code quality and maintainability. The project also utilizes various other technologies for its backend and frontend.

Is CVAT free to use?

Yes, CVAT is licensed under the MIT License, allowing free use, modification, and distribution of the software.