← All projects01 / Pit WindowNext project ↗

Research, design & making · 6 pages · Select “View at 100%” to read the finer details.

01
PIT WINDOW
Robotics · interaction design
A test-log and match-strategy tool

Not a team-management system: Pit Window solves one real problem — the minutes before a match, when faults, opponents, strategy and the clock crowd everyone’s heads. It turns months of test traces into one window: enter a match or team number, and only the latest relevant strategies, faults and checks remain. At 8115X I ran match strategy, drive coaching and scouting; here I did the product logic, interaction, UI and code.

pitwindow.app/prematch?opp=22020X
Pre-match
8115X · KristinD4 · 2025-26 Push Back

Pre-matchvs 22020X

Only the strategies, faults and checks that matter for this match
Match in
08:24
Q18 · red
Field A
22020X 4 meetings · 1W 3LLast: #8 Q27 won 73:27Version D4 11 records matched

Strategies2

A · Win auton, then hold the zone
Strategy 3: “Win auton, secure the match” p108
Auton tests 82% p77Only win vs 22020X
B · 7-ball wing auton + late double park
Route p105 · double park 30 pts p14
Fallback: switch if they rush the centre

Known faultsD4

Wing triggers an SG10 call
#7 final DQ → now mounted upright p113
Slow scoring at 7–8 balls, ~3 s
Mesh roller 4/5 pass p116 · p133
Intake jams now and then
AntiJam live · 5/5 pass p151
Centre double roller 0/5
Back to pneumatic p129

Checklist4 / 6

✓Battery full (failed once on low charge)
✓AntiJam code on
✓Distance-sensor reset test
✓Wings folded upright (SG10)
Size check 18″
Spare Brain and parts packed
Decision: strategy A · win auton first
Based on 11 records · 1W 3L vs 22020X · auton tests 82%
Lock and send to driver
9:415G
For the driver · Q18 · red

Strategy A · win auton first

Auton route Solo AWP · p104
Auton 15 s
3 balls into the first long goal
Driver 0–45 s
Take the control zone first
No rush to fill the goals
45–90 s
Hold long goals, top up centre
They rush centre → switch to B
Last 15 s
Double park +30
Note controller buzz = jam. AntiJam reverses for 0.1 s by itself; don’t mash the button
Read · go
1
2
3
4
5
1
Enter the opponent
22020X: 4 meetings, 1W 3L, one final lost to a DQ
2
Just 2 strategies
Each with evidence: test data and notebook pages
3
Faults for this version
Only what can still go wrong on D4
4
Pre-match checklist
Built from past mistakes: battery, SG10, size
5
Handoff card to the phone
The driver sees 4 steps + 1 warning
Photo: the pit at the Palmerston North regional, 30 Nov 2024
High-fidelity prototype; records from the 8115X notebooks; Q18 is a demo match
02WHY THE RECORDS FAIL AT THE PIT

Context & Insight

Three seasons, four robot generations, hundreds of test records.
The problem was never a lack of records — it was not finding them before the match.

From the garage to Worldsteam timeline · 2023 – 2026
2023.10
Team 61105A forms
Led by an older student, three of us start VEX IQ in Auckland
2023.12
A U.S. Open place
Declined: we wanted to earn it with a robot of our own
2024.01
Asia Open · Signature
First international field; Second Honor and Amaze Award
2024.08
Independent as 8115X
Garage field, no coach, named for Kristin School; on to V5
2024.11
First win, then a rebuild
Palmerston North final 19:3; arm too short, clamp unstable → rebuilt
2025.02
NZ National Champions
Unbeaten · Tournament Champion · Amaze Award · 2nd in Skills
2025.05
VEX Worlds · Dallas
Own sponsors, team kit and booth; division top 16
2025.06 – 26.02
Push Back season
Four designs; Auckland event 6–0 in qualifiers, 85:17 in the final
Eight minutes before a matchthe pit-window moment
Only 8 min
Strategy
Plan A or B?
Opponent
How do they play?
Faults
Really fixed?
Rules
Any penalty risk?
Missed
call
Strategy

Last ~50 s of a semi-final: the team split between safe and aggressive — “they were faster than we thought.”24-25 p51

Opponent

Four matches against 22020X, three lost. The results table has the scores, not one line on how they played.25-26 p78–115

Faults

