Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/robototes/REBUILT2026/llms.txt

Use this file to discover all available pages before exploring further.

The repo ships pre-configured WPILib Simulation GUI layouts in Simgui_layouts/. Each subfolder is a self-contained template: copy its simgui.json (and any image assets) to the project root before launching the simulator, and the GUI will load the layout automatically on startup.

Available layouts

FolderDescription
Simgui_layouts/VisionSim/Visualizes ground-truth pose vs. vision-estimated pose and shows per-camera AprilTag detection wireframes on the Field2d widget

How to use a layout

1

Pick a layout subfolder

Browse the Simgui_layouts/ directory and choose the layout that matches what you want to test. For vision debugging, use Simgui_layouts/VisionSim/.
2

Copy files to the project root

Copy simgui.json and all image files from the chosen subfolder into the repository root (the same directory that contains build.gradle):
# From the repository root — copy the VisionSim layout
cp Simgui_layouts/VisionSim/simgui.json .
cp Simgui_layouts/VisionSim/*.png .
The VisionSim layout ships with three image assets used as icons on the Field2d widget:
FilePurpose
swerve_module.pngIcon for each of the four simulated swerve modules
tag-blue.pngMarker for AprilTags visible to the simulated cameras
tag-green.pngMarker for other AprilTag field positions
3

Run the simulator

Launch the simulator — the GUI reads simgui.json from the project root automatically:
./gradlew simulateJava
All widget positions, sizes, and data source paths defined in simgui.json are restored immediately when the GUI opens.
The root-level simgui.json is listed in .gitignore. Your local working copy will never be committed. The canonical, checked-in copies always live inside the Simgui_layouts/ subfolders — those are the templates you copy from. This means each developer can freely modify their local layout without affecting teammates.

VisionSim layout

The VisionSim layout is designed to let you verify the full PhotonVision → Limelight conversion pipeline at a glance. The Field2d widget is pre-wired to display:
Field2d objectWhat it shows
EstimatedRobotWhere the robot thinks it is (odometry + vision correction)
EstimatedRobotModulesThe four swerve modules at their computed positions and steering angles
GroundTruthRobotWhere the robot actually is in the physics simulation
Vision_limelight-a_MT1MegaTag1 pose estimate from camera A
Vision_limelight-a_MT2MegaTag2 pose estimate from camera A
Vision_limelight-b_MT1MegaTag1 pose estimate from camera B
Vision_limelight-b_MT2MegaTag2 pose estimate from camera B
Vision_limelight-c_MT1MegaTag1 pose estimate from camera C
Vision_limelight-c_MT2MegaTag2 pose estimate from camera C
Vision estimate objects disappear from the field automatically when no AprilTags are visible to that camera (the object’s poses list is cleared). To stress-test vision correction, use the D-pad on the driver controller (active only in simulation):
  • POV-right — injects 0.5 m translation drift and ±15° heading drift into the pose estimator. The ground-truth pose does not change; watch the estimated pose jump away from the ground truth and then converge back as vision corrections arrive.
  • POV-left — cycles through four preset reset positions (auto start on correct alliance side, auto start on wrong alliance side, field origin on correct side, field origin on wrong side).
For more details on the full simulation architecture see Simulation Overview, and for the vision pipeline internals see Vision Sim.

Build docs developers (and LLMs) love