Build robots like you build software

For most software engineers, the “physical world" is a mess of proprietary drivers, complex networking, and low-level C++. Viam changes that. We provide a unified software layer that abstracts away the hardware, networking, data management, and more — so you can focus on writing code you care about.
A screenshot of the Viam app overlaid on top of a photo of robotic arms on a conveyor belt

Section header copy goes here

Write app code, not drivers.

Instead of learning proprietary SDKs for every sensor and motor, Viam gives you consistent APIs across all hardware. If you change a camera or motor in your config, your code keeps working.

Universal APIs Across Manufacturers

Every camera component in Viam exposes the same GetImage() method regardless of brand. Same for motors, sensors, arms, and other components. That means you can swap hardware without rewriting your code.

Built-in Drivers For Hundreds of Devices

Viam’s Registry provides drivers for your hardware, so you don’t need to implement one yourself. Specify your hardware model and connection details in the config, and viam-server pulls the driver from the Registry and initializes it automatically.

Multi-Language SDKs

Write your control logic in Python or Go, get lower-level control with C++, or build a client application with Typescript or Flutter.
A photo of an Orbbec camera mounted onto a robotic arm. A block of code is overlaid showing how simple it is to swap your hardware in the Viam app.

Connect and control hardware remotely.

No need to SSH into machines or stand next to robots for updates. Viam treats your hardware like cloud infrastructure—connect from anywhere, no VPN required.

Cloud-Managed Connectivity

Built-in NAT traversal means you connect to any machine through firewalls and routers. No port forwarding, no networking configuration, no "it works on my machine" problems.

Live Remote Testing

Write code in your local IDE and execute it against hardware in the field. Stream camera feeds, read sensor data, and visualize machine state in real-time from your browser.

Teleoperate from the Browser

Drive bases with keyboard controls, move arms to specific positions, or test components directly from Viam's web interface. Debug without deploying code.
A rendering of a delivery robot moving on a cobblestone path. A screenshot of the viam app is overlaid showing the camera feed and controls for the robot.

Collect data and train models.

Configure data capture, and Viam handles the pipeline. Collect images, sensor readings, or custom telemetry. Data syncs automatically to the cloud when bandwidth allows.

Edge-to-Cloud Pipeline with Resilience

Data queues locally during network outages and in low-bandwidth environments, and syncs when connectivity returns. Handles restarts and storage constraints automatically.

Train Models Without Building New Infrastructure

Create and annotate datasets, and train ML models in your chosen architecture, all through the cloud. Or bring your own model.

Deploy Intelligence to Your Fleet

Push trained models to the cloud. Machines pull them automatically and run inference locally. Version, stage, and roll back models just like code.
A photo of bottles on a conveyor belt. A machine learning model is being used to identify a defect in the bottle.

Scale prototypes into a fleet of robots.

Export your working prototype configuration as a reusable fragment, deploy to hundreds of machines, and manage everything from a single dashboard—updates, monitoring, and remote operations included.

Reusable Configurations for Automatic Provisioning

Export your working setup as a fragment—a reusable configuration block designed to save you build time. New machines running viam-server pull the fragment from the cloud on first boot and start running immediately.

Send Fleet-Wide OTA Updates

Update configurations, code modules, or ML models across your entire fleet in seconds. Schedule maintenance tasks without writing cron jobs.

Monitor and Operate Remotely

See online/offline status, data sync progress, and logs for every machine from one dashboard. Set up alerts for machines going offline, encountering errors, or meeting custom conditions. Control access with role-based permissions for team members.
A photo of robotic arms working on a car in a factory. The code block is showing how you can push updates to your fleet.

White label robotics under your brand.

Most robotics companies spend months building customer portals, mobile apps, and payment systems before they can sell their first unit. Viam provides the customer-facing infrastructure so you can focus on your product's unique value.

Custom-Branded Authentication

Your customers can authenticate through your domain with your branding. Configure SSO, OAuth, or email/password. They interact with your product, not Viam's platform.

Build Client Apps with Familiar Tools

Use the TypeScript SDK to build web dashboards or the Flutter SDK for native mobile apps. The same component and service APIs you used during development are also callable from your customer's browser or phone.

Built-In Billing

Define your pricing: per-machine fees, data transfer costs, compute hours, API calls. Viam tracks usage, generates invoices, and processes payments.
A photo of a person holding their phone displaying the authentication screen of the Canyon Runner app. A block of code from the Viam app is overlaid over top.

How Viam works

Three components work together to make this possible:

viam-server (Runs on Every Machine)

Think of it as a container runtime for hardware. It pulls drivers from the Registry, starts processes, manages networking, and syncs data to the cloud. Install with a single command on Mac, Linux or Windows.

Viam Registry

A central repository of modules (hardware drivers), ML models, and reusable configurations. Like npm or PyPI, but for robotics. Browse community contributions or publish your own assets—publicly or privately within your organization.

Viam Cloud

Manages your fleet: configuration versioning, data storage, over-the-air updates, remote connectivity, and monitoring. Your single dashboard for everything from one machine to thousands.

Everything You Need to Build, Deploy, and Scale

Viam handles the full lifecycle of your robotics application:

Get Hardware Running in Minutes

Add cameras, motors, arms, or sensors to your JSON config. Viam pulls drivers from the Registry and exposes consistent APIs. No driver installation, no dependency management.

Logos of some of the many brands whose hardware are compatible with Viam

Connect from Anywhere

Stream logs, view camera feeds, and teleoperate machines from your browser. Built-in NAT traversal means you connect to any machine without VPNs or firewall configuration.

An image from the Viam app showing an overview of a robot in your fleet

Capture Data from Edge to Cloud

Configure data capture in JSON—which components, how often. Data syncs automatically when bandwidth allows, queues locally during outages, and resumes after restarts.

Train and Deploy Models Without the Overhead

Train ML models on captured data without provisioning GPUs or building pipelines. Deploy models to your fleet with the same versioning system as code.

A chart showing how data goes from machine to the viam app and is used to create ML models which are then pushed back down to the machine.

Develop Application Code from Anywhere

Write code on your laptop that runs against remote hardware. Test in your IDE, deploy when ready. Same code, same APIs—just different execution environments.

The code for a Viam module being saved and deployed

Let Viam Deploy and Manage Your Application Code

Package your control logic as a module. Viam manages dependencies and handles lifecycle management.

Code in the Viam app being packaged into a module

Scale from Prototype to Fleet

Turn your working prototype into a reusable configuration. Deploy the same setup to dozens or hundreds of machines with per-machine overrides for site-specific settings.

An illustration showing how you can push updated configurations to your entire fleet of robots

Monitor and Operate Your Fleet Remotely

See online/offline status, logs, and data sync progress for every machine in one dashboard. Get alerts when machines encounter errors or go offline.

A screenshot of the Viam app showing your full fleet online

Deliver Products to Your Customers

Build robotics products with white-label authentication, customer-facing SDKs for web and mobile, and built-in billing. Focus on your product, not infrastructure.

A screenshot of the authentication screen on the Canyon Runner app
start tutorialread documentation

Ready to start?

Get a working system in 15 minutes
Try the Quickstart Tutorial
Understand concepts in depth
Browse the documentation

Write app code, not drivers.

Instead of learning proprietary SDKs for every sensor and motor, Viam gives you consistent APIs across all hardware. If you change a camera or motor in your config, your code keeps working.

Universal APIs Across Manufacturers

Every camera component in Viam exposes the same GetImage() method regardless of brand. Same for motors, sensors, arms, and other components. That means you can swap hardware without rewriting your code.

Built-in Drivers For Hundreds of Devices

Viam’s Registry provides drivers for your hardware, so you don’t need to implement one yourself. Specify your hardware model and connection details in the config, and viam-server pulls the driver from the Registry and initializes it automatically.

Multi-Language SDKs

Write your control logic in Python or Go, get lower-level control with C++, or build a client application with Typescript or Flutter.

Connect and control hardware remotely.

No need to SSH into machines or stand next to robots for updates. Viam treats your hardware like cloud infrastructure—connect from anywhere, no VPN required.

Cloud-Managed Connectivity

