1. Executive Summary & Core Mission
Dressage Coach is an equestrian mobile platform engineered specifically for competitive and amateur dressage riders, trainers, and judges.
The discipline of dressage demands millimetric geometric precision: horses and riders must execute intricate floorplans (circles, serpentines, diagonals, lateral passes) inside standard arenas (20m x 40m or 20m x 60m) while maintaining rhythmic cadence and gait regulation. Historically, training relies on clumsy paper test sheets, third-party callers standing in inclement weather, or infrequent coaching clinics.
Dressage Coach solves this problem through three interconnected software engines:
- Mathematical Arena Geometry: A vector compilation engine that translates official British Dressage (BD) movement directives into millimetric BΓ©zier curves and continuous rail trajectories with corner quadrant routing.
- Intelligent Lookahead Voice Calling: A predictive audio caller that models equine velocity and stride lengths to call upcoming movements with customizable lead time (Tlead), keeping the riderβs eyes and hands focused on the horse.
- Equine Biomechanics Calibration: Multi-horse profiling where each mountβs distinct stride lengths (walk, trot, canter) and cadence (SPM) dynamically adjust test durations, stride counts, and audio call timestamps.
flowchart TD
A["Equine Profile\n(Stride Lengths & Cadence SPM)"] --> C["Dressage Test Compiler\n(BΓ©zier Engine & Rail Router)"]
B["BD Official Tests & Custom Curricula\n(12 Built Tests + Waypoint Builder)"] --> C
C --> D["Interactive Arena Player\n(20x40 / 20x60 Vector HUD)"]
C --> E["Predictive Audio Caller\n(Adaptive Lead-Time TTS)"]
C --> F["Stride Cadence Metronome\n(Custom Beats / SPM)"]
D --> G["Live Ride Session & Training HUD"]
E --> G
F --> G
G --> H["Ride Journal & Analytics\n(Stride Logs & Performance Scores)"]
2. Official Brand Identity & Launcher Icon
The visual branding of Dressage Coach marries traditional equestrian luxury with modern mathematical precision. The finalized and adopted brand identity is Golden Ratio Harmony.
Golden Ratio Harmony (Official)
Crafted in native mathematical vector curves without reliance on external font assets. Features deep British Racing Green radial gradients, gold-embossed centerline marker plaques (C, X, A), subtle 20m arena coordinate gridlines, and an authentic logarithmic spiral illustrating classical dressage geometry.
3. Eight-Pillar System Architecture
The architecture of the application is categorized into eight structural pillars, providing clear separation of concerns across models, geometric compilers, and user interfaces:
| Pillar | Domain Focus | Status | Core Files & Key Components |
|---|---|---|---|
| 1. Core App Shell & Profiles | Equine biomechanics, stride calibration & SharedPreferences persistence | 100% Complete | HorseProfile, StorageService, HorseManagementScreen |
| 2. Test Catalog & Compiler | 12 BD official tests, BΓ©zier vector compilation, custom floorplan builder | 100% Complete | BritishDressageOfficialTests, DressageTestCompiler, TestBuilderScreen |
| 3. Lookahead Audio Caller | Predictive voice synthesis, adaptive speech rates, lead-time lookahead | 100% Complete | TestAudioCaller, TestPlayerScreen |
| 4. Stride Telemetry & Metronome | Audio cadence clicker, stride simulator, hardware IMU telemetry | Phase 1 Built | Cadence metronome & stride simulator active; hardware accelerometer integration planned |
| 5. Freestyle to Music (KΓΌr) | Audio track BPM analysis, cadence matching & choreography timeline | Planned | Specification and architectural design complete |
| 6. Scoring & Ride Journal | Session history, stride counts, digital 0β10 scorecards & mark slips | Phase 1 Built | RideJournalEntry, JournalScreen; full BD mark slips planned |
| 7. Sunlight UI & Ergonomics | High-contrast outdoor sunlight mode, landscape arena canvas, tactile controls | 100% Complete | SettingsScreen, high-contrast sunlight toggle, responsive canvas |
| 8. Competition Hub & BD Qualifiers | Multi-platform entry sync across Tier 1 & 2 systems (BD, Horse Monkey, My Riding Life, Equo Events, Horse Events, Equipe), BD qualification tracker & upcoming show finder | Architected & Ready | QualificationGoal, EquestrianBooking, PlatformSyncService, CompetitionHubScreen |
4. What Has Been Built β 8 Operational Screens
Below are authentic Android Studio emulator screenshots (captured at 1080x2400 resolution on Pixel 8) displaying the fully functioning features of the application:
Live Training Dashboard
The rider's cockpit: highlights the active horse, calibrated stride lengths, arena size, marker proximity tracker, quick training actions, and interactive roadmap preview cards.
- Active mount card with trot/canter stride & SPM cadence metrics
- Live arena proximity tracker displaying current and approaching markers with stride advance simulator
- One-tap launch into Test Player, Custom Test Builder, and Arena Canvas
- Recent training session log summary with score percentage and duration
- Planned Capabilities & Roadmap Labs: Interactive modular preview tiles for Freestyle to Music (KΓΌr), Equine IMU Cadence Telemetry, GPS Arena Geofencing, Digital Judge Scorecard, and Mounted Voice Assistant with architectural specifications and roadmap status modal sheets
Official BD Test Library
Curated catalog of 12 official British Dressage tests spanning Intro through Young Horse series, complete with duration and stride metrics.
- Intro A/B, Prelim 1/2, Novice 2/3, Youth B+/C+, National 5YO
- Instant filtering by level (Introductory, Preliminary, Novice, Youth, Custom)
- Movement count, arena dimension badge (20x40m / 20x60m), and estimated ride time
- One-tap navigation directly into the interactive arena player
Interactive Test Player & Caller
The core riding environment. Renders the exact arena floorplan with animated rider tracking and predictive speech engine calling upcoming movements.
- Continuous vector floorplan with glowing active movement and fading completed paths
- Predictive speech caller announcing movements with configurable lead time
- Integrated cadence metronome with 1.0x / 1.5x / 2.0x playback speed
- Dropdown movement selector for instant scrubbing to any directive
Custom Test Builder
Enables riders, judges, and trainers to compose custom tests or freestyle routines with immediate visual vector compilation and geometry verification.
- Sequential waypoint stitcher: Start Marker → End Marker → Gait → Figure
- Instant geometry validation preventing impossible cross-arena jumps
- Live stride and duration calculation based on active horse profile
- Free-text import modal parsing raw test sheets into directives
Figures & Geometry Canvas
Visual encyclopedia of standard dressage figures and movements, serving as a rider reference guide and geometry testbed.
- Exact 20m, 15m, and 10m circles with rail tangent adherence
- 3-loop and 4-loop serpentines touching long rails at perpendicular crossings
- Gait color coding: Amber (Walk), Green (Trot), Blue (Canter), Crimson (Halt)
- Switchable 20x40m and 20x60m arena letter grids
Horse Profiles & Biomechanics
Multi-horse management where individual stride lengths and cadences are configured to dynamically tune all test calculations.
- Configurable working trot stride (0.9m β 1.8m) & canter stride (2.2m β 3.5m)
- Target cadence in strides-per-minute (SPM) for accurate ride duration
- Immediate propagation of stride changes across all 12 test sheets
- Local persistence supporting multiple competition mounts
Training Ride Journal
Logs and tracks training progression over time, capturing completed test rides with duration, horse name, test, stride counts, and reflection notes.
- Automatic ride logging upon completion of any test in the Test Player
- Manual entry support for non-app training and competition rides
- Score percentage badges and stride summary analytics
- JSON-backed local persistence via StorageService
Settings & Sunlight Mode
System configuration tailored for outdoor equestrian environments, audio caller sliders, and high-contrast sunlight display.
- High-contrast sunlight mode for bright outdoor glare conditions
- TTS Lookahead lead-time slider (1.0s to 8.0s)
- Speech rate, voice pitch, and audio metronome toggles
- Default arena dimension selector (20x40m small or 20x60m standard)
5. Deep-Dive: Core Technical Engine Achievements
1. Topological Rail Router & BΓ©zier Synthesizer
A central engineering breakthrough was solving the arena corner cut problem. In standard graphics software, connecting two non-adjacent letters (e.g. Marker C at the end rail to Marker B on the long rail) draws a straight diagonal across the open arena. In dressage, the horse must ride around the corner track (C → M → B), maintaining the outer rail.
The DressageTestCompiler implements an algorithmic topological rail router:
- Corner Rail Stitching: When moving between a short rail (A or C) and a long rail (B or E), the compiler calculates the rail quadrant and synthesizes a continuous corner arc through intermediate markers (H, M, K, F).
- Tangent Circle Math: For 20m, 15m, and 10m circles, the compiler computes the circle center offset from the rail tangent point, generating a 4-point cubic BΓ©zier spline with <0.5% geometric deviation.
- Serpentine Spline Synthesis: The synthesizeSerpentine() function produces smooth sinusoidal BΓ©zier loops across the arena width that touch both long rails and intersect the centerline at exact perpendicular angles.
2. Predictive Lookahead Voice Calling Engine
A human caller calls the next movement before the horse reaches the marker so the rider can prepare their aids. An audio engine that announces a movement at the exact moment of marker arrival is too late.
The TestAudioCaller models equine velocity and timing dynamically:
Velocity: v = stride_length × (SPM / 60)
Movement Duration: T_mov = Distance_meters / v
Call Timestamp: T_call = T_arrival - T_lead
By subtracting Tlead (configurable between 1.0s and 8.0s, default 3.0s), the speech synthesizer delivers concise voice instructions ahead of time, adapting speech rate for shorter movement segments.
3. Cross-Platform Booking Aggregator & BD Qualification Engine
Competitive riders currently suffer severe administrative fatigue tracking entries, start times, and results across fragmented platforms (Horse Monkey, My Riding Life, Equo Events, Horse Events, and British Dressage), while manually tracking complex qualification criteria across notebooks and spreadsheets.
| Tier | Platforms Included | Platform Role & Functionality | Engineering Scope |
|---|---|---|---|
| Tier 1: Core Portals | British Dressage, Horse Monkey, My Riding Life | Public official verified BD results & placings lookup; ~80% of UK primary affiliated show booking & times. | In Scope (Core) |
| Tier 2: Scheduling & Live Timing | Equo Events, Horse Events, Equipe | H&H booking network, third-party riding/pony club qualifiers, real-time live scoring & on-day drawn order changes. | In Scope (Phase 7) |
| Tier 3: Club / Livery Systems | EC Pro, BRC (Sport80), Entrymaster | Local college arena hire, unaffiliated riding club leagues, and niche booking engines. | Out of Scope |
To integrate Tier 1 & Tier 2 services without compromising rider security or storing third-party passwords on central cloud servers, Dressage Coach implements a Client-Side, Zero-Knowledge Integration Architecture:
flowchart TD
subgraph Client ["Dressage Coach Mobile App (Flutter)"]
UI["Amalgamated Competitions Hub"]
QE["BD Qualification Engine"]
subgraph Security ["Secure Storage Boundary"]
KS["iOS Keychain / Android KeyStore\n(flutter_secure_storage)"]
WV["Sandboxed In-App Auth WebView\n(Session-Only Sync)"]
end
subgraph SyncEngine ["Platform Sync Engine (Tier 1 & 2)"]
BDSync["BD Results Client\n(BD Horse/Rider #)"]
HMSync["Horse Monkey Client\n(Session Cookie Sync)"]
MRLSync["My Riding Life Client\n(Schedule & Times Sync)"]
EquoSync["Equo Events Client\n(Schedule & Booking Sync)"]
HESync["Horse Events Client\n(Calendar Sync)"]
EquipeSync["Equipe Live Client\n(Real-Time Drawn Times & Scoring)"]
CalSync["Device Calendar / .ICS Ingestion"]
end
end
subgraph ExternalPlatforms ["Tier 1 & Tier 2 Equestrian Platforms"]
BDServer["British Dressage Results DB\n(britishdressage.online)"]
HMServer["Horse Monkey Portal\n(horsemonkey.com)"]
MRLServer["My Riding Life Portal\n(myridinglife.com)"]
EquoServer["Equo Events Portal\n(equoevents.co.uk)"]
HEServer["Horse Events Portal\n(horse-events.co.uk)"]
EquipeServer["Equipe Live Scoring API\n(online.equipe.com)"]
end
UI --> QE
QE --> BDSync
UI --> SyncEngine
WV -.->|Extracts Session Cookies| KS
KS -->|Injects Auth Headers| HMSync
KS -->|Injects Auth Headers| MRLSync
KS -->|Injects Auth Headers| EquoSync
BDSync -->|GET Results by Reg #| BDServer
HMSync -->|GET /my-entries| HMServer
MRLSync -->|GET /my-bookings| MRLServer
EquoSync -->|GET /user/entries| EquoServer
HESync -->|GET /fixtures| HEServer
EquipeSync -->|GET /meetings/scores| EquipeServer
CalSync -.->|Parses .ics files| UI
- Zero-Credential BD Results Lookup: Official British Dressage results and percentages are public records searchable by Horse and Rider Registration numbers. The app queries these records directly with zero credential or password liability.
- Sandboxed In-App Session Sync: Riders authenticate directly into Horse Monkey, My Riding Life, or Equo Events via an in-app sandboxed WebView. Active session cookies are stored exclusively in the device's hardware-backed Keychain/KeyStore, pulling booked entries and drawn start times 48 hours prior to shows.
- Live Day-of-Show Equipe Integration: Pulls real-time drawn start lists and live judge movement marks directly from Equipe endpoints, updating the rider's phone if arena rings are running early or late.
- Automated BD Qualification Rules Engine: Continuously evaluates scores against official BD rules, distinguishing between Summer (1 Jan β 30 Jun) and Winter (1 Jul β 31 Dec) windows, Petplan Area Festivals (4 scores ≥ 62% at PrelimβElementary), and Regional Championships (4 scores ≥ 65% Silver / 67% Gold), enforcing cross-level restrictions and the 68% Regional lockout rule.
- Upcoming Qualifier Radar: Cross-references active qualification targets against aggregated fixture schedules from all Tier 1 & 2 booking platforms within a configurable radius (e.g. 35 miles), displaying badges for events holding required qualifier classes with direct one-tap booking links.
- Warm-Up Calling Integration: When drawn start times are published, tapping an upcoming booking instantly loads the test into the Lookahead Audio Caller for mounted rehearsal and ringside warm-up.
6. Implementation Roadmap (Phases 3 to 7)
With the core shell, 12 BD tests, vector compiler, audio caller, and horse calibration fully implemented and verified with 20/20 passing tests, the upcoming development phases are outlined below:
-
Phase 3: Hardware IMU Cadence Telemetry & Regularity Metric
Transition from simulated cadence to real-time equine stride detection utilizing smartphone internal motion sensors (accelerometer/gyroscope) or a saddle/boot BLE sensor.
- `CadenceSensorService`: Stream listener on high-frequency device motion events.
- Peak Detection Filter: 0.8 Hz β 3.5 Hz bandpass filter isolating equine hoof impact spikes from rider hand movements.
- Regularity Score (0β100%): Computes stride-to-stride variance (σ2stride). A metronomic rhythm scores >95%; tempo fluctuations decrease the score.
- Audio Haptic Alerts: Whispered earbud feedback: "Cadence slowing: 142 SPM" or "Tempo rushed: 158 SPM".
-
Phase 4: 4-Corner GPS Arena Geofencing & Auto-Advance Tracking
Completely hands-free riding. The app tracks the horse's physical position in the ring and automatically advances the test and audio calls without rider intervention.
- Arena Calibration Walk: Rider walks to corners A, F, C, M once; app records GPS coordinates.
- Affine Coordinate Transform: Converts GPS latitude/longitude into arena grid coordinates (x ∈ [0, 20], y ∈ [0, 60]).
- Marker Proximity Trigger: 2-meter threshold around letters auto-triggers the next movement.
- Apple Watch / WearOS Glance: Wrist display showing next letter and stride countdown with tactile haptic taps.
-
Phase 5: Freestyle to Music (KΓΌr) Choreography Studio
Enables riders preparing for musical freestyles to match equine gait tempos with musical phrasing and track BPMs.
- Audio Track BPM Analyzer: Imports MP3/WAV tracks and calculates rhythm tempo using autocorrelation.
- Equine BPM Matcher: Maps horse trot cadence (e.g. 152 SPM) and canter cadence (e.g. 104 SPM) against audio tracks with pitch-preserving time-stretching.
- Choreography Timeline: Drag-and-drop timeline snapping compulsory movements (circles, pirouettes, extended trots) to musical phrases.
-
Phase 6: Digital Judge Scorecard & Video Telemetry Overlay
Comprehensive scoring platform for trainers and judges during test clinics, complete with official mark slips and video telemetry synchronization.
- Official BD Mark Slip: 0.0 to 10.0 score entries with standard coefficient multipliers (×2 for lateral work, medium paces).
- Collective Marks: Sliders for Paces, Impulsion, Submission, and Rider Position.
- Arena Heatmap: Visual overlay highlighting arena regions with highest scores vs. deduction areas.
- Video Telemetry Sync: Synchronizes phone camera recording taken from Marker C with the test timeline, overlaying the ideal BΓ©zier curve on top of the ride video.
-
Phase 7: Equestrian Platform Hub & BD Qualification Engine
Unified competition management securely connecting British Dressage, Horse Monkey, My Riding Life, Equo Events, Horse Events, and Equipe to aggregate entries, drawn start times, and qualification progress.
- Zero-Credential BD Results Sync: Queries public BD records via rider and horse BD numbers to auto-populate official scores and placings into the Ride Journal.
- Client-Side Keychain Session Sync: Ephemeral in-app WebViews with hardware-backed encryption (Apple Keychain / Android KeyStore) syncing Horse Monkey and My Riding Life entries and start times without server credentials.
- BD Qualification Rulebook Calculator: Automates Summer (1 Jan β 30 Jun) and Winter (1 Jul β 31 Dec) qualification tracking for Petplan Area Festivals (4 scores ≥ 62%) and Regional Championships (scores ≥ 65% Silver / ≥ 67% Gold).
- Upcoming Qualifier Radar: Radius-filtered search across all platforms matching upcoming shows with missing qualification scores, with deep-link booking launchers.
- One-Tap Warm-Up Caller: Booked classes auto-link to the Test Player, loading the exact test into the voice caller for warm-up arena preparation.
7. Project Directory Map
Current architecture of the codebase for developer onboarding and reference:
lib/
βββ models/
β βββ arena_model.dart # Arena dimensions (20x40, 20x60) & letter coordinates
β βββ dressage_test_model.dart # 12 official BD tests, movements, gaits & figures
β βββ horse_profile_model.dart # Equine biomechanics, stride lengths & SPM cadences
β βββ journal_entry_model.dart # Training session log & scoring model
βββ services/
β βββ dressage_test_compiler.dart # BΓ©zier curve generator & topological rail router
β βββ dressage_test_parser.dart # Free-text parser for converting text to tests
β βββ storage_service.dart # SharedPreferences local persistence layer
β βββ tts_service.dart # TestAudioCaller speech synthesis & timing engine
βββ screens/
β βββ dashboard_screen.dart # Main cockpit, session HUD & planned capability tiles
β βββ test_library_screen.dart # 12 BD tests catalog & filtering UI
β βββ test_player_screen.dart # Vector arena canvas & live audio caller
β βββ test_builder_screen.dart # Custom waypoint & figure sequencer
β βββ arena_canvas_screen.dart # Figure encyclopedia & geometric testbed
β βββ horse_management_screen.dart# Equine profile editor & stride calibration
β βββ journal_screen.dart # Training ride logs & scoring history
β βββ settings_screen.dart # High-contrast sunlight mode & TTS sliders
βββ widgets/
βββ app_tile_painters.dart # Golden Ratio Harmony vector icon painter
βββ interactive_arena_canvas.dart# Interactive arena renderer with animated rider
8. Recommended Next Steps for Neil
Depending on your immediate focus when diving back into development, four clear implementation avenues are ready for execution:
Path A: Hardware Stride Telemetry
Connect the smartphone's internal accelerometer to build the real-time stride detector and regularity percentage meter (Phase 3).
Ready to BeginPath B: Digital Judge Mark Slips
Build the 0β10 score mark slip UI into the Test Player for coaches and riders to score tests movement-by-movement with collective marks (Phase 6).
Ready to BeginPath C: GPS Arena Geofencing
Implement the 4-corner arena calibration walk to test automatic marker progression and hands-free calling in the ring (Phase 4).
Ready to BeginPath D: Competitions & BD Qualifiers
Implement BD registration number lookup, qualification progress tracker dials, and multi-platform upcoming qualifier show radar (Phase 7).
Ready to Begin9. Community Feedback & Feature Suggestions
Dressage Coach is being built for the riders, trainers, and judges who live and breathe the sport. Whether you have thoughts on our 6 planned capability modules, ideas for practical mounted workflows, or feature requests that would transform your daily schooling, we invite you to share them below.
Thank You for Shaping Dressage Coach!
Your suggestion has been anonymously transmitted to Neil Smyth and the product development backlog. Community insight from active riders, judges, and trainers is the heartbeat of this project.