Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
38040a5
fuel sim moved to frc-fire-control's FuelPhysicsSim
A2A1x Mar 23, 2026
59791d6
Merge branch 'photon' into frc-fire-control-FuelPhysicsSim
A2A1x Mar 24, 2026
001054f
merge fix
A2A1x Mar 24, 2026
a373052
working in auto
A2A1x Mar 24, 2026
b349559
Merge remote-tracking branch 'origin/trench-autos' into frc-fire-cont…
A2A1x Mar 24, 2026
cf7212f
added trench auto
A2A1x Mar 24, 2026
d5efa71
start of bump physics sim
SpectrumFRC3847 Mar 24, 2026
014256c
start of articulating mechanisms
SpectrumFRC3847 Mar 24, 2026
b67f558
Revert "start of bump physics sim"
A2A1x Mar 25, 2026
ed136da
working intake articulation in sim
A2A1x Mar 25, 2026
248b398
update vendordeps
SpectrumFRC3847 Apr 13, 2026
870907c
Merge branch 'tuning' into high-fidelity-sim
SpectrumFRC3847 Apr 13, 2026
860499d
merge fix
SpectrumFRC3847 Apr 13, 2026
e425c13
Merge branch 'main' into high-fidelity-sim
SpectrumFRC3847 Apr 20, 2026
32ffbca
fm additions
SpectrumFRC3847 Apr 20, 2026
bd803f3
Merge branch 'auto' into high-fidelity-sim
SpectrumFRC3847 Apr 22, 2026
6f941d6
logic fix and clearer variable name
SpectrumFRC3847 Apr 22, 2026
c485bd9
Merge branch 'auto' into high-fidelity-sim
SpectrumFRC3847 Apr 22, 2026
3ed78f9
Merge branch 'tuning' into high-fidelity-sim
SpectrumFRC3847 Apr 27, 2026
b991646
merge fix
SpectrumFRC3847 Apr 27, 2026
614202f
Refactor spectrumLib packages and safety fixes
A2A1x May 27, 2026
7cc4f1e
Add detailed README for SpectrumLib
A2A1x May 27, 2026
14d8995
Refactor Vision subsystem and tidy imports
A2A1x May 27, 2026
b0c872c
Remove custom Trigger; update usages
A2A1x May 27, 2026
74dac3c
Merge branch 'high-fidelity-sim' into random
A2A1x May 27, 2026
9b42afd
Update pilot trigger logic and GUI layout
A2A1x May 27, 2026
64d11d0
Use polynomial virtual-target shot model
A2A1x May 27, 2026
271afad
Add Javadoc to all spectrumLib packages
A2A1x Jun 3, 2026
85276e8
Add 3D bump ramp physics simulation to swerve sim
A2A1x Jun 3, 2026
e163e84
fix variable name
A2A1x Jun 3, 2026
2ac3f92
Refactor robot state handling into SuperStructure
A2A1x Jun 3, 2026
64250b3
Enable and implement autonomous routines
A2A1x Jun 3, 2026
8fb65dd
Remove SpectrumSubsystem and update usages
A2A1x Jun 3, 2026
25db917
Remove TagProperties and simplify Swerve config
A2A1x Jun 5, 2026
ff508a5
Bump CTRE Phoenix, update README, drop PhotonLib
A2A1x Jun 5, 2026
637b145
Improve auton/side loading; swerve & vision fixes
A2A1x Jun 6, 2026
82bc360
Introduce CANdle-based Leds subsystem
A2A1x Jun 6, 2026
87beda2
Refine shooter model, kinematics, and swerve init
A2A1x Jun 10, 2026
91840da
Adjust swerve teleop coeff and telemetry keys
A2A1x Jun 10, 2026
e624ad9
Make configs immutable and refactor subsystems
A2A1x Jun 10, 2026
b7ca865
Add OM2026 configuration class for robot setup
JediMasterLucy55 Jun 11, 2026
558c2af
Remove Zones and simplify field centers
A2A1x Jun 11, 2026
c5e176c
Inject SuperStructure into Auton and RobotSim
A2A1x Jun 11, 2026
89ebff6
Multiple subsystem fixes and refactors
A2A1x Jun 12, 2026
ae9014a
Merge branch 'main' into state-machine-refactor
A2A1x Jun 12, 2026
6bd5fb4
revived leds for the offseason, next I will focus on getting them to …
JediMasterLucy55 Jun 12, 2026
5fab55c
Merge pull request #104 from Spectrum3847/main
JediMasterLucy55 Jun 14, 2026
2418f07
Refactor LED subsystem: replace CANdleLeds with Leds class and update…
JediMasterLucy55 Jun 14, 2026
7370768
Refactor shooter models; add feed model
A2A1x Jun 16, 2026
38c7a13
Update controls, intake logic, and UI layout
SpectrumFRC3847 Jun 17, 2026
3d7b240
Merge branch 'state-machine-refactor' into 2026-offseason-bot
SpectrumFRC3847 Jun 17, 2026
ae72acf
changing spindexer to new state system, turret is next
SpectrumFRC3847 Jun 17, 2026
5eb995c
Refactor Launcher subsystem: update configuration parameters and stat…
SpectrumFRC3847 Jun 17, 2026
28891aa
Remove unused IndexerBedConfig import and add TODO for Launcher state…
SpectrumFRC3847 Jun 17, 2026
6a3b36a
configs
SpectrumFRC3847 Jun 17, 2026
14b1364
architecture changes
JediMasterLucy55 Jun 29, 2026
92f54c9
Refactor current limit variables in FuelIntake, IntakeExtension, and …
JediMasterLucy55 Jul 1, 2026
f301f7c
coded turret in and made general adjustments
JediMasterLucy55 Jul 2, 2026
802a0ba
Refactor imports and clean up code formatting in various subsystems
JediMasterLucy55 Jul 2, 2026
add0b98
sim fixes
JediMasterLucy55 Jul 2, 2026
d42f512
sim stuff
JediMasterLucy55 Jul 4, 2026
a9d5707
Refactor turret angle handling in ShotCalculator and Turret subsystem…
JediMasterLucy55 Jul 5, 2026
13e3bb4
sim configs
JediMasterLucy55 Jul 5, 2026
7696b01
Update controls for sim will make better when not on mobile
JediMasterLucy55 Jul 5, 2026
6b78d68
Update button handling for simulation mode in Robot class; adjust wan…
JediMasterLucy55 Jul 6, 2026
adc8879
Merge branch '2026-offseason-bot' of https://github.com/Spectrum3847/…
JediMasterLucy55 Jul 6, 2026
cc11eba
Add FM2026 configuration and update Robot class for simulation handli…
JediMasterLucy55 Jul 6, 2026
2656e95
Refactor launcher states and update turret configuration for improved…
JediMasterLucy55 Jul 6, 2026
bdbbaec
sim updates
JediMasterLucy55 Jul 10, 2026
e603014
Merge branch 'main' into sim-docs
JediMasterLucy55 Jul 10, 2026
5a280d1
Resolve merge conflicts in 1 file(s)
coderabbitai[bot] Jul 26, 2026
22f530a
fix spotless formatting
Project516 Jul 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,6 @@
"edu.wpi.first.math.**.struct.*",
],
"java.compile.nullAnalysis.mode": "automatic",
"java.debug.settings.onBuildFailureProceed": true
"java.debug.settings.onBuildFailureProceed": true,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== .vscode/settings.json (around line 61) ==\n'
nl -ba .vscode/settings.json | sed -n '45,75p'

