# steelhawks/rebuilt2026 architecture

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

- Interactive diagram: https://gitdiagram.com/steelhawks/rebuilt2026
- Repository: https://github.com/steelhawks/rebuilt2026

## Overview

Shaquille O’Steel is Steel Hawks’ 2026 FRC robot code, with a separate browser-based shot-solver tool. The robot’s principal workflow is driver control through teleoperated commands to drivetrain and robot mechanisms; vision and pose state support field-aware behavior, while autonomous and shooting capabilities are represented by their source modules. The sampled code confirms the robot entry point, teleop-to-swerve behavior, and shot-solver wiring. Other robot subsystem connections are not shown because their source was not sampled.

Main entry points: [`tools/shot-solver/src/app.js`](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/app.js) (Solver interface), [`src/main/java/org/steelhawks/commands/TeleopSwerve.java`](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/TeleopSwerve.java) (Teleop driving), [`src/main/java/org/steelhawks/Main.java`](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Main.java) (Robot entry), [`src/main/java/org/steelhawks/Robot.java`](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Robot.java) (Robot lifecycle)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Robot runtime"]
  node_main["Robot entry<br/>[Main.java]"]
  node_robot["Robot lifecycle<br/>[Robot.java]"]
  node_container["Robot bindings"]
  node_autos["Autonomous routines<br/>[Autos.java]"]
end

subgraph group_drive["Drive and sensing"]
  node_teleop["Teleop driving<br/>[TeleopSwerve.java]"]
  node_swerve["Swerve drive<br/>[Swerve.java]"]
  node_robotstate["Robot pose state<br/>[RobotState.java]"]
  node_vision["Vision localization<br/>[Vision.java]"]
  node_objectvision["Object vision<br/>[ObjectVision.java]"]
end

subgraph group_mechanisms["Robot mechanisms"]
  node_shooting["Shooting commands"]
  node_shooter["Shooter calculations"]
  node_hood["Hood mechanism<br/>[Hood.java]"]
  node_turret["Turret mechanism<br/>[Turret.java]"]
  node_flywheel["Flywheel mechanism<br/>[Flywheel.java]"]
  node_intake["Intake mechanism<br/>[Intake.java]"]
  node_indexer["Indexer mechanism<br/>[Indexer.java]"]
  node_beam["Beam sensing<br/>[BeamIO.java]"]
end

subgraph group_operator["Operator feedback"]
  node_led["LED display<br/>[LEDMatrix.java]"]
  node_rumble["Controller rumble"]
end

subgraph group_solver["Shot solver"]
  node_app["Solver interface<br/>[app.js]"]
  node_solver["Shot envelope solver<br/>[solver.js]"]
  node_physics["Trajectory physics<br/>[physics.js]"]
  node_slip["Wheel slip model<br/>[slip.js]"]
  node_plots["Solver plots<br/>[plots.js]"]
  node_lut["Lookup generation<br/>[lut.js]"]
end

node_driver(("Driver station"))
node_solveruser(("Shot-planning user"))

node_main -->|"starts"| node_robot
node_driver -->|"controls"| node_teleop
node_teleop -->|"commands"| node_swerve
node_teleop -->|"reads pose"| node_robotstate
node_solveruser -->|"sets inputs"| node_app
node_app -->|"solves envelope"| node_solver
node_app -->|"draws plots"| node_plots
node_app -->|"calculates wheel speed"| node_slip
node_app -->|"simulates flight time"| node_physics
node_app -->|"generates lookup"| node_lut