Built-in NAT traversal means you connect to any machine through firewalls and routers. No port forwarding, no networking configuration, no "it works on my machine" problems.

Live Remote Testing

Write code in your local IDE and execute it against hardware in the field. Stream camera feeds, read sensor data, and visualize machine state in real-time from your browser.

Teleoperate from the Browser

Drive bases with keyboard controls, move arms to specific positions, or test components directly from Viam's web interface. Debug without deploying code.

Collect data and train models.

Configure data capture, and Viam handles the pipeline. Collect images, sensor readings, or custom telemetry. Data syncs automatically to the cloud when bandwidth allows.

Edge-to-Cloud Pipeline with Resilience

Data queues locally during network outages and in low-bandwidth environments, and syncs when connectivity returns. Handles restarts and storage constraints automatically.

Train Models Without Building New Infrastructure

Create and annotate datasets, and train ML models in your chosen architecture, all through the cloud. Or bring your own model.

Deploy Intelligence to Your Fleet

Push trained models to the cloud. Machines pull them automatically and run inference locally. Version, stage, and roll back models just like code.

Scale prototypes into a fleet of robots.

Export your working prototype configuration as a reusable fragment, deploy to hundreds of machines, and manage everything from a single dashboard—updates, monitoring, and remote operations included.

Reusable Configurations for Automatic Provisioning

Export your working setup as a fragment—a reusable configuration block designed to save you build time. New machines running viam-server pull the fragment from the cloud on first boot and start running immediately.

Send Fleet-Wide OTA Updates

Update configurations, code modules, or ML models across your entire fleet in seconds. Schedule maintenance tasks without writing cron jobs.

Monitor and Operate Remotely

See online/offline status, data sync progress, and logs for every machine from one dashboard. Set up alerts for machines going offline, encountering errors, or meeting custom conditions. Control access with role-based permissions for team members.
A photo of robotic arms working on a car in a factory. The code block is showing how you can push updates to your fleet.

White label robotics under your brand.

Most robotics companies spend months building customer portals, mobile apps, and payment systems before they can sell their first unit. Viam provides the customer-facing infrastructure so you can focus on your product's unique value.

Custom-Branded Authentication

Your customers can authenticate through your domain with your branding. Configure SSO, OAuth, or email/password. They interact with your product, not Viam's platform.

Build Client Apps with Familiar Tools

Use the TypeScript SDK to build web dashboards or the Flutter SDK for native mobile apps. The same component and service APIs you used during development are also callable from your customer's browser or phone.

Built-In Billing

Define your pricing: per-machine fees, data transfer costs, compute hours, API calls. Viam tracks usage, generates invoices, and processes payments.

Everything You Need to Build, Deploy, and Scale

Viam handles the full lifecycle of your robotics application:

Get Hardware Running in Minutes

Add cameras, motors, arms, or sensors to your JSON config. Viam pulls drivers from the Registry and exposes consistent APIs. No driver installation, no dependency management.

Connect from Anywhere

Stream logs, view camera feeds, and teleoperate machines from your browser. Built-in NAT traversal means you connect to any machine without VPNs or firewall configuration.

An image from the Viam app showing an overview of a robot in your fleet

Capture Data from Edge to Cloud

Configure data capture in JSON—which components, how often. Data syncs automatically when bandwidth allows, queues locally during outages, and resumes after restarts.

Train and Deploy Models Without the Overhead

Train ML models on captured data without provisioning GPUs or building pipelines. Deploy models to your fleet with the same versioning system as code.

Develop Application Code from Anywhere

Write code on your laptop that runs against remote hardware. Test in your IDE, deploy when ready. Same code, same APIs—just different execution environments.

The code for a Viam module being saved and deployed

Let Viam Deploy and Manage Your Application Code

Package your control logic as a module. Viam manages dependencies and handles lifecycle management.

Code in the Viam app being packaged into a module

Scale from Prototype to Fleet

Turn your working prototype into a reusable configuration. Deploy the same setup to dozens or hundreds of machines with per-machine overrides for site-specific settings.

Monitor and Operate Your Fleet Remotely

See online/offline status, logs, and data sync progress for every machine in one dashboard. Get alerts when machines encounter errors or go offline.