printf '\n== Search for related Java debug/build settings ==\n'
rg -n '"java\.debug\.settings\.onBuildFailureProceed"|"java\.jdt\.ls\.vmargs"|"java\.debug\.settings\.' .vscode settings.json . || true

Repository: Spectrum3847/2026-Spectrum

Length of output: 250


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== .vscode/settings.json (around line 61) ==\n'
awk 'NR>=45 && NR<=75 { printf "%4d  %s\n", NR, $0 }' .vscode/settings.json

printf '\n== Search for related Java debug/build settings ==\n'
rg -n '"java\.debug\.settings\.onBuildFailureProceed"|"java\.jdt\.ls\.vmargs"|"java\.debug\.settings\.' .vscode . || true

Repository: Spectrum3847/2026-Spectrum

Length of output: 1257


🌐 Web query:

Java debug settings onBuildFailureProceed last successful artifact after build failure documentation

💡 Result:

The setting java.debug.settings.onBuildFailureProceed is a configuration option specifically for the Visual Studio Code Debugger for Java extension [1][2]. It is unrelated to retrieving artifacts after a build failure [3]. ### Understanding java.debug.settings.onBuildFailureProceed This setting controls whether the VS Code Java debugger automatically continues and launches the program even if the workspace build (compilation) fails [1]. * When set to true: The debugger suppresses the "Build failed, do you want to continue?" prompt and proceeds with the launch using the previously compiled (and potentially outdated) classes [1][3]. * When set to false (default): The debugger displays a warning prompt when a build failure occurs, allowing the user to choose whether to continue, always continue (which updates the setting to true), or fix the errors [1][4][3]. This setting does not manage or retrieve build artifacts; it solely dictates the debugger's behavior in the presence of compiler errors within the IDE [3]. ### Managing Artifacts After Build Failures If you are looking to retrieve artifacts from a "last successful build" after a failure, this functionality is typically found in CI/CD platforms rather than local Java debugger settings [5][6][7]. * Jenkins: The Copy Artifact plugin allows you to select artifacts from the "Last successful build" of a project [6]. Pipeline scripts can use selectors like lastSuccessful() to target these builds [8][9]. * TeamCity: Artifact dependencies can be configured to import artifacts from the "Latest successful build" specifically [7]. If you are encountering build failures in a local VS Code environment, the java.debug.settings.onBuildFailureProceed setting will not help you access a previous successful build; it will only force the debugger to run the current, broken state of your code [3]. If you need a stable version, you should revert your source code to the last known good commit using your version control system (e.g., Git) [1][4].

