Openai Dall-E Image icon Openai Dall-E Image — Generate or edit images with OpenAI GPT Image from text or camera frames, with save and programmatic control commands. Try it →
 
Viam

Viam by Viam

Synthiam ARCx adds a browser-based interface for Viam robots with joystick control, vision, speech, scripting and touch screens.
Connection Type
Network (gRPC)
Number of Servos
Varies
Audio Support
No
Camera Support
Yes
UARTs
Varies
I2C Support
No
ADC Ports
Varies
Digital Ports
Varies
A robot arm and a rover built from modular components, connected to a friendly Synthiam ARCx control dashboard
Viam + Synthiam ARCx

Every Viam machine, ready for everyone

Viam makes it fast for developers to wire up robot hardware and manage it from the cloud. Synthiam ARCx turns that hardware into a robot anyone can use: drive it, program it with blocks or scripts, give it a voice and vision, and put it on a touch screen, all from a web browser and without writing an SDK program.

Viam is not an EZB, so why is it on this list? Because Synthiam makes it compatible. The Viam Robot Controller robot skill for ARCx connects to viam-server, discovers every component on the machine and maps each one into ARCx. A Viam base becomes the movement panel, servos and motors become servo ports, cameras become video sources and sensors become variables. Every Synthiam robot skill then works with Viam hardware. Viam support is exclusive to ARCx.

Meet the platform

What is Viam?

Viam is a software platform for robotics and smart machines, founded in 2020 by Eliot Horowitz, co-founder and former CTO of MongoDB. Its goal is to bring modern software engineering to hardware: configure a machine instead of writing drivers, control it through clean APIs, and manage whole fleets from the cloud.

At the heart of every Viam machine is viam-server, an open-source program that runs on the robot's computer, from a Raspberry Pi to an NVIDIA Jetson. In the Viam web app you describe the machine as components (arms, bases, motors, servos, cameras, grippers, sensors, encoders, boards) and services (vision, motion planning, navigation, SLAM, machine learning, data capture). viam-server loads the matching drivers, many from Viam's module registry, and exposes every component through a common gRPC API.

Developers then write programs against that API with Viam's SDKs for Python, Go, TypeScript, C++ and Flutter. On top sit fleet tools: remote configuration, software updates, data sync and machine learning model training. For engineering teams, it is a very productive way to build a robot.

Viam at a glance

TypeRobotics software platform and cloud service
CompanyViam Inc., New York, founded 2020
On the robotviam-server (open source)
APIgRPC, port 8080 by default
SDKsPython, Go, TypeScript, C++, Flutter
ConfigurationViam web app (app.viam.com), stored as JSON
Synthiam connectionARCx native gRPC client, API key, safety session
Websiteviam.com
The gap

Built for developers. Everyone else is left waiting.

On the left a stressed developer surrounded by code editors, configuration files and SDK documents; on the right a teacher and student smiling at a visual robot dashboard

Viam removes much of the pain of drivers and wiring, but making a robot do something is still a software project. The platform assumes the person building the robot is a programmer, and most people who want to use a robot are not.

  • Behavior means code. Driving to a person, reacting to a word, waving when someone smiles: each is a program written against an SDK, with connections, authentication and asynchronous code to manage.
  • Configuration is technical. Component models, attributes, pins, board definitions and JSON, organized by organization, location, machine and part.
  • The control panel is a test bench. The web app's control tab is excellent for checking that a motor turns. It is not designed as an operator interface for a student, a customer or a family member.
  • A real interface is another app. A touch screen for the people who use the robot means building a web or mobile application with the TypeScript or Flutter SDK.
  • Personality is up to you. Speech, conversation, face tracking, gamepad driving and animations are all projects of their own.
Why Synthiam is needed

Synthiam brings Viam hardware to everyone

A bridge made of friendly interface tiles carrying students, teachers, makers and families from a cliff of complex machinery to a meadow full of robots

Synthiam's mandate is to make robotics accessible to everyone. Viam has done the hard work of making hardware talk through one clean API. ARCx does the other half: it makes that hardware usable by people who will never open an SDK.

Point ARCx at a Viam machine and it discovers every component and maps it to the part of ARCx that already knows what to do with it. No driver is written and nothing is installed on the robot. From that moment the machine works with the whole Synthiam library: joysticks and gamepads, Auto Position animations, Servo Pad, face and color tracking, speech recognition and synthesis, conversational AI, Blockly, JavaScript and Python, Custom UI touch screens and Exosphere remote control.

For Viam builders, that means a far bigger audience. A developer can configure a machine in Viam and hand it to a classroom, a client or a museum with a complete interface on day one. For everyone else, it means Viam hardware is no longer something you need a programmer to use.

Viam is the foundation. Synthiam is the front door. Keep configuring hardware, modules and fleets in Viam. Put ARCx in front of the machine for the people who use it.

See it working

Your whole Viam machine on one screen

The ARCx Viam Robot Controller window showing cards for a base, a six joint arm, a gripper, pan and tilt servos, motors, a camera with vision detections and sensor readings
The Viam Robot Controller connected to a machine with 16 resources: a base, a six-joint arm, a gripper, pan and tilt servos, two motors, a camera with vision service detections drawn on it, and live environment, IMU, battery and encoder readings.

🔌 Connection strip

Address, viam-server version and machine state, with Connect, Discover and a red Stop all that stops every actuator on the machine at once.

🎛 A card per resource

Each component shows its kind, the ARCx port it answers to, a health dot from the machine's own status report, its live value, and a slider and stop button for actuators.

📝 Plain-language log

What was discovered, what it was mapped to, and what failed and why, in sentences rather than stack traces.