The double-roller centre goal went 0/5, so back to the old design; jams lasted until AntiJam was written before Nationals.p129 · p151

Rules

Passed size inspection a week earlier, failed it this time; no spares or spare Brain at the first regional.24-25 p59 · p31

KEY INSIGHT
The pit doesn’t lack data — it lacks a filter.
The value is in showing less, not recording more.
Who uses itroles · from the 2025-26 notebook role table
Roles from the notebook’s role table (p7); needs inferred from team experience, not formal interviews
My role
Strategist
MATCH STRATEGY · ALLIANCE COACH

Once the match number is out: how the opponent plays, our record against them, which strategy to run.

By opponentWith evidence
Driver
DRIVER · PROGRAMMER

No time for long documents: which auton route, when to switch, what to press when something goes wrong.

Handoff cardBig timeline
Coach & scout
DRIVE COACH · SCOUT

Watches the opponent and the clock; after the match, logs how they played so it can be found next time.

Opponent tagsOne-line debrief
Builder
BUILDER · NOTEBOOK

Needs to know which version and which test a fault showed up in, and how it was fixed last time.

Issue → versionPhotos + specs
Pain points → opportunitiesevidence from the engineering notebooks
Pain pointEvidence in the notebooksWhat Pit Window does
Records kept by dateDates run out of order (25-26 p62 says 11/09, the next page 12/08); many pages are copy-pasted; the results table holds only scores.→Test log: every record tagged by opponent / version / fault
“Fixed” — in which version?Four robot generations in one season, 17 decision matrices in two notebooks; the double-roller centre goal went 0/5 and was swapped back to pneumatics (p126–129).→Robot versions: one metric side by side per version; every issue links a test and a version
No pre-match checklistFirst regional: no game objects, spares or spare Brain, screws not rechecked (p31); passed size inspection a week earlier, failed this time (p59).→Pre-match: a checklist built from the current version and past mistakes
Slower calls than the opponentStill arguing in the last ~50 s of a semi-final (p51–52); rule and play changes noticed only after losing (25-26 p108, p123).→Strategy branches with triggers set in advance; a one-screen handoff card
03TWO ENGINEERING NOTEBOOKS · 2024 – 2026

Evidence: Months of Test Traces

Everything here comes from 8115X’s two engineering notebooks (94 + 155 pages).
Every iteration was already a problem → test → fix record.

2024-25 High Stakes · four key iterationsiteration cases · 2024-25 notebook
Every number on these cards is from the notebook; page references are marked
Drivetrainspeed vs torquev1 → v2

ProblemIt has to push mobile goals and still be quick — speed or torque?

TestThree drivetrain set-ups scored on six weighted criteria. p15–18

FixDT2: 48:60, 1.25× torque; after the first event, 2.75″ wheels and every motor laid flat. p34

Decision matrix · weighted score
DT14″ wheels · 4 motors · 1.4×DT1: 5757DT23.25″ wheels · 6 motors · 1.25×DT2: 7878DT33.25″ wheels · 6 motors · 1.33×DT3: 6767
→ issue #03 drivetrain · v1→v2 tags: ratio / wheels
Goal clampangle · airv1 → v2
Old
New

ProblemOnce clamped, the goal’s angle wandered and rings missed it; a misaligned grab failed. p39–41

TestOld and new clamp, 10 grabs each, air use logged every time. p43

FixTwo contact points (groove + lip), cylinder moved to the back, first-class lever changed to third-class.

Air per grab (PSI) · 10 trials
02468 PSIOld clampOld clamp #1: 7.2PSIOld clamp #2: 7PSIOld clamp #3: 7.1PSIOld clamp #4: 6.9PSIOld clamp #5: 7.3PSIOld clamp #6: 7.2PSIOld clamp #7: 7PSIOld clamp #8: 7.1PSIOld clamp #9: 7.4PSIOld clamp #10: 7.3PSImean 7.15New clampNew clamp #1: 3.1PSINew clamp #2: 3.2PSINew clamp #3: 3PSINew clamp #4: 3.3PSINew clamp #5: 2.9PSINew clamp #6: 3.1PSINew clamp #7: 3PSINew clamp #8: 3.2PSINew clamp #9: 2.8PSINew clamp #10: 3.1PSImean 3.07
→ issue #07 clamp · v1→v2 tags: angle / air
Intakering jamsv1 → v2
Gap
Gap closed

