Mecanum Drive Simulator
Press W A S D to strafe and translate, Q E to rotate. Watch the wheel power values update in real time.
Live kinematics
fl (y + x + rx) / denom 0.00fr (y − x − rx) / denom 0.00bl (y − x + rx) / denom 0.00br (y + x − rx) / denom 0.00Input state
Acceleration smoothing
Virtual joystick
How it Works
The kinematics
Each mecanum wheel has rollers at 45°, so forces decompose into X and Y components. The equations combine your translational inputs (x, y) and rotation (rx) into per-wheel powers that sum correctly.
Field-centric mode
In robot-centric mode, W always drives the robot forward. In field-centric, the IMU heading rotates the input vector so W always drives away from the driver — the robot body rotates to show its real heading.
Power normalization
The denominator is max(|y| + |x| + |rx|, 1). When the raw sum exceeds 1, all
four wheels are scaled proportionally so the fastest wheel always runs at full power.
Strafing diagonally
Press W + D simultaneously. Two wheels drive forward, two receive zero power — the robot slides diagonally. This is unique to mecanum and impossible with standard tank drive.
Ready to implement this on your robot?
Our full mecanum drive guide covers the math, Java implementation, and tips for calibrating field-centric mode with a BNO055 IMU.
View Mecanum Guide →