A screenshot of the Viam app showing your full fleet online

Deliver Products to Your Customers

Build robotics products with white-label authentication, customer-facing SDKs for web and mobile, and built-in billing. Focus on your product, not infrastructure.

OVERVIEW

Explore Viam

The robotics platform that moves at the speed of software
Viam brings software engineering maturity to robotics and automation, giving developers the tools to move fast—to prototype, iterate, deploy and scale—on a single platform. Everything deployed on your hardware is open-source, ensuring transparency and control over your systems.
overview

Explore Viam

The robotics platform that moves at the speed of software
Viam brings software engineering maturity to robotics and automation, giving developers the tools to move fast—to prototype, iterate, deploy and scale—on a single platform. Everything deployed on your hardware is open-source, ensuring transparency and control over your systems.
WHAT MAKES VIAM DIFFERENT

Modern development tools bring software engineering velocity to hardware applications

Robotics is ready for the mature engineering practices that have become standard in software development over the last 30 years—version control, modern SDKs, cloud-based configuration. With Viam, you can use best-in-class tools and workflows:

Open-source SDKs in Python, Go, TypeScript, Flutter, and C++

Web-based configuration UI

Version control for machine configurations

Real-time monitoring and alerts

Platform Architecture

Watch as our CEO Eliot Horowitz walks us through Viam’s full-stack, modular platform architecture—highlighting seamless integration, hardware interoperability, and scalability. (3 minutes)
BUILD & INTEGRATE

Hardware-agnostic APIs allow you to swap components easily

Rather than rewriting integration logic every time you change out hardware components (like sensors, cameras, or arms), Viam's standardized APIs work across any hardware vendor, allowing for rapid iteration and testing.
An illustration showing how you can change which robotic arm you're using by just changing a single line of code
An image showing a robotic arm holding a glass while another arm holds a bottle of water and pours it into the glass. The image has bounding boxes showing how you can train viam to detect objects in the photo.
data & ai

Built-in data management handles data infrastructure

Building intelligent machines requires managing complex data workflows and iterating on ML models. Viam handles data capture and storage, cloud sync, model training and deployment. You have the flexibility to train models on the platform or bring your own. Focus on building your robot while Viam manages the infrastructure.
DEPLOY & MANAGE

Fully integrated platform supports scaling production-level fleets

Building a production-ready robotics company typically means integrating separate services for fleet management, monitoring, authentication, billing, and more. Each requires a learning curve and maintenance as you scale. With Viam, you avoid integration work—our unified platform means you can go from prototype to production in days, not months. Adopt our whole stack or just take the parts you need right now.
An illustration showing a dashboard within the viam app

Ready to start building?

Check out our Quick Start tutorial.

Platform at a Glance

Swap hardware components by changing configurations, not rewriting code. Read the docs to learn more
Hardware-agnostic APIs for motors, cameras, sensors, arms, and more
Module registry with community-built drivers that are instantly compatible with common hardware
Custom modules for hardware not yet supported
Modern SDKs in Python, Go, TypeScript, Flutter, and C++
Direct gRPC APIs access to write custom SDKs in any language
Web-based configuration with live hardware testing
Capture data at the edge, sync to cloud, train models, and deploy back to the device. Read the docs to learn more
Automatic data capture and sync from your entire fleet to the cloud
Built-in image annotation, or data export capabilities to use with your preferred platform
Cloud-based model training for object detection and classification, with instant deployment to your devices.
Edge and cloud inference for every use case
Sensor and image data querying using SQL or MQL
Model deployment using custom-trained or pre-built registry models, with instant deployment to your devices
Manage your robotic fleet with integrated monitoring, troubleshooting, and deployment tools to scale beyond the lab. Read the docs to learn more
Reusable configuration blocks for fleet-wide OTA updates
Staged rollouts to test updates before deploying fleet-wide
Version control to manage machine configuration versions across the fleet
Remote debugging to access logs and diagnostic data even when robots go offline
WebRTC connectivity works across network boundaries, enabling robots on different networks to talk to each other seamlessly
Real-time monitoring in a customizable dashboard showing status, alerts, and health metrics
Security & Compliance