ProblemA gap between the flex wheels caught rings, and the intake’s side plates wobbled. p33 · p44

AnalysisDrew the gap, marking where rings jam and which way the plates move. p45

FixClosed the gap; polycarbonate side plates swapped for aluminium angle, plus acrylic braces and a ring guide. p46

The gap sketch in the notebook
→ issue #12 intake · v1→v2 tags: jams / wobble
Conveyor hookhook heightv1 → v2
Old / new

ProblemThe conveyor hooks fed rings unreliably; many never caught. p27–28

Test5 hook heights × 3 runs, 6 rings per run, successes counted. p29

FixSet at 5.7 cm; later the trapezoid hook became a straight “|” hook with a locking screw, sprockets 24T/32T. p47–49

Rings delivered (out of 18)
09183.7 cm: 53.7 cm4.0 cm: 104.0 cm5.7 cm: 15155.7 cm6.3 cm: 136.3 cm7.2 cm: 127.2 cm
→ issue #15 hook · v1→v2 tags: height / shape
2025-26 Push Back · four robots in one seasondesign history
D1
Early bot · lift
Meant to score in all three goal types
Why it was replaced
Held only 4–5 balls while play moved to fast loading; dropped half-built. p51
D2
Under goal
C-shaped path into the long goal; pneumatic cord storage
Why it was replaced
Auton needed a 180° turn; driving under the goal gave no edge and added buttons. p80
D3
Front to back
Chain and flaps for intake, centre-goal roller
Why it was replaced
With 7–8 balls stored, scoring lagged up to 3 s; the outer C-channel bent right through. p116
D4 · current
Nationals bot · mesh roller
Full rebuild, with AntiJam code
Before Nationals
Anti-jam, loading and sensor reset all 5/5; mesh roller 4/5. p133–155
JunJulAugSepOctNovDecJan 2026FebD1 early bot: 2025-06-01 → 2025-08-05D1 early botD2 under goal: 2025-08-10 → 2025-09-20D2 under goalD3 front to back: 2025-09-13 → 2025-11-22D3 front to backD4 Nationals: 2025-12-05 → 2026-02-18D4 Nationals
Start and end of each design in the notebook · D2 and D3 overlap by a week: the new robot was tested while it was being built
One opponent, four meetingsmatch margins · 2025-26
one matchvs 22020X— mean
-80-400+40+80+120winloss+10.4#6 Q2 15:61#6 Q9 39:55#6 Q14 91:9#6 Q22 75:17#6 Q28 5:28 vs 22020X#6 Q38 48:27#6 QF 53:16#6 R16 0:30 vs 2915G / 70591A#6D2 · 4W 4L+42.1#10 Q7 13:39#10 Q12 82:14#10 Q21 96:32#10 Q25 37:36#10 Q33 90:22#10 Q47 67:18#10 R16 94:18#10 QF 114:11#10 SF 70:3#10 Final 25:74 vs 22020X / 2915V#10D2 · 8W 2L+23.1#7 Q6 89:37#7 Q10 0:63#7 Q17 32:48#7 Q24 67:24#7 Q27 86:46#7 Q33 84:40#7 Q40 79:26#7 Q51 48:11#7 QF 86:0#7 SF 83:34#7 Final DQ 0:71 vs 22020X / 2923A#7D3 · 8W 3L+63.2#8 Q5 89:26#8 Q10 88:20#8 Q16 81:40#8 Q24 84:12#8 Q27 73:27 vs 22020X#8 Q37 68:32#8 QF 91:15#8 SF 113:14#8 Final 85:17 vs 8757B / 22020C#8D3 · 9W 0LQ28 5:28Final 25:74Final DQ 0:71Q27 73:27
Vertical axis = our alliance score − theirs; in notebook order, Auckland V5RC events #6 · #10 · #7 · #8 p78 · p81 · p106 · p115
1 – 3
Won one, lost three. All 38 scores are in the notebook, yet not one line on how 22020X plays. Pit Window adds no data — it re-indexes the same records by opponent.
04SYSTEM & INFORMATION ARCHITECTURE

System Design

Five tables, one rule: every issue links one test and one version.
Node.js + Express with SQLite is enough — a single file that works in the pit with no Wi-Fi.

