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.
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.
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.
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.
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.
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.
Let Viam Deploy and Manage Your Application Code
Package your control logic as a module. Viam manages dependencies and handles lifecycle management.
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.
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.
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.
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.
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.
Let Viam Deploy and Manage Your Application Code
Package your control logic as a module. Viam manages dependencies and handles lifecycle management.
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.
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.
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.
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.
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.
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.
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.
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
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)
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.
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.
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.
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++