Do you want to become a roboticist?
Crack robotics, one program at a time.
Write Python and watch the arm run it, in a MuJoCo physics simulation right here in your browser. You pass when the robot does the job, not when your code looks right.
1from robot import arm, gripper, world, phase2 3ball = world.ball("red")4cup = world.cup5 6phase("pre-grasp")7arm.move_to(ball.position + [0, 0, 0.10])8gripper.open()9phase("approach")10arm.move_to(ball.position)11phase("grasp")12gripper.close()13phase("lift")14arm.move_to(ball.position + [0, 0, 0.20])15phase("transit")16arm.move_to(cup.position + [0, 0, 0.20])17phase("place")18arm.move_to(cup.position + [0, 0, cup.height + 0.05])19phase("release")20gripper.open()21phase("retreat")22arm.move_to(cup.position + [0, 0, 0.20])- Grasped the red ball
- Gripper released the ball
- The red ball is resting in the cup
Step 4 of Pick & Place, replayed. You write this program yourself, one phase at a time.
Start with Pick & Place
Free in full, about an hour, and no robotics background needed. New to programming? Take Python Basics or C++ Basics first.
- 1Joints, targets & PD controlCommand joint angles, let physics run, and meet the PD controller behind every industrial arm.
- 2Forward kinematicsPredict exactly where the gripper is from the joint angles, using nothing but trigonometry.
- 3Inverse kinematics & straight-line motionTurn positions into joint angles, then move the gripper along straight lines with smooth, jerk-free timing.
- 4Your first pick & placeChain the classic manipulation phases into a program that moves the red ball into the cup.
- 5Clear the tableGeneralise your program: perceive every ball, pick each one, verify, retry, and survive a new layout on every run.
- ★Bonus: build your own IKReplace the black box. Derive the analytic inverse kinematics with the law of cosines and run a full pick with it.
Then keep going
Each lesson uses the same simulator and the same Python API, so what you learn in one carries into the next.

Jacobians & Velocity Control
Control the gripper's velocity instead of its position: Jacobians, resolved-rate control and numerical IK.

Trajectory Generation
Plan how the arm moves over time: polynomials, velocity limits and smooth paths through waypoints.

Motion Planning
Get around obstacles: configuration space, collision checking, RRT and roadmaps.

Seeing with a Camera
Replace perfect knowledge with a camera: project, segment, back-project, then pick what you see.

Depth & Point Clouds
See the table in 3-D: turn depth into point clouds, find the table with RANSAC, then pick objects by their shape.

Noisy Sensors & Kalman Filters
Real sensors lie a little. Average, fuse and track, then catch a ball that won't sit still.

Mobile Robot Navigation
Odometry, occupancy grids and path planning for a wheeled robot.

Localisation & SLAM
Where am I? Filters, scan matching and loop closure for a robot that can't trust its wheels.

Dynamics & Torque Control
Drive the arm with raw motor torques: equations of motion, gravity compensation, PID, computed torque and compliance.

Balancing & Optimal Control
Keep an inverted pendulum upright: linear models, eigenvalues, pole placement, LQR and MPC on a cart-pole.

Robot Learning
Let the robot learn its own controller: value iteration, Q-learning, imitation, policy gradients and model-based RL.

ROS 2 for Robot Arms
Write real ROS 2 nodes for a robot arm, from your first topic to trajectory actions, with nothing to install.
Rusty on vectors, torque or least squares? The Foundations cover the maths and physics the lessons use, free.
Rather practise one algorithm at a time? Try the 24 problems, from forward kinematics to policy gradients.
Python Basics, C++ Basics, Pick & Place and the Foundations are free, with no account. Pro unlocks every other lesson for $39 a month.
Start Pick & Place, free