← Thomas Yu

Catalyst

The whole-robot library for FRC. Mechanisms, swerve, a state machine for the entire robot, physics, autonomy and telemetry, configured through builders instead of rewritten every season.

Stable
1.12.0 · roboRIO, WPILib 2026
Next
2.0.0-rc.1 · Systemcore, WPILib 2027
Built on
CTRE Phoenix 6, Java
Source
github.com/TomAs-1226/FrcCatalyst
FrcCatalyst 2.0: Different computer, same library. WPILib 2027 alpha-7, Systemcore image 14, Commands v3. Version 2.0.0-rc.1, beta, on JitPack.

Why

A mechanism is a description

Every FRC season a team rewrites the same elevator, arm and shooter: motor setup, feedforward, soft limits, simulation, logging. Catalyst turns that into a description of the mechanism. You say what it is; the library does the rest the same way every time.

// Catalyst 2.0: a two-motor elevator with named positions
LinearMechanism elevator = new LinearMechanism(
    LinearMechanism.Config.builder()
        .name("Elevator").motor(13).follower(14, true)
        .motorType(MotorType.KRAKEN_X60)
        .gearRatio(10.0).drumRadius(0.0254)
        .range(0.0, 1.2).mass(5.0)
        .pid(50, 0, 0.5).gravityGain(0.35)
        .motionMagic(2.0, 4.0, 20.0)
        .position("STOW", 0.0).position("HIGH", 1.1)
        .build());

new Trigger(operator::getYButton).onTrue(elevator.goTo("HIGH"));

That elevator comes with Motion Magic, gravity feedforward, a physics simulation, SysId, live tuning and telemetry under /Catalyst/Elevator/, without another line.

Versions

Two computers, one library

FIRST is moving from the roboRIO to Systemcore. Catalyst follows both: 1.x for the robots that compete now, 2.0 for the new controller and WPILib 2027.

LineLatestRuns onInstallUse it for
1.x1.12.0
Aug 7, 2026
roboRIO · WPILib 2026 · Java 17JitPack, or the stable vendordepCompetition robots
2.02.0.0-rc.1
Oct 16, 2026
Systemcore image 14 · WPILib 2027 alpha-7 · Java 25 · Phoenix 26.70JitPack, or the beta vendordepThe new controller
2.0 alpha-62.0.0-rc.4-a6
Oct 1, 2026
Systemcore image 13 · WPILib 2027 alpha-6Source build onlyThe first Systemcore image

2.0 moves to Commands v3 and Java 25, yet 974 of 986 public methods kept their names, so porting a robot is a short list of renames.

What's in it

The whole robot

10 mechanism builders

Elevators, arms, turrets, flywheels, claws and more, each self-simulating and self-tuning.

Whole-robot state machine

Superstructure runs every mechanism as one machine.

Swerve + vision

Drive-to-pose, pathfinding and Limelight MegaTag fusion.

Physics Core

Slip, collisions, live centre of mass, self-identified parameters.

Autonomy 2.1

Shared control that helps the driver instead of taking over.

Telemetry + tuning

Everything on NetworkTables, SysId everywhere, eleven browser tools.

The suite

Apps around it

On a robot

Numbers

Numbers · competition robot
X1 · swerve test drivebase, steering live

Every mechanism on Numbers is a Catalyst builder. New features drive on X1 first.

NextRobotics
→