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.
What makes Viam special is the ability to rapidly create prototypes using:
Motion Planning: Smooth and intelligent motion for arms, bases, and gantries.
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.
Iterate
As you go from prototype to production, Viam reduces complexity with sensible design patterns:
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.
Parts and sub-parts: Create arbitrarily complex projects by connecting multiple viam-server instances.
Deploy
As you start deploying machines, Viam supports you with the tools you know and expect from software development:
Fragments: Reuse configuration chunks across machines. All with version control.
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.
Viam applications: Deploy custom web interface for your machines while Viam handles hosting and authentication.
Scale
When you ship machines, Viam provides the infrastructure to support your needs:
Provisioning: ship machines with a preconfigured setup so customers can connect them to the internet and get them up and running