click node_main "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Main.java"
click node_robot "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Robot.java"
click node_container "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/RobotContainer.java"
click node_autos "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Autos.java"
click node_teleop "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/TeleopSwerve.java"
click node_swerve "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/swerve/Swerve.java"
click node_robotstate "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/RobotState.java"
click node_vision "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/vision/Vision.java"
click node_objectvision "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/vision/objdetect/ObjectVision.java"
click node_shooting "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/ShootingCommands.java"
click node_shooter "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/ShooterStructure.java"
click node_hood "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/hood/Hood.java"
click node_turret "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/turret/Turret.java"
click node_flywheel "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/flywheel/Flywheel.java"
click node_intake "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/intake/Intake.java"
click node_indexer "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/indexer/Indexer.java"
click node_beam "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/beam/BeamIO.java"
click node_led "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/led/LEDMatrix.java"
click node_rumble "https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/rumble/VibrateController.java"
click node_app "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/app.js"
click node_solver "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/solver.js"
click node_physics "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/physics.js"
click node_slip "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/slip.js"
click node_plots "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/plots.js"
click node_lut "https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/lut.js"

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,node_autos,node_solveruser toneBlue
class node_teleop,node_swerve,node_robotstate,node_vision,node_objectvision toneAmber
class node_shooting,node_shooter,node_hood,node_turret,node_flywheel,node_intake,node_indexer,node_beam toneMint
class node_led,node_rumble toneRose
class node_app,node_solver,node_physics,node_slip,node_plots,node_lut,node_driver toneIndigo
```

## Components

### Robot runtime

- [Robot entry](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Main.java): `src/main/java/org/steelhawks/Main.java`
- [Robot lifecycle](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Robot.java): `src/main/java/org/steelhawks/Robot.java`
- [Robot bindings](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/RobotContainer.java): `src/main/java/org/steelhawks/RobotContainer.java`
- [Autonomous routines](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/Autos.java): `src/main/java/org/steelhawks/Autos.java`

### Drive and sensing

- [Teleop driving](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/TeleopSwerve.java): `src/main/java/org/steelhawks/commands/TeleopSwerve.java`
- [Swerve drive](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/swerve/Swerve.java): `src/main/java/org/steelhawks/subsystems/swerve/Swerve.java`
- [Robot pose state](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/RobotState.java): `src/main/java/org/steelhawks/RobotState.java`
- [Vision localization](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/vision/Vision.java): `src/main/java/org/steelhawks/subsystems/vision/Vision.java`
- [Object vision](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/vision/objdetect/ObjectVision.java): `src/main/java/org/steelhawks/subsystems/vision/objdetect/ObjectVision.java`

### Robot mechanisms

- [Shooting commands](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/ShootingCommands.java): `src/main/java/org/steelhawks/commands/ShootingCommands.java`
- [Shooter calculations](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/ShooterStructure.java): `src/main/java/org/steelhawks/subsystems/superstructure/ShooterStructure.java`
- [Hood mechanism](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/hood/Hood.java): `src/main/java/org/steelhawks/subsystems/superstructure/hood/Hood.java`
- [Turret mechanism](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/turret/Turret.java): `src/main/java/org/steelhawks/subsystems/superstructure/turret/Turret.java`
- [Flywheel mechanism](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/superstructure/flywheel/Flywheel.java): `src/main/java/org/steelhawks/subsystems/superstructure/flywheel/Flywheel.java`
- [Intake mechanism](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/intake/Intake.java): `src/main/java/org/steelhawks/subsystems/intake/Intake.java`
- [Indexer mechanism](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/indexer/Indexer.java): `src/main/java/org/steelhawks/subsystems/indexer/Indexer.java`
- [Beam sensing](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/beam/BeamIO.java): `src/main/java/org/steelhawks/subsystems/beam/BeamIO.java`

### Operator feedback

- [LED display](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/subsystems/led/LEDMatrix.java): `src/main/java/org/steelhawks/subsystems/led/LEDMatrix.java`
- [Controller rumble](https://github.com/steelhawks/rebuilt2026/blob/main/src/main/java/org/steelhawks/commands/rumble/VibrateController.java): `src/main/java/org/steelhawks/commands/rumble/VibrateController.java`

### Shot solver

- [Solver interface](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/app.js): `tools/shot-solver/src/app.js`
- [Shot envelope solver](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/solver.js): `tools/shot-solver/src/solver.js`
- [Trajectory physics](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/physics.js): `tools/shot-solver/src/physics.js`
- [Wheel slip model](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/slip.js): `tools/shot-solver/src/slip.js`
- [Solver plots](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/plots.js): `tools/shot-solver/src/plots.js`
- [Lookup generation](https://github.com/steelhawks/rebuilt2026/blob/main/tools/shot-solver/src/lut.js): `tools/shot-solver/src/lut.js`

### Other components

- **Driver station**
- **Shot-planning user**

## Connections

- Robot entry → Robot lifecycle: starts
- Driver station → Teleop driving: controls
- Teleop driving → Swerve drive: commands
- Teleop driving → Robot pose state: reads pose
- Shot-planning user → Solver interface: sets inputs
- Solver interface → Shot envelope solver: solves envelope
- Solver interface → Solver plots: draws plots
- Solver interface → Wheel slip model: calculates wheel speed
- Solver interface → Trajectory physics: simulates flight time
- Solver interface → Lookup generation: generates lookup
