# frc-gforce/rebuild2026 architecture

> Architecture diagram of the GitHub repository frc-gforce/rebuild2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/frc-gforce/rebuild2026
- Repository: https://github.com/frc-gforce/rebuild2026

## Overview

This is a WPILib command-based FRC robot program. The principal workflow is operator input through the robot’s command bindings into drive and game-piece mechanisms; autonomous commands coordinate path following with intake and shooting actions. Separate subsystems provide differential or swerve driving, vision-assisted pose updates, rear intake, feed, and intake/shooter control. Motor adapters and shared utilities form the hardware and configuration layer. The README is empty, and wiring details in RobotContainer and several command implementations are inferred from the tree rather than sampled source, so uncertain call links are omitted.

Main entry points: [`src/main/java/frc/robot/motors`](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/motors) (Motor adapters), [`src/main/java/frc/robot/RobotContainer.java`](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/RobotContainer.java) (Robot bindings), [`src/main/java/frc/robot/subsystems/swervedrive/SwerveDriveSubsystem.java`](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/swervedrive/SwerveDriveSubsystem.java) (Swerve drive), [`src/main/java/frc/robot/commands`](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/commands) (Intake and shoot commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Robot runtime"]
  node_main["Startup<br/>[Main.java]"]
  node_robot["Robot lifecycle<br/>[Robot.java]"]
  node_container["Robot bindings"]
end

subgraph group_control["Operator and autonomous control"]
  node_controllers["Controller adapters"]
  node_drivecommands["Drive commands"]
  node_gamecommands["Intake and shoot commands"]
  node_autos["Autonomous routines<br/>[Autos.java]"]
end

subgraph group_mechanisms["Drive and game-piece mechanisms"]
  node_swervedrive["Swerve drive"]
  node_tankdrive["Tank drive<br/>[TankDrive.java]"]
  node_intakeshooter["Intake and shooter"]
  node_feed["Feed mechanism<br/>[Feed.java]"]
  node_backintake["Rear intake<br/>[BackIntake.java]"]
end

subgraph group_hardware["Hardware and shared utilities"]
  node_fieldutils["Field utilities<br/>[FieldUtils.java]"]
  node_motoradapters["Motor adapters"]
  node_motorfactory["Motor factory<br/>[MotorFactory.java]"]
  node_tuning["Tunable numbers"]
end

node_driver(("Operator"))
node_pathplanner["PathPlanner"]
node_limelight["Limelight vision"]
node_motorhardware["Motor controllers"]

node_main -->|"starts"| node_robot
node_robot -->|"uses bindings"| node_container
node_driver -->|"provides input"| node_controllers
node_container -->|"configures"| node_controllers
node_container -->|"binds controls"| node_drivecommands
node_container -->|"binds controls"| node_gamecommands
node_container -->|"selects routines"| node_autos
node_drivecommands -->|"commands drive"| node_swervedrive
node_drivecommands -->|"commands drive"| node_tankdrive
node_gamecommands -->|"commands mechanism"| node_intakeshooter
node_gamecommands -->|"commands feed"| node_feed
node_gamecommands -->|"commands intake"| node_backintake
node_autos -->|"requests paths"| node_pathplanner
node_autos -->|"schedules actions"| node_gamecommands
node_swervedrive -->|"configures path following"| node_pathplanner
node_swervedrive -->|"adds vision measurements"| node_limelight
node_swervedrive -->|"reads field data"| node_fieldutils
node_tankdrive -->|"uses motors"| node_motoradapters
node_swervedrive -->|"drives modules"| node_motorhardware
node_motorfactory -->|"creates adapters"| node_motoradapters
node_motoradapters -->|"controls"| node_motorhardware
node_intakeshooter -->|"uses motors"| node_motoradapters
node_feed -->|"uses motors"| node_motoradapters
node_backintake -->|"uses motors"| node_motoradapters
node_tuning -.-> node_limelight

click node_main "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/Main.java"
click node_robot "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/Robot.java"
click node_container "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/RobotContainer.java"
click node_controllers "https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/controller"
click node_drivecommands "https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/commands"
click node_gamecommands "https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/commands"
click node_autos "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/commands/Autos.java"
click node_swervedrive "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/swervedrive/SwerveDriveSubsystem.java"
click node_tankdrive "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/tankdrive/TankDrive.java"
click node_intakeshooter "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/intakexshooter/IntakeXShooter.java"
click node_feed "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/feed/Feed.java"
click node_backintake "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/backintake/BackIntake.java"
click node_fieldutils "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/FieldUtils.java"
click node_motoradapters "https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/motors"
click node_motorfactory "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/MotorFactory.java"
click node_tuning "https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/LoggedTunableNumber.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_robot,node_container toneBlue
class node_controllers,node_drivecommands,node_gamecommands,node_autos toneAmber
class node_swervedrive,node_tankdrive,node_intakeshooter,node_feed,node_backintake toneMint
class node_fieldutils,node_motoradapters,node_motorfactory,node_tuning toneRose
class node_driver,node_pathplanner,node_limelight,node_motorhardware toneIndigo
```

## Components

### Robot runtime

- [Startup](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/Main.java): `src/main/java/frc/robot/Main.java`
- [Robot lifecycle](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/Robot.java): `src/main/java/frc/robot/Robot.java`
- [Robot bindings](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/RobotContainer.java): `src/main/java/frc/robot/RobotContainer.java`

### Operator and autonomous control

- [Controller adapters](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/controller): `src/main/java/frc/robot/controller`
- [Drive commands](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/commands): `src/main/java/frc/robot/commands`
- [Intake and shoot commands](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/commands): `src/main/java/frc/robot/commands`
- [Autonomous routines](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/commands/Autos.java): `src/main/java/frc/robot/commands/Autos.java`

### Drive and game-piece mechanisms

- [Swerve drive](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/swervedrive/SwerveDriveSubsystem.java): `src/main/java/frc/robot/subsystems/swervedrive/SwerveDriveSubsystem.java`
- [Tank drive](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/tankdrive/TankDrive.java): `src/main/java/frc/robot/subsystems/tankdrive/TankDrive.java`
- [Intake and shooter](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/intakexshooter/IntakeXShooter.java): `src/main/java/frc/robot/subsystems/intakexshooter/IntakeXShooter.java`
- [Feed mechanism](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/feed/Feed.java): `src/main/java/frc/robot/subsystems/feed/Feed.java`
- [Rear intake](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/subsystems/backintake/BackIntake.java): `src/main/java/frc/robot/subsystems/backintake/BackIntake.java`

### Hardware and shared utilities

- [Field utilities](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/FieldUtils.java): `src/main/java/frc/robot/utils/FieldUtils.java`
- [Motor adapters](https://github.com/frc-gforce/rebuild2026/tree/master/src/main/java/frc/robot/motors): `src/main/java/frc/robot/motors`
- [Motor factory](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/MotorFactory.java): `src/main/java/frc/robot/utils/MotorFactory.java`
- [Tunable numbers](https://github.com/frc-gforce/rebuild2026/blob/master/src/main/java/frc/robot/utils/LoggedTunableNumber.java): `src/main/java/frc/robot/utils/LoggedTunableNumber.java`

### Other components

- **Operator**
- **PathPlanner**
- **Limelight vision**
- **Motor controllers**

## Connections

- Startup → Robot lifecycle: starts
- Robot lifecycle → Robot bindings: uses bindings
- Operator → Controller adapters: provides input
- Robot bindings → Controller adapters: configures
- Robot bindings → Drive commands: binds controls
- Robot bindings → Intake and shoot commands: binds controls
- Robot bindings → Autonomous routines: selects routines
- Drive commands → Swerve drive: commands drive
- Drive commands → Tank drive: commands drive
- Intake and shoot commands → Intake and shooter: commands mechanism
- Intake and shoot commands → Feed mechanism: commands feed
- Intake and shoot commands → Rear intake: commands intake
- Autonomous routines → PathPlanner: requests paths
- Autonomous routines → Intake and shoot commands: schedules actions
- Swerve drive → PathPlanner: configures path following
- Swerve drive → Limelight vision: adds vision measurements
- Swerve drive → Field utilities: reads field data
- Tank drive → Motor adapters: uses motors
- Swerve drive → Motor controllers: drives modules
- Motor factory → Motor adapters: creates adapters
- Motor adapters → Motor controllers: controls
- Intake and shooter → Motor adapters: uses motors
- Feed mechanism → Motor adapters: uses motors
- Rear intake → Motor adapters: uses motors
- Tunable numbers → Limelight vision