Automatic mapping

How Viam components become ARCx features

On the Viam machineIn ARCx
BaseThe project's movement panel. Joysticks, gamepads, scripts, camera tracking and the Movement Manager all drive it.
ServoA virtual servo port (V0 to V255) that every servo robot skill can move.
MotorA virtual port for power, RPM or position. Two motors can also be the movement panel as a differential drive.
ArmOne virtual port per joint, so Auto Position animations and Servo Pad poses move a Viam arm.
GripperA virtual port: one side opens, the other grabs.
CameraAn ARCx video source, so face, color, glyph and object tracking run on it.
Vision serviceDetections are drawn on the camera and handed to ARCx's tracking skills as detected objects.
Sensors, movement sensors, power sensors, encodersGlobal variables, one per reading, such as ViamEnvTemperatureC, for scripts, charts and screens.
Boards, switches, generic and anything elseControl commands, including DoCommand for any resource's own commands.
The Components tab of the Viam Robot Controller listing every discovered resource with its port and options
The Components tab: every resource found on the machine, its ARCx port, per-kind options and how often it is read. New resources are mapped automatically.
Why ARCx

Why ARCx is the best interface for Viam

⚡

Zero code to start

Enter the machine's address and an API key, press Connect. Discovery, port assignment and mapping happen on their own.

🛡

Safety built in

An optional Viam safety session means that if ARCx or the network goes away, viam-server stops every actuator ARCx commanded. A drive timeout and Stop all add more protection.

🌐

Runs beside viam-server

ARCx runs on Windows 10 and 11 and on Ubuntu 24.04 for x64 and ARM64, including Raspberry Pi. Run it on the robot or on any computer on the same network.

🧩

Programming for every level

Blockly for beginners, JavaScript and Python for everyone else, with ready-made control commands for every Viam resource. Motion uses meters and radians, the way robotics expects.

📱

Screens people actually use

Drag-and-drop Custom UI screens, plus two ready-made widgets: Viam machine with Connect and Stop all, and Viam component showing any resource live.

🤖

AI ready

ARCx is an MCP server, so AI agents such as Claude can see through a Viam camera, drive a Viam base and move a Viam arm, alongside ARCx's own AI robot skills.

Get started

Connect a Viam machine to ARCx

  1. Have viam-server running on the robot, configured with its components in the Viam app as usual.
  2. Create an API key in the Viam app under the machine's settings. A viam-server started from a local config without authentication needs no key.
  3. Install ARCx on the robot or on a computer on the same network. Download ARCx.
  4. Add the Viam Robot Controller robot skill from Robot Skills, Communication: Viam Robot Controller.
  5. Enter the address (for example my-robot.local:8080) and the API key ID and key, press Test connection, then Save.
  6. Use it. Every component appears in the window. Add a joystick, a camera tracking skill, speech or a Custom UI screen and they work with the Viam hardware straight away.
The Connection tab of the Viam Robot Controller with address, transport, API key and safety session settings
The Connection tab, with transport, API key and safety session settings.

Good to know

  • ARCx connects straight to viam-server on your network. It does not route through Viam's cloud, so ARCx and the robot must be able to reach each other.
  • Auto transport tries TLS first and then plaintext, which covers both cloud-configured machines and local config files.
  • Running two Viam machines? Add the robot skill twice, with its own variable prefix and separate ports.
The Movement tab of the Viam Robot Controller choosing the Viam base or two motors as the ARCx movement panel
The Movement tab: drive a Viam base by power or velocity, or two motors as a differential drive.
Drive it

A Viam rover drives like any Synthiam robot

Because the Viam base becomes ARCx's movement panel, everything in Synthiam that moves a robot moves a Viam rover.

  • On-screen joysticks, Xbox and PlayStation gamepads, keyboards and MIDI controllers.
  • Camera tracking that steers the robot to follow a face, a color or an object.
  • Voice commands, scripts and the AI robot skills.
  • Exosphere, to drive the robot from anywhere in a web browser and share it with others.
  • Power mode for any base, or velocity mode in meters and degrees per second for bases that measure their speed.
Who benefits

From a developer's bench to everyone's hands

A teacher with students, a hobbyist with a robot arm and a researcher with a mobile robot, all using the same friendly dashboard
  • Viam developers deliver machines with a finished user interface, and prototype interactions in minutes instead of writing a new SDK program each time.
  • Educators use Viam-configured robots in class with Blockly and on-screen controls, without asking students to set up SDKs and API keys in code.
  • Makers mix Viam's hardware support with Synthiam's personality: speech, faces, animations, conversation.
  • Businesses put a Viam machine on a touch screen for staff who need big buttons, not code.
  • Researchers add voice, vision and AI interaction to a Viam platform for demos and user studies.
Questions

Frequently asked questions

Yes, for setting up the machine. Components, modules and fleet management stay in Viam. ARCx is the interface and programming environment for using the machine once it is configured.

No. ARCx talks to the viam-server that is already there, over its standard gRPC API. You can also install ARCx on the robot's own computer if you want it to run on board.

It still appears, and scripts can reach it with control commands, including DoCommand, which passes JSON straight to the resource's own commands. That covers modules from the Viam registry that add their own behavior.

No. Viam support is built for ARCx, which runs on the same Linux and Raspberry Pi computers Viam machines use and is operated from any web browser.

Give your Viam machine an interface everyone can use

Install ARCx, add the Viam Robot Controller, and your Viam hardware works with every Synthiam robot skill.


ARC Pro

Upgrade to ARC Pro

Your robot can be more than a simple automated machine with the power of ARC Pro!