For most software engineers, robotics means wrestling with proprietary drivers, complex networking, and low-level C++. Viam is a unified software layer that abstracts away the hardware, networking, data management, and more, so you can build and manage robots with the workflows you already know.
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. Viam 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
Viam is a distributed system designed to treat physical hardware like cloud infrastructure.
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.
See how Viam handles the infrastructure so you can focus on the 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.