PLC Simulator
Robot Simulator · Live

Program a robot in your browser — free

Write real URScript on a simulated UR-style six-axis arm — or program a SCARA — run pick-and-place with live physics, and learn frames, TCP, I/O, the gripper, and cobot safety with auto-graded lessons, from zero. No install, no robot, no vendor license. Play free in your browser; go Pro for the full course and a certificate.

A UR-style six-axis robot arm standing in a 3D factory cell in the browser-based robot simulator, with a parts table, safety railing and pallet.
A UR-style six-axis arm in a 3D factory cell. You write the URScript; the simulator solves the kinematics and runs it under physics.

What it is

A live, browser-based robot programming simulator

A robot programming simulator lets you write the code that drives an industrial robot arm and watch it run — without owning the robot, installing heavyweight offline-programming software, or risking a real machine while you are still learning. You program the motion, the simulator solves the kinematics and physics, and you see exactly what the arm would do. Ours is live now and runs entirely in a browser tab.

You program a UR-style six-axis arm using real URScript — the actual language you type into a Universal Robots controller. You write movej and movel moves, set digital outputs, open and close a gripper, and build a full pick-and-place cycle. There is also a 4-axis SCARA — the fast top-down arm used for high-speed pick-and-place and assembly. The URScript interpreter, the arm, the gripper, and the parts on the table all run together in a single browser tab, under physics. It is the same approach that made our PLC simulator work: practise the real skill, in the browser, free to start.

A complete robot work cell in the simulator: a six-axis arm, a parts table with pick and place locations, a pallet, and a safety fence around the cellA top-down robot work cell: a central robot, an infeed conveyor, a pick fixture, a place pad, all enclosed by a safety fence.safety fenceconveyorpickRrobotplace
A full work cell in the browser — arm, parts table, pick and place stations, pallet, and a safety fence — the environment your URScript runs inside.

What it simulates

The robot geometries you actually meet on a line

Most browser “robot simulators” show a single articulated arm and stop there. The four configurations below cover the overwhelming majority of industrial automation you will program — and we model the kinematics of each so you feel how the same task changes when the geometry changes.

UR-style six-axis articulated robot arm with joints J1 to J6 and a gripper TCP, the main robot in the browser robot simulatorA six-axis articulated robot arm with a base and a two-finger gripper, its six rotary joints labelled J1 through J6.J1J2J3J4J5J6TCP
Six-axis articulated arm (live). The UR-style cobot you program in real URScript — six rotary joints, full reach, the workhorse of flexible automation.
Four-axis SCARA robot geometry with two rotary joints, a vertical Z axis and a rotating tool, for fast top-down pick-and-place in the robot simulatorA SCARA robot with two horizontal rotary links, a vertical Z prismatic axis, and a wrist, with the J1, J2, Z and wrist joints labelled.J1link 1J2link 2wristZ
4-axis SCARA (live). The fast, stiff, top-down arm built for high-speed pick-and-place and assembly — program it and feel how it differs from the six-axis.
Delta parallel robot with three arms and a shared end-effector platform for very high-speed pick-and-place, a robot geometry covered in the simulator curriculumA delta parallel robot: a fixed top plate with three motors driving three arms down to a small moving platform that carries the tool.fixed base platetool
Delta / parallel robot. The spider-leg parallel robot used for extreme-speed packaging and sorting — understand why its parallel kinematics behave so differently.
Cartesian gantry robot with three linear X Y Z axes moving a tool over a work area, a robot geometry explained in the browser robot simulatorA Cartesian gantry robot with three orthogonal linear axes — X across the bridge, Y along the rails, and Z up and down on the tool carriage.YXZ
Cartesian gantry. Three linear axes over a work area for palletising, dispensing, and large-format handling — the simplest geometry to reason about in straight X, Y, Z.

The six-axis arm and the SCARA are live and programmable now; the delta and Cartesian configurations are part of the wider curriculum so you understand the full landscape of industrial robot geometries, not just one.

How it works

Jog, write URScript, run, grade

1

Jog the arm

Move the arm in joint space and in Cartesian space to feel how it reaches, find your poses, and understand base vs tool frames and where the TCP sits — exactly as you would jog a real robot with a teach pendant.

2

Write real URScript

Type actual UR commands in the editor — movej, movel, movep, set_digital_out, gripper control, waypoints, variables, and loops. The interpreter understands the real language, not a simplified stand-in.

3

Run it under physics

The simulator solves the inverse kinematics for each target pose, plans a timed trajectory, and the arm tracks it under simulated dynamics. Grab a part and it follows the tool; a collision or an over-force contact is detected and surfaced.

4

Your program is graded

Each task defines success — part placed at B within tolerance, no collision, under the cycle-time budget, within the cobot force limit. Your program runs and is checked against those goals, with specific feedback on what to fix.

Real code

You write the same URScript a real UR runs

No drag-blocks-only toy and no invented pseudo-language. A first pick-and-place program in the simulator looks like this — and the exact same commands run on a physical Universal Robots controller:

# Pick a part at A, place it at B
set_tcp(p[0,0,0.15,0,0,0])        # tool centre point: 150 mm gripper
set_payload(0.8)                   # 0.8 kg part in the gripper

