SO-101: Training a VLA Policy
Teach a robot arm a task by showing it what to do. In this free, hands-on course, you’ll record yourself moving a mug with an SO-101, train a VLA policy on those demonstrations, and watch the arm do it from a typed instruction, all with no code.
Cost:
Free
Length:
60 Minutes *
Lessons:
13
hardware needed:
SO-101 Arm Kit & Webcam
~60 mins with Viam’s trained policy, ~5 hrs to record and train your own
About
A vision-language-action (VLA) policy learns a task from demonstrations instead of being programmed move by move. This free, self-paced course has you train one yourself on your own demonstrations and run it on a real arm.
You’ll set up a two-camera workspace, record demonstrations tagged with an instruction, check them, and turn them into a dataset. Then you’ll fine-tune SmolVLA, Hugging Face’s small open VLA, with a training job in Viam’s cloud, deploy it to your SO-101, and change where it puts the mug by changing what you type. Recording, the dataset, training, and deployment all happen in the Viam app and Viam CLI, with no local GPU and no ML environment to set up.
The last exercise is the one most demos skip: you score the policy, sort its failures, and decide whether the fix is more data or a different model.
By the end, you’ll be able to:
- Explain what a VLA learns from demonstrations, and when a classical vision and motion pipeline is the better tool
- Set up a two-camera workspace that a policy can be trained on and run against, and keep it unchanged between the two
- Record demonstrations tagged with an instruction, check them, and collect them into a sequence dataset
- Fine-tune SmolVLA on your dataset with a Viam custom training job
- Run the trained policy on your SO-101 and change where it puts the mug by changing the instruction
- Evaluate a policy honestly: classify its failures and decide whether the fix is more data or a different model
When you finish, you’ll have a robot on your desk running a policy trained on demonstrations you recorded.
Three ways to take this course
Use Viam’s trained policy (about 1 hour). Set up the workspace, then run and evaluate Viam’s policy on your arm, with no recording or training.
Record your own demonstrations (about 5 hours, mostly recording). The full loop: set up, record, check, train, deploy, run, and evaluate.
Choose your own task (about 5 hours, mostly recording). The same loop, on a task and instructions you pick.
Build it by hand or with an AI agent
There’s no code to write in this course, since everything is done in the Viam app. If you’d rather hand the configuration off, each exercise page also includes a prompt you can give to an AI agent, which works through the Viam MCP server. The physical work stays yours: setting up the cameras, recording each demonstration, and checking that the arm does what you asked.
See what people are saying about Viam courses
“Viam 101 is a good introductory course for people who can code and want to get started with robotic manipulation. It helped me understand how to think about robotic arms and ended with a working palletizing robot.”
Ashwani R.
Software Engineering Master Student
“This course showed what Viam can do in an easy to understand way. It was straight to the point, clear, concise, and interactive. Now I understand how to control robots over cloud.”
Park
Robotics engineer
"It is a great course to see how the sim to real gap is being addressed and how amazing this space is going to be in the future.”
Ujjwal
Data scientist
"The course takes users through the basic principles of the Viam development environment and how Viam interacts with hardware. The course also clarifies how the hierarchy of components is used within systems.”
Dan P.
CTO
What you'll need
- [Recommended] Completion of SO-101: Teleop and Motion Capture (or equivalent): You should already be comfortable bringing an SO-101 online in Viam and driving it by hand, since recording demonstrations builds on both.
- An SO-ARM101 kit: A leader arm, a follower arm, a mountable webcam, power supplies, and USB cables. The SO-ARM101 is open source. You can build it yourself by following TheRobotStudio's repository, or buy a pre-assembled kit from Seeed Studio (recommended) or Hiwonder. Assembled kits run about $300.
- A second webcam and a stand to hold above the table
- A computer running macOS on Apple Silicon or Linux on x86_64
- Linux terminal basics: You know how to use a command line interface.
- Comfort reading JSON: Viam uses JSON to configure your components and connections. You don't need to write it from scratch, but you should be comfortable reading and editing config files.
Course outline
1. OVERVIEW
2. What a VLA learns
3. Set up the workspace
4. Demonstrations as data
5. Configure recording
6. Record demonstrations
7. Check your demonstrations and build a dataset
8. How training works
9. Train the policy
10. Deploy the policy and configure the controller
11. Run the policy
12. Evaluate the policy
13. Run the line end to end
Instructor

Jiwon Shin
Jiwon Shin is a Staff Technical Content Engineer on the Education team at Viam. She is an educator and creative coder passionate about making technology more accessible and engaging. Prior to joining Viam, she was the Domain Manager for Programming, AI, and Data at Codecademy. She also taught at NYU Tandon School of Engineering, teaching creative coding with p5.js and Arduino, as well as computer vision.
Viam Education
Viam Education is a free, developer-first program designed to help engineers learn robotics and build on the Viam platform. Viam Education brings together a series of free online courses, live events, hackathons, and NYC office hours to make building robotics applications more accessible than ever. Viam 101 is available now; upcoming courses include software engineering for robotics, motion planning, computer vision, and more. Join the Viam Discord for updates on events, courses, and more.
FAQ's
Common questions
Do I need to take Viam 101-103 before starting this course?
No, but for the best learning experience, we recommend starting with Viam 101 to learn the Viam platform fundamentals.
Do I need to take SO-101: Teleop and Motion Capture first?
No, but it’s recommended. That course covers bringing an SO-101 online in Viam and driving it by hand, which this course builds on. If you already have a calibrated arm working in Viam, you can start here.
Does training cost anything?
No. Learners taking this course can run training jobs free of cost.
Do I need to write code?
No. Everything is configured in the Viam app. You'll use a terminal to start viam-server and read some JSON config, but you won't write code.
What hardware do I need?
An SO-ARM101 kit, assembled and calibrated, plus a second webcam and a stand to hold it above the table.
Does this course run in simulation?
No. This course uses real hardware. It was built and tested against a physical SO-101.
Do I need machine learning experience?
No. The course explains what a VLA learns from demonstrations, and everything is done in the Viam app with no code to write. If you already know models but haven’t trained one that moves something, this course is a good place to do that.
Do I need my own GPU?
No. The training job runs in Viam’s cloud, so there’s no local GPU or ML environment to set up.
How many demonstrations do I need to record?
Fewer than you might think. How well your demonstrations cover the task matters more than how many you record. When we built the course, 240 well-spread demonstrations did as well as 492.
What is SmolVLA?
SmolVLA is Hugging Face’s small, open vision-language-action model. It’s built on a vision-language model and is small enough to run on a laptop. It’s the policy you fine-tune in this course.
Can I pause and come back later?
Yes. The course is self-paced and your progress saves, so you can pick up where you left off.
What does Viam cost after the course?
Viam is free to start. After your first $5/month in usage, pricing is usage-based. No subscription required to keep building.
Can I take this course on Windows?
Not at the moment. You’ll need macOS on Apple Silicon or Linux on x86_64.
Can I use an AI agent?
Yes. Each exercise includes instructions for doing it through the Viam MCP server, so an agent can handle the configuration while you handle the physical work.
Is this a sales pitch?
No. This is a technical course built to teach you robotics fundamentals.