About Choreo
Choreo (Constraint-Honoring Omnidirectional Route Editor and Optimizer, pronounced like choreography) is a time-optimal drivetrain trajectory planner for the FIRST Robotics Competition.
Time-optimal drivetrain trajectory planner for the FIRST Robotics Competition
Choreo (Constraint-Honoring Omnidirectional Route Editor and Optimizer, pronounced like choreography) is a time-optimal drivetrain trajectory planner for the FIRST Robotics Competition.
This release adds ChoreoLib support for flipping trajectories left-to-right according to the driver's perspective. In the GUI, it fixes some generation issues reported where generation succeeds but the path is abnormally long or slow.
Java ChoreoLib Warmup Command
Multiple users have reported delays at the beginning of auto caused by waiting for some classes in ChoreoLib to load. To preload these classes at robot startup, call CommandScheduler.getInstance().schedule(autoFactory.warmupCmd()); in RobotContainer constructor or Robot constructor. This will create an empty AutoTrajectory and execute it in the first run of the command scheduler, moving the classloading delay to just after robot initialization, instead of on autonomous enable. No drivetrain movement will be commanded and your drive control function will not be called.
Changes to Flipping Utilities
Three transformation functions are added to SwerveSample, DifferentialSample, SwerveTrajectory, DifferentialTrajectory, and in Java, AutoTrajectory.
- rotateAround() (Java)/RotateAround() (C++)/rotate_around() (Python): the current alliance-mirroring transformation, rotating 180 degrees around the field center.
- mirrorX() (Java)/MirrorX() (C++)/mirror_x() (Python): mirrors to the other alliance, changing the X coordinate and keeping the Y coordinate the same.
- mirrorY() (Java)/MirrorY() (C++)/mirror_y() (Python): Mirrors to the other "hand" from the driver's perspective, staying on the same alliance half of the field. With this transformation, you can create a left-side variant of a trajectory in Choreo, then load it and transform it in robot code to get a right-side variant of that trajectory.
Java-specific Changes/Examples
- AutoTrajectory:
AutoTrajectory L_Sweep = routine.trajectory("L_Sweep");
AutoTrajectory R_Sweep = routine.trajectory("L_Sweep").mirrorY();
- AutoFactory: Two new overloads for trajectoryCmd() are added, to accept a transformation function such as AutoTrajectory::mirrorY.
Command L_Sweep = factory.trajectoryCmd(ChoreoTraj.L_Sweep.name());
Command R_Sweep = factory.trajectoryCmd(ChoreoTraj.L_Sweep.name(), AutoTrajectory::mirrorY);
- ChoreoAllianceFlipUtil has changed somewhat significantly, but the breaking changes are limited to the system for using prior years' flipping mechanisms, which was half-complete at best. Specific references to prior fields' dimensions and symmetry have been removed, and the new system is more flexible for specifying the flipping calculation. …
| Publisher | SleipnirGroup |
|---|---|
| Version | 2026.0.3 |
| Release date | 2026-04-06 |
| License | BSD-3-Clause |
| Installer type | nullsoft |
| Architecture | x64, arm64 |
| Package ID | SleipnirGroup.choreo |
| Install scope | Current user |
| Dependencies | Microsoft.VCRedist.2015+.x64 |
winget install --id=SleipnirGroup.choreo -ewinget upgrade --id=SleipnirGroup.choreo -ewinget uninstall --id=SleipnirGroup.choreo -e"Choreo-v2026.0.3-Windows-x86_64-setup.exe" /SYes. Choreo is free and open-source software released under the BSD-3-Clause license.
The latest version is 2026.0.3, released on Apr 6, 2026.
The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with f4fab6e146623c0780f4157cd8008b6b43111704381a12dba527e3b0bea7fdaa.
Choreo runs on Windows and is available for 64-bit (x64), ARM64 systems.
Run the offline installer with "Choreo-v2026.0.3-Windows-x86_64-setup.exe" /S, or install it with Windows Package Manager: winget install --id=SleipnirGroup.choreo -e --silent.
Open Settings › Apps › Installed apps, find Choreo and select Uninstall. From the command line, run winget uninstall --id=SleipnirGroup.choreo -e.