Enterprise-grade security built in, not bolted on

End-to-end encryption (TLS/WebRTC). Role-based access control at every level. SOC 2 Type 2 certified with HIPAA and GDPR compliance. You own your data—export or delete anytime.
Learn more
SOC2 Compliant BadgeISO/IEC 27001 Certification markHipaa Compliance BadgeAn icon representing the General Data Protection RegulationAn icon representing the California Privacy Rights Act

Get started with Viam

STEP 1
Sign up Create your free account at app.viam.com and add your first machine.
Get Started Free
STEP 2
Install viam-server Run the one-line install command on your hardware (Pi, SBC, or Linux/Mac).
View setup docs
STEP 3
Build Configure components, test in your browser, then connect via SDK.
Complete tutorial
overview

Explore the Viam Platform

The engineering platform for devices in the physical world.
Viam is a full stack solution for the kinds of devices that exist anywhere from your home, your office, in cars or boats, in warehouses or factories, at arenas, or other public places.
Viam is already an extensive platform, and continues to expand, because building products in the physical world is hard, and cobbling together a dozen tools or building them yourself takes a huge amount of valuable work from the engineers who should be focused on your unique products.
Viam is designed to run everywhere, from a Raspberry Pi, to a massive Linux server, to an ESP32.
We start with low-level integrations with any sensor or actuators, and enable you to connect and manage everything in the cloud; with that it is simple to get data from the physical world into the cloud, and taking action on it back in the physical world is just as easy.
Everything in Viam is pluggable and modular. You can add support for any device you need, any algorithm you want, or any model training or inference engine you care to use.
Please read more below, and in the docs, and we can’t wait to see what you build.

Viam's platform architecture

A diagram showing Viam's platform architecture

Platform Architecture

Watch as CEO Eliot Horowitz walks us through Viam’s full-stack, modular platform architecture—highlighting seamless integration, hardware interoperability, and scalability. (3 minutes)

Platform Demo

Watch a quick demo of the Viam platform, using a smart cat food feeder. You’ll see how Viam makes it easy to configure and connect devices, easily integrate AI and data, and command and control devices at scale. (5 minutes)
Try Viam for free

Built for all your device needs

Build and integrate

Configure and connect devices. Build apps for the physical world.
Build products for the physical world quickly and easily, with full freedom to work with any hardware. Connect any sensors and actuators, quickly add support for new hardware, and seamlessly make changes, all made easy with our novel modular registry and turn-key solutions. Plus, simple and modern APIs for both real-time and historical data let you easily create applications for you, your users, and your team—whether web, mobile, voice, or embedded.
An illustration showing the Viam platform being used to securely manage a fleet of smart machines
An illustration showing the Viam platform being used to securely manage a fleet of smart machines

AI and data

Transform and train your physical world data in the cloud.
Employ it at the edge.
Viam gives you AI, ML, storage, and data sync with unparalleled performance. With a single, efficient loop from your device to your data and AI solutions and back again, Viam takes care of the plumbing that would otherwise take you months or years to build, greatly increasing your ROI and creating real value.
See also

Deploy, manage, and troubleshoot

Command and control your devices at scale.
From code deployment and software upgrades, to security updates, network and log management, Viam gives you all the tools you need to run efficiently at scale, significantly reducing expensive on-site servicing and upgrades.
An illustration showing the Viam platform being used to securely manage a fleet of smart machines
Read the documentation
OVERVIEW

Explore Viam

The robotics platform that moves at the speed of software
Viam brings software engineering maturity to robotics and automation, giving developers the tools to move fast—to prototype, iterate, deploy and scale—on a single platform. Everything deployed on your hardware is open-source, ensuring transparency and control over your systems.
WHAT MAKES VIAM DIFFERENT

Modern development tools bring software engineering velocity to hardware applications

Robotics is ready for the mature engineering practices that have become standard in software development over the last 30 years—version control, modern SDKs, and cloud-based configuration. With Viam, you can use best-in-class tools and workflows:

Open-source SDKs in Python, Go, TypeScript, Flutter, and C++

Web-based configuration UI

Version control for machine configurations

Real-time monitoring and alerts