Data model5 tables
Example values are real notebook records
matchmatches
idPK
code#8 · Q27
opponent22020X
score73 : 27
fieldField A
branch_idFK
strategy_branchplans
idPK
nameStrategy A
triggerwin auton first
evidencep77 · p108
win_loss1 – 3
updated_byMaique
test_logtests
idPK
date2026-02-18
taskAntiJam · 8 balls
resultP P P P P
pagep152
version_idFK
issuefaults
idPK
typejam / penalty …
severityhigh · med · low
test_idFK
version_idFK
match_idFK · nullable
robot_versionversions
idPK
nameD1 – D4
period12-05 → 02-18
paramsAntiJam 2400
replaced_whywhy replaced
photorobot photo
N : 1N : 1N : 1N : 1N : 1

Why split it this way: in the notebook, “fixed” is where things go wrong, because it never says which version. An issue links both a test_log and a robot_version, so before a match you can ask “does this fault still happen on D4?” New problems from the debrief attach to the match and resurface the next time we meet that opponent.

One real record, end to endantijam · 2026-02-18
p151 – 152
AntiJam code · p151
1
Test · test_log
Intake scores 8 balls in a row × 5 runs → P P P P P, linked to D4
2
Fault · issue
“Intake sometimes jams” → fix: reverse 100 ms when speed < 30% for 300 ms
3
Version · robot_version
D4 parameters record detectionThreshold 2400, cooldown 1000 ms
4
Pre-match
The checklist now shows “AntiJam code on” by itself
5
Handoff card
The driver sees: “Buzz = jam. AntiJam reverses by itself — don’t mash buttons”
Tech stackkept simple
Front end
HTML / JS (React optional)
No framework for show; the work is in the information architecture and speed at the venue
Back end
Node.js + Express
/log /issue /version /match /branch /prematch
Database
SQLite
One file that travels with the laptop; works offline
Devices
Laptop + phone
Desktop for logging and debriefs; phone for pre-match and handoff
Pre-match logicone query
1Input22020X or match Q18
2Matchmatch.opponent · match.code
3FilterCurrent version D4 + this season only
4SortRecord vs opponent → fault severity → recency
5Output2 strategies · 4 faults · 6 checks
More filters if time allows: fault type · field · version · opponent style
Service blueprint: record to decision6 stages
Using the AntiJam and 22020X cases from page 3
1 Test
2 Log
3 Link
4 Find
5 Decide
6 Debrief
UserACTIONS
Five scoring runs in the garage
Logs PPPPP on the phone in 30 s
Picks D4, adds a photo of the code
Types 22020X before the match
Locks strategy A for the driver
Adds a one-line debrief
Touch­pointWHERE
Field · robot
Phone · quick log
Phone · version tag
Web · pre-match
Phone · handoff card
Web · post-match
DataSTORED
—
test_log
issue → version
match + branch
strategy_branch
issue · match.score
Back­stageSYSTEM
—
POST /log
FK check test_id · version_id
GET /prematch?opp=
push handoff card
update win–loss
BeforeTHE BREAK
Notes by date, written up after testing
Results table: scores only
Fixed in which version?
Lost in 249 pages
Still arguing in the last 50 s
Never written back
6

Step 6, the debrief, writes results back to the issue and the match, so the next pre-match screen can use them. This loop is the heart of the tool, and the one thing a paper notebook can’t do.

05FOUR SCREENS ON THE PIT LAPTOP

Desktop App

The laptop lives in the pit: log, compare, plan, review.
Every record on these screens comes from the 8115X notebooks, with its page number kept.

1Test logrecordReal 2025-26 tests · 8 sets × 5 runs
pitwindow.app/logs?version=D3,D4
8115X · KristinD4 · 2025-26 Push Back

Test logD3 + D4

Every test links a version; a failed run becomes an issue
+ Log a test
Fault: intake / centre goalVersion: D3 + D4Opponent: allField: garage Search: jam, wing, 22020X…
DateTestVer.5 runsResult / actionPage
02-18AntiJam: 8 balls in a rowD4✓✓✓✓✓Auto-reverse works on a jamp152
02-18Loader: 6 balls at onceD4✓✓✓✓✓Grooved acetal loader worksp155
02-02Distance-sensor reset ≤ 1″D4✓✓✓✓✓Steadier auton startp140
01-18Centre goal: mesh rollerD4✓✓✓✓✕Mesh roller adoptedp133
01-12Centre goal: double rollerD4✕✕✕✕✕0/5 → back to pneumaticp129
01-11Flaps hold 7–8 ballsD4✕✕✓✓✕Flaps unreliable → meshp128
10-15Sweeper hook: ≥ 6 ballsD3✓✓✓✓✓Passp101
09-25Flaps hold 7 ballsD3✓✕✓✓✓The fail: low batteryp92
40trials8 sets × 5 repeats
30passed · 75%10 fails across 4 sets
3became issuesdouble roller · flaps · battery