Citations:


Do not proceed after a failed build
java.debug.settings.onBuildFailureProceed should be false here; when enabled, the debugger skips the build-failed prompt and can launch with stale classes, which makes validation results misleading.

Suggested setting
-  "java.debug.settings.onBuildFailureProceed": true,
+  "java.debug.settings.onBuildFailureProceed": false,
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"java.debug.settings.onBuildFailureProceed": true,
"java.debug.settings.onBuildFailureProceed": false,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.vscode/settings.json at line 61, Update the
java.debug.settings.onBuildFailureProceed setting in the VS Code configuration
to false so debugging does not continue after a failed build.

"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx8G -Xms100m -Xlog:disable"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf 'FILE: .vscode/settings.json\n'
wc -l .vscode/settings.json
printf '\n--- lines around 62 ---\n'
sed -n '50,75p' .vscode/settings.json

printf '\n--- occurrences of java.jdt.ls.vmargs ---\n'
rg -n '"java\.jdt\.ls\.vmargs"' -S .

printf '\n--- workspace docs mentioning VS Code / Java settings ---\n'
rg -n 'VS Code|vscode|java\.jdt\.ls\.vmargs|JDT LS|Gradle|Glass' -S README* .github .vscode docs . 2>/dev/null | sed -n '1,200p'

Repository: Spectrum3847/2026-Spectrum

Length of output: 805


Lower the tracked JDT LS heap. .vscode/settings.json sets java.jdt.ls.vmargs to -Xmx8G, which every contributor inherits; on smaller machines it can consume a large share of RAM. Use a smaller workspace default and let users raise it in their own settings if needed.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.vscode/settings.json at line 62, Update the java.jdt.ls.vmargs setting in
the workspace configuration to replace the tracked -Xmx8G maximum heap with a
substantially smaller default, while preserving the other JVM arguments. Users
should still be able to override the heap size in their personal settings.

}
3 changes: 3 additions & 0 deletions advantagescope-custom-assets/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This folder contains extra assets for the odometry, 3D field, and joystick views. For more details, see the "Custom Fields/Robots/Joysticks" page in the AdvantageScope documentation (available through the documentation tab in the app or the URL below).

