Build Your Machine with Flexible Building Blocks

Viam uses a composable system of building blocks called resources which you can combine according to your specific needs. Components drive your hardware, and services provide high-level software functionality.

Viam’s APIs are standardized across all models of a given component or service. This means you can test and change hardware without changing code.

If a component or service you want to use for your project is not natively supported, see the modular resource registry.


Each category of resource has a standardized API that you can access with an SDK (software development kit) in your preferred programming language. For example, you can send the same commands to any kind of motor, using any of the following programming languages: