Viam Documentation

Viam adapts software engineering paradigms to building machines for the physical world.

Get started with Viam

You can build many types of robotics project on Viam, from single-component projects to human-in-the-loop or AI-powered autonomous intelligent systems.

  • Hardware agnostic: Viam runs on almost all single-board computers.
  • Builder UI: Configure and test hardware and software with a simple interface.
  • SDKs: Program machines in your favorite programming language.
  • Module Registry: Find and use a variety of integrations for popular hardware, common logic patterns, machine learning models, and more.
  • CLI: Control, manage, and test from the command-line from anywhere.

We recommend starting with the Quick Start and following the Tutorial: Desk Safari to build your first machine.

Build your projects

You can use Viam to build entire projects or to add functionality to existing projects. Before you begin, we recommend reading How to think about building a machine to understand the building blocks of a machine and how to go from prototype to production.

  • Modules: The foundational building blocks of machines which keep your machine code maintainable as your project grows in complexity because you can make changes to single modules without changing the rest of the project.
  • Standardized APIs: It doesn’t matter which robotic arm, motor, or other piece of hardware you are using, the code to operate the hardware is the same. This means you can swap hardware as you iterate.
  • Fragments: Reuse configuration chunks across machines. Version control??
  • Parts and sub-parts: Create arbitrarily complex projects by connecting multiple viam-server instances.

Use Viam’s platform capabilities

The Viam platform offers many builtin capabilities from which you can pick and choose, such as:

Productionize and scale

When you ship machines, use one or more of the following tools:

  • Provisioning: ship machines with a preconfigured setup so customers can connect them to the internet and get them up and running
  • Role-based access control: Grant fine-grained permissions as needed.
  • Remote monitoring: monitor, operate, and troubleshoot machines from anywhere in the world
  • Machine settings: manage operating system package updates, network configuration, and system-level logging
  • Billing: bill customers for usage through the Viam platform