4 filters
fault type · version · opponent · field

Five runs shown cell by cell, with the failure reason on the same row

The notebook page stays on every record, one step from the original

2Robot versionscompareFour robots in one season
pitwindow.app/versions
8115X · KristinD4 · 2025-26 Push Back

Robot versionsD1 – D4

One set of metrics, four robots side by side
Export table
D1 early bot
06-01 → 08-05
Record did not compete
Storage 4–5 balls max
Replaced: too slow for fast loading
D2 under goal
08-10 → 09-20
Record 12W 6L · #6 #10
Loading ~5 balls per load
Replaced: auton needs a 180° turn
D3 front to back
09-13 → 11-22
Record 17W 3L · #7 #8
Sweep ≥ 6 balls, 5/5
Replaced: 3 s lag at 7–8 balls
D4 Nationals
12-05 → 02-18
Record before Nationals
Anti-jam AntiJam 5/5
Current version
Bar = match win rate for that version; D4 bar = pass rate of the five pre-Nationals tests

Same metrics side by side
dates · record · key test

Every version states why it was replaced

Records are tallied per version from the match table

3Strategy branchesplanOpponent: 22020X
pitwindow.app/branches?opp=22020X
8115X · KristinD4 · 2025-26 Push Back

Strategy branchesvs 22020X

Each branch states its trigger, its evidence and past results
vs 22020X: 1W 3L
Start
22020X in the other alliance
Our auton reliable?
yes → win auton first
They rush the centre?
yes → switch to the wing
Behind at 30 s left?
yes → all-in on parking
A · win auton, hold the zone
auton tests 82% p77 · won 73:27
B · 7-ball wing auton + park
route p105 · park 30 pts p14
C · hold long goals + park
zone 10 pts · park 30 pts p14

Branch A · evidence

· 10+ hours of auton testing, long goal 82% p77
· Loading success 95% p77
· #8 Q27 vs 22020X 73:27 (our only win)
Source: Strategy 3 · 2025-11-05 p108

Start → 3 triggers → 3 branches

Every branch carries evidence: test data + past meetings

Side panel: branch A’s route and source pages

4Post-matchreviewAuckland #7 · D3 · 8W 3L
pitwindow.app/review/auckland-7
8115X · KristinD4 · 2025-26 Push Back

Post-matchAuckland #7

Auckland V5RC #7 · D3 · qualifiers 6W 2L, DQ in the final
Write back to log

Scores at this event11 matches

8115X allianceOpponents
03367100Q6 us 89Q6 them 37Q6Q10 them 63Q10Q17 us 32Q17 them 48Q17Q24 us 67Q24 them 24Q24Q27 us 86Q27 them 46Q27Q33 us 84Q33 them 40Q33Q40 us 79Q40 them 26Q40Q51 us 48Q51 them 11Q51QF us 86QFSF us 83SF them 34SFFinal them 71Final

New issues → test log

1
Final DQ: tied to an SG10 wing call
Issue created · linked to the #7 final · wing now mounted upright p113
2
Auton self-rating only 7/10
Added to next week’s test plan p107
3
22020C’s vertical sweeper hook
Saved to the opponent file as a design reference p107
Synced to
Checklist +1Test plan +1Opponent file +1D3 version log
One-line debrief
“Ranked higher than last event, but DQ’d in the final over the wing. Before the next match, the wing position goes on the checklist.”

Scores: us vs them, 11 matches

One click turns a new problem into an issue linked to the match

The one-line debrief feeds the checklist: back to step 1

06THE PHONE, THE TEST PLAN, WHAT I LEARNED

Mobile · Validation · Reflection

At the venue, the phone is what is actually in your hand.
Last step: put it in front of my VEX teammates and school robotics students and watch them use it.