https://docs.advantagescope.org/more-features/custom-assets
57 changes: 57 additions & 0 deletions advantagescope-custom-assets/Robot_FM/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"name": "3847 - FM",
"isFTC": false,
"disableSimplification": false,
"rotations": [
{
"axis": "x",
"degrees": 90
},
{
"axis": "z",
"degrees": 90
}
],
"position": [
0,
0,
0
],
"cameras": [],
"components": [
{
"zeroedRotations": [
{
"axis": "x",
"degrees": 90
},
{
"axis": "z",
"degrees": 90
}
],
"zeroedPosition": [
0,
0,
0
]
},
{
"zeroedRotations": [
{
"axis": "x",
"degrees": 90
},
{
"axis": "z",
"degrees": 90
}
],
"zeroedPosition": [
0,
0,
0
]
}
]
}
Binary file not shown.
Binary file not shown.
54 changes: 54 additions & 0 deletions advantagescope-custom-assets/Robot_PM/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"name": "3847 - PM",
"isFTC": false,
"disableSimplification": false,
"rotations": [{
"axis": "x",
"degrees": 90
}, {
"axis": "z",
"degrees": 90
}],
"position": [
0,
0,
0
],
"cameras": [],
"components": [
{
"zeroedRotations": [
{
"axis": "x",
"degrees": 90
},
{
"axis": "z",
"degrees": 90
}
],
"zeroedPosition": [
0,
0,
0
]
},
{
"zeroedRotations": [
{
"axis": "x",
"degrees": 90
},
{
"axis": "z",
"degrees": 90
}
],
"zeroedPosition": [
0,
0,
0
]
}
]
}
Binary file not shown.
Binary file not shown.
11 changes: 3 additions & 8 deletions simgui-ds.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
{
"System Joysticks": {
"window": {
"enabled": false
}
},
"keyboardJoysticks": [
{
"axisConfig": [
Expand Down Expand Up @@ -98,11 +93,11 @@
],
"robotJoysticks": [
{
"guid": "78696e70757401000000000000000000",
"useGamepad": true
"guid": "Keyboard0"
},
{
"useGamepad": true
}
]
],
"useEnableDisableHotkeys": true
}
70 changes: 35 additions & 35 deletions simgui-window.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"Docking": {
"Data": [
"DockNode ID=0x00000001 Pos=6,1072 Size=979,323 Selected=0x48913727",
"DockNode ID=0x00000002 Pos=995,825 Size=1237,566 Split=X",
"DockNode ID=0x00000003 Parent=0x00000002 SizeRef=625,413 Selected=0xFA2A8FFA",
"DockNode ID=0x00000004 Parent=0x00000002 SizeRef=610,413 Selected=0xA6A62DF3",
"DockNode ID=0x00000005 Pos=2,21 Size=2242,790 Split=X",
"DockNode ID=0x00000001 Pos=4,942 Size=983,285 Selected=0x48913727",
"DockNode ID=0x00000003 Pos=983,443 Size=877,514 Split=X",
"DockNode ID=0x00000004 Parent=0x00000003 SizeRef=238,497 Selected=0xFA2A8FFA",
"DockNode ID=0x00000006 Parent=0x00000003 SizeRef=235,497 Selected=0xA6A62DF3",
"DockNode ID=0x00000005 Pos=9,29 Size=2242,790 Split=X",
Comment on lines +4 to +8

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

file="simgui-window.json"

echo "== File info =="
wc -l "$file"
echo

echo "== Relevant lines =="
cat -n "$file" | sed -n '1,120p'
echo

echo "== Coordinate check =="
python3 - <<'PY'
import json, re, sys, pathlib

path = pathlib.Path("simgui-window.json")
text = path.read_text()

# Extract all quoted strings and look for common ImGui layout fields.
strings = re.findall(r'"([^"]*)"', text)

nums = []
for s in strings:
    if any(k in s for k in ("Pos=", "Size=", "SizeRef=", "MainWindow", "DockNode")):
        nums.append(s)

print("Matched strings:", len(nums))
for s in nums:
    print(s)

# Parse simple numeric extents where possible
def parse_kv(s):
    out = {}
    for key in ("Pos", "Size", "SizeRef"):
        m = re.search(rf'{key}=(-?\d+),(-?\d+)', s)
        if m:
            out[key] = (int(m.group(1)), int(m.group(2)))
    return out

xs, ys = [], []
for s in strings:
    kv = parse_kv(s)
    if "Pos" in kv:
        x, y = kv["Pos"]
        xs.append(x); ys.append(y)
    if "Size" in kv:
        w, h = kv["Size"]
        # only for strings that also have Pos
        if "Pos" in kv:
            x, y = kv["Pos"]
            xs.append(x + w); ys.append(y + h)

print()
if xs and ys:
    print("Observed x range:", min(xs), "to", max(xs))
    print("Observed y range:", min(ys), "to", max(ys))
PY

Repository: Spectrum3847/2026-Spectrum

Length of output: 6360


Keep the Glass layout within the window bounds. simgui-window.json stores dock/window positions past the 1920×974 main window (for example, the Alerts and Scheduler panes sit beyond the right edge), so this layout can reopen off-screen on a single-monitor setup. Normalize the saved coordinates before committing.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@simgui-window.json` around lines 4 - 8, Normalize the saved Glass dock layout
in simgui-window.json so all window and dock positions remain within the
1920×974 main-window bounds, especially the panes positioned beyond the right
edge. Adjust the affected Pos and Size values while preserving the existing dock
hierarchy and split relationships.

"DockNode ID=0x00000011 Parent=0x00000005 SizeRef=1872,784 Split=X",
"DockNode ID=0x00000008 Parent=0x00000011 SizeRef=322,445 Split=Y Selected=0x39AD1970",
"DockNode ID=0x0000000A Parent=0x00000008 SizeRef=187,370 Split=Y Selected=0x39AD1970",
Expand All @@ -24,13 +24,13 @@
"GLOBAL": {
"font": "Proggy Dotted",
"fps": "120",
"height": "1415",
"height": "974",
"maximized": "1",
"style": "0",
"userScale": "2",
"width": "2256",
"width": "1920",
"xpos": "0",
"ypos": "29"
"ypos": "34"
}
},
"Table": {
Expand All @@ -55,63 +55,63 @@
"###/SmartDashboard/Alerts": {
"Collapsed": "0",
"DockId": "0x00000013,0",
"Pos": "1876,21",
"Pos": "1883,29",
"Size": "368,183"
},
"###/SmartDashboard/Auto Chooser": {
"Collapsed": "0",
"DockId": "0x0000000E,0",
"Pos": "2,414",
"Pos": "9,422",
"Size": "322,78"
},
"###/SmartDashboard/Field2d": {
"Collapsed": "0",
"DockId": "0x00000009,0",
"Pos": "326,21",
"Pos": "333,29",
"Size": "1548,790"
},
"###/SmartDashboard/Scheduler": {
"Collapsed": "0",
"DockId": "0x00000014,0",
"Pos": "1876,206",
"Pos": "1883,214",
"Size": "368,605"
},
"###/SmartDashboard/Sim/LeftView": {
"Collapsed": "0",
"DockId": "0x00000004,0",
"Pos": "1622,825",
"Size": "610,566"
"DockId": "0x00000006,0",
"Pos": "1425,443",
"Size": "435,514"
},
"###/SmartDashboard/Sim/TopView": {
"Collapsed": "0",
"DockId": "0x00000003,0",
"Pos": "995,825",
"Size": "625,566"
"DockId": "0x00000004,0",
"Pos": "983,443",
"Size": "440,514"
},
"###/SmartDashboard/VisionSystemSim-main/Sim Field": {
"Collapsed": "0",
"Pos": "1080,167",
"Size": "500,250"
"Pos": "937,167",
"Size": "513,250"
},
"###Addressable LEDs": {
"Collapsed": "0",
"Pos": "290,100",
"Size": "197,54"
"Size": "229,60"
},
"###FMS": {
"Collapsed": "0",
"DockId": "0x0000000C,0",
"Pos": "2,21",
"Size": "322,391"
"Pos": "9,29",
"Size": "322,230"
},
"###Joysticks": {
"Collapsed": "0",
"Pos": "6,824",
"Size": "976,102"
"Pos": "26,752",
"Size": "1156,202"
},
"###Keyboard 0 Settings": {
"Collapsed": "0",
"Pos": "10,50",
"Pos": "502,141",
"Size": "300,560"
},
"###Keyboard 1 Settings": {
Expand All @@ -122,25 +122,25 @@
"###NetworkTables": {
"Collapsed": "0",
"DockId": "0x00000001,0",
"Pos": "6,1072",
"Size": "979,323"
"Pos": "4,942",
"Size": "983,285"
},
"###NetworkTables Info": {
"Collapsed": "0",
"DockId": "0x00000001,1",
"Pos": "6,1072",
"Size": "979,323"
"Pos": "4,942",
"Size": "983,285"
},
"###System Joysticks": {
"Collapsed": "0",
"DockId": "0x00000001,2",
"Pos": "27,1035",
"Size": "935,312"
"Pos": "4,942",
"Size": "983,285"
},
"###Timing": {
"Collapsed": "0",
"DockId": "0x0000000F,0",
"Pos": "2,494",
"Pos": "9,502",
"Size": "322,317"
},
"Debug##Default": {
Expand All @@ -151,8 +151,8 @@
"Robot State": {
"Collapsed": "0",
"DockId": "0x0000000D,0",
"Pos": "2,253",
"Size": "32,38"
"Pos": "9,261",
"Size": "322,159"
}
}
}
6 changes: 6 additions & 0 deletions src/main/deploy/pathplanner/autos/TBTB Full.auto
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
"data": {
"pathName": "1st-TBTB 2"
}
},
{
"type": "path",
"data": {
"pathName": "1st-TBTB 3"
}
}
]
}
Expand Down

This file was deleted.

Loading