Robot Locomotion & Morphology Framework

One API.
Any morphology.

Define any legged robot in YAML, then call robot.walk(). The framework handles gaits, kinematics, balance, and motor control — regardless of how many legs it has.

# identical API — 4-leg, 6-leg, 8-leg, 12-leg
from rlmf import Robot

robot = Robot.load("hexapod.yaml")
robot.walk()
robot.turn_left(45)
robot.climb()
↓ Try Simulator Build Custom Robot

Live Simulator

Visualize locomotion

Select a robot morphology, choose a gait pattern, and trigger behaviors. The support polygon and center of mass update in real time.

Morphology
🦟
Hexapod
6 legs · 18 DOF
🕷️
SpiderBot
8 legs · 24 DOF
🐕
QuadBot
4 legs · 12 DOF
🐛
CentipedeBot
12 legs · 24 DOF
Gait Pattern
Speed
slow1.0×fast
idle
Animate
Console
initRLMF v0.1.0 ready
mdlHexapod loaded — 6 limbs, 18 DOF, tripod gait selected
Topology
Family
hexapod
Limbs
6
Total DOF
18
Mass
1.2 kg
Stability
stable
Gait Duty
50 %

Custom Builder

Design your robot

Configure morphology, joint limits, segment lengths and body dimensions. The YAML definition and live visualization update instantly.

Identity
2616
Body Dimensions
Joints per Leg
Segment Lengths (m)

One value per joint, space-separated

Preview Gait
live preview
Animate
Generated YAML

        

Architecture

Five-layer stack

Each layer is independently swappable. Bring your own hardware driver, gait, or kinematics solver.

01
MDL Parser
YAML → RobotModel.
Joints, limbs, topology, mass.
02
Kinematics
Analytical 2-link IK + FK.
Per-limb, not per-robot.
03
Gait Engine
Tripod · Wave · Ripple · Trot.
GaitFrame sequences.
04
Balance
Convex hull · CoM projection.
Stability margin + tip risk.
05
Motor Layer
SimDriver · PCA9685 · PWM.
Swap without touching robot.