Five key phone screensmobile
The 8-minute path: home → checklist → handoff; the rest of the time: report faults, look up history
9:415G

Good afternoon, Maique

Auckland V5RC · 4 matches left today
Next: Q18 · red · vs 22020X
08:24
Open pre-match
Log a test
in 30 seconds
Report a fault
photo + tags
History
by opponent / version
Checklist
4 / 6 done
Recent
AntiJam · 8 balls
02-18 · P P P P P
D4
Loader · 6 balls
02-18 · P P P P P
D4
Distance-sensor reset
02-02 · P P P P P
D4
Home
Log
Pre-match
Review
9:415G

Report a fault

Auto-linked: test 01-12 · version D4
Photo 1 / 2
Fault type
JamPenaltyDriftStructure
Where
Centre goal · double-roller scoring
Version
D4 Nationals (auto-filled)
Severity
HighMedLow
Save and tell the team
Home
Log
Pre-match
Review
9:415G

Pre-match check

Q18 · built from strategy A and past mistakes
4/6done
✓
Battery full
A run once failed on low charge · p92
✓
AntiJam code on
p151
✓
Distance-sensor reset
p140
✓
Wings folded upright
SG10 · final DQ · p113
Size check 18″
Failed once · 24-25 p59
Spare Brain and parts
Forgotten at the first regional · p31
Home
Log
Pre-match
Review
9:415G
For the driver · Q18 · red

Strategy A · win auton first

Auton route · p104
Auton 15 s
3 balls into the first long goal
Driver 0–45 s
Take the control zone first
45–90 s
Hold long goals; they rush centre → B
Last 15 s
Double park +30
Note controller buzz = jam; don’t mash the button
Read · go
9:415G

History

22020X
D2 – D4This seasonIncl. elims
4 meetings found · 1W 3L
#8 · Q2773 : 27 W
D3 · qualifier
#7 · Final0 : 71 DQ
D3 · wing triggered SG10
#10 · Final25 : 74 L
D2 · their alliance + 2915V
#6 · Q285 : 28 L
D2 · qualifier
How they play: nothing logged yet
Add one line after the match; it shows up next time
Home
Log
Pre-match
Review
1Home

Countdown to the next match + 4 shortcuts

2Report

Photo + tags, linked to the test and version automatically

3Checklist

Every item comes from a real mistake

4Handoff

For the driver: route + 4-step timeline + 1 warning

5History

Type a team number; all 4 meetings on one screen

In contextwhere it is used
01 Garage: a test logged in 30 s
02 Pit: pre-match shows only what matters
03 Evening: the debrief goes back into the log

Photos from the 8115X team archive (garage practice field; Palmerston North regional, Nov 2024)

Demo video storyboard2 min
00:00Log · PPPPP
1. Log after testing

Garage test done, logged on the phone in 30 s

00:20Jam · D4 · high
2. Report a fault

Photo of the jam, linked to D4

00:4522020X → 4 matches
3. Look up the opponent

Type the team number, see 1W 3L

01:102 plans · 4 faults
4. Pre-match

Opened in the pit: only what matters

01:40Strategy A · read
5. Decide, hand off

Handoff card pushed to the driver’s phone

02:05Back to log +3
6. Debrief feeds back

One line after the match, ready for the next

Usability test planplanned
TaskWhatTargetResult
T1Log one test record< 30 sPending
T2Find the history of “D4 centre-goal jam”< 20 sPending
T3Pick a strategy for a match vs 22020X< 2 minPending
T4Driver reads the handoff card and repeats it back4 / 4 stepsPending

Who: 3 former VEX teammates + 2–3 other robotics students at school. Control: the same tasks first with the paper notebook, then with Pit Window, comparing time and misses.

Feedback 01teammate · strategy
Feedback 02teammate · driver
Feedback 03school robotics student

Feedback screenshots go in these frames once the tests are done

Reflection & next stepswhat I learned
1
Less is more

The hard part wasn’t adding features; it was deciding what pre-match should leave out.

2
Indexing beats recording

The same notes, indexed by opponent / version / fault, become a tool.

3
Built from inside the team

At 8115X I ran match strategy and drive coaching. I built this for the person I was then.

NEXT
Import the 40 tests and 38 scores from 2025-26
Run T1–T4 with teammates and capture real feedback
Record the 2-minute demo video
Add combined filters by field and opponent style