movej(home_q, a=1.4, v=1.0)        # joint move to a safe home pose
movel(pick_approach, a=1.2, v=0.3) # linear move above the pick
movel(pick, a=0.5, v=0.1)          # straight down onto the part
set_digital_out(0, True)           # close gripper
sleep(0.4)

movel(pick_approach, a=1.2, v=0.3) # lift straight up
movel(place, a=1.2, v=0.25)        # linear move to place B
set_digital_out(0, False)          # open gripper
movej(home_q, a=1.4, v=1.0)        # return home

The simulator parses this, solves the inverse kinematics for each target pose, plans the joint trajectory, and runs it under physics. movej moves fast through joint space; movel keeps the tool on a straight Cartesian line — the distinction every UR programmer has to learn, shown live.

How URScript becomes robot motion: parse the movej and movel commands, solve inverse kinematics for each pose, plan a timed joint trajectory, then run it under physics in the simulatorThree lines of URScript — movej, movel and set_digital_out — each mapped by an arrow to the corresponding motion on the robot arm.program.urpmovej(p1)movel(p2)set_digital_out(0,True)
From URScript to motion: parse → inverse kinematics per pose → trajectory planning → physics-tracked run. This is the pipeline the simulator runs every time you press Run.

What you’ll learn

From first jog to a graded pick-and-place cell

The course takes you from never having touched a robot to programming a working, collision-free pick-and-place cell — every lesson graded against a real goal.

Frames & TCP

Move the arm in joint space and in Cartesian space; understand base vs tool frames and how the tool centre point is defined.

movej vs movel

When each move type is right, how movep holds tool speed, and how acceleration and velocity change the motion.

I/O & gripper

Read and set digital signals; open and close a gripper to actually pick something up and put it down.

Pick-and-place A→B

The core skill: approach, grasp, lift, traverse, place, release — the backbone of real cobot work.

Waypoints & blends

Chain waypoints with blend radii for smooth, fast cycles instead of stop-start motion.

Payload & accuracy

Configure payload and TCP and see how they change reach, accuracy, and safe speed.

Protective-stop safety

Cobot protective stops: trigger and avoid over-force contacts; respect safety planes and speed limits.

SCARA programming

Program the 4-axis SCARA for fast top-down pick-and-place and assembly, and feel how it differs from the six-axis arm.

The pick-and-place cycle taught in the robot simulator: approach, grasp the part, lift, traverse to place B, lower, and release the gripperA repeating pick-and-place cycle around a loop: approach, close gripper, lift, traverse, place, open gripper.1Approach2Close3Lift4Traverse5Place6OpenLOOP
The pick-and-place cycle — approach, grasp, lift, traverse, place, release — the backbone of cobot work.
Collaborative robot safety in the simulator: a cobot inside a safety zone with reduced speed and a protective stop triggered by an over-force contactA collaborative robot surrounded by concentric speed-and-separation monitoring zones, with a protective-stop indicator when a person enters the inner zone.warningreduced speedstopPROTECTIVESTOP
Cobot safety — speed zones and force-limited protective stops, modelled so you build safe habits before real hardware.

Skills that transfer

What transfers to a real Universal Robots arm

Because you program in real URScript, the skills are not throwaway. The language, the motion model, and the programming habits carry straight onto a physical UR controller and PolyScope — and the underlying articulated-arm concepts apply to other six-axis brands too.

movej versus movel in the robot simulator: a fast curved joint-space move compared with a straight-line Cartesian tool move between the same two posesTwo tool paths between the same two points: a curved joint move (movej) in cyan and a straight linear move (movel) in amber.ABmovej — joint arcmovel — straight line
movej takes a fast curved path through joint space; movel keeps the tool on a straight Cartesian line — the same decision every UR programmer makes.
Learned hereOn a real UR / PolyScope
URScript movej / movel / movepIdentical commands in a Script node or .script program
TCP & payload configurationInstallation → TCP and payload setup, same parameters
Base vs tool frames / featuresFeature planes and coordinate frames in PolyScope
Waypoints & blend radiusWaypoint nodes with blend in the program tree
Digital I/O & gripper controlset_digital_out and tool I/O on the real controller
Protective stop / force limitsSafety configuration and force-mode behaviour

Pricing

Free to play, Pro to master

Start with the free lessons — write URScript and run the simulated arm in your browser at no cost, no card. Go Pro to unlock the full graded course end-to-end and earn a verifiable Robot Programming certificate of completion. Same login as our PLC simulator.

The robot programming path in the simulator: free lessons, then the full Pro course, leading to a verifiable robot programming certificate of completionA progression from lessons, through three completed checkmarks, to a certificate seal — learn then certify.lessonspass graded taskscertificate
Free lessons → full Pro course → a verifiable certificate you can share on a CV or LinkedIn.

Keep exploring

More robot programming resources

Questions

Robot simulator FAQ

Yes — you can start for free. Open it in your browser and work through the free lessons, writing real URScript and running a simulated robot arm at no cost and with no card. A Pro subscription unlocks the full graded course end-to-end and a verifiable certificate of completion. So the simulator is free to start, and Pro is there when you want the complete curriculum and proof of completion.

Program a robot in your browser.

No install. No robot. No vendor license. Real URScript on a UR-style arm and a SCARA — free to play, graded from zero.