Features in the current source tree, one line each. Each line links to the page that explains it. What it does not do is on What it does not do.
- Your robot code runs unchanged against fake hardware in a JVM unit test. No robot, no emulator. Installing it
- Drop-in starter folder: one folder and one Gradle line, with an example robot whose two tests pass. Installing it
- Fixed-tick scenario runner with a deterministic clock: the same run gives the same log.
sim - Run an
OpModeorLinearOpModeas written through INIT, the loop and STOP, with scripted gamepads.opmode - Telemetry recorded per transmission, including telemetry copied into fields before INIT.
opmode - Your unchanged
ElapsedTime,sleep,Thread.sleepandSystem.nanoTime()moved onto sim time.simclock SimElapsedTime: an SDKElapsedTimethat reads the sim clock, for code that takes a timer. Making your timers sim-safe- Drive the sim live from the keyboard, paced to real time, on Windows, macOS or Linux. The starter includes the keyboard window.
sim.live - Stuck or crashing OpModes fail the test with phase, tick and stack, instead of hanging it.
opmode
FakeHardwareMap: resolves fakes by config name and files them into the SDK's typed maps.fakehardwareFakeMotoras aDcMotorEx: power, encoder, velocity, current, direction, PIDF.fakehardwareRUN_TO_POSITION,RUN_USING_ENCODERandsetVelocity, with the hub's closed loops. RUN_TO_POSITION in the sim- Servos, continuous-rotation servos, external encoders, analog and digital channels, battery voltage.
fakehardware - Universal
IMU, with physical against declared hub mounting.fakehardware - goBILDA Pinpoint: the SDK 12.0 driver itself, on an emulated register file.
fakehardware - SparkFun OTOS: the SDK 12.0 driver itself, on an emulated register file.
fakehardware - Limelight 3A: AprilTag results from the tags the robot can see, parsed by the SDK.
fakehardware - REV touch, 2m distance and Color Sensor V3 fakes, scripted or driven from the field.
fakehardware - Sensors driven from the field: range ray, colour probe, contact switch on a robot mount.
sensor - Simulated camera: which pieces and AprilTags are in the image, and where, through a distorted lens, with boxes, the robot body and other pieces in the way.
vision - Synthetic camera frames: the scene drawn as RGB pixels for a real
VisionProcessor, with ground-truth labels and a PNG writer. Flat colours, not for tuning thresholds.vision
- First-order mechanism plants: one or more joints, end stops, gravity.
plant - Positional servo plant, and a mecanum drive plant with its pose integrator.
plant - Your robot's numbers come in through interfaces you implement; SimLoop never imports your code.
config - Game-piece possession: intake trigger volumes, carrying capacity, every transition logged.
field - Game pieces that roll, get pushed, bounce, collide and fly a ballistic arc.
field - Goals as scoring volumes, optionally descending-only or open on one face.
field - Field perimeter and solid obstacles with a height range.
field - 3-D game-piece contact with kinematic bodies and with each other, with rolling friction.
field - Hinged bodies that tip under the pieces' weight, and cells that hold what the physics puts there.
field - The robot as a few oriented boxes posed for its mechanisms, and parked robots as solid boxes.
field - Robot-against-structure contact: the smallest move that takes the robot back out.
field - Seeded random source for field randomness that replays identically.
field - One transform between the drivetrain's frame and the field frame.
field
- Every run writes a PsiKit RLOG that AdvantageScope opens.
sim - The runner refuses to return a truncated or incomplete log.
sim - Decode an RLOG back to fields, and compare two runs field by field.
sim - Live keyboard sessions record a plain-text gamepad track that replays to the identical log.
sim.live - Mechanism drawings for AdvantageScope, including a turret with a hood.
viz - Articulated robot model: joint values to the component poses a custom robot model draws.
viz - Shot arcs: intended against actual, with each shot's miss distance.
viz - Game-piece positions logged per kind in 3-D, for the 3D Field tab.
field - Camera pose logged so AdvantageScope can look through the sim camera.
vision
RunResult: read a finished run back and query any logged value.loop- Objectives, guardrails and a scorer, with
UNKNOWNkept apart from a pass.loop - A gate and a loop driver that keep the best candidate and refuse a score that does not reproduce.
loop - An agent task loop: an AI agent changes your code, runs the sim headlessly, reads the score from the log, and keeps the change only if it scores better and the score reproduces.
loop
- A portable
AGENTS.mdthat teaches an agent the library, the complete public API and the rules it gets wrong. Using SimLoop with an AI agent - Works with any coding agent: Cursor, Codex, Gemini CLI, Copilot's coding agent and others read
AGENTS.mdwith no setup. Claude Code is the best-tested route. Which tool - Four skills: write a sim test, add a mechanism, debug a failing sim, review sim code. What is in the folder
- Prompts to start from, including one for learning and one for auditing your tests before a competition. What is in the folder
- A flat index of these pages for agents. Index for AI agents
- Planned, not in this alpha: give an agent your own robot's logs and it tunes the sim to match your robot.
- Read numeric columns out of a real robot's RLOG.
fit - Fit free speed, time constant and friction to logged power and velocity, with standard errors.
fit - Warnings when the data cannot pin the fit down, such as closed-loop logs.
fit - A sim-against-robot gap report written beside the log. It changes no constant.
fit