Master Plan & Technical Specification

Dressage Coach

An elite mobile training system uniting high-precision BΓ©zier arena geometry, predictive lookahead voice calling, and equine biomechanics stride calibration.

Architecture: 8 Pillars
Official BD Tests: 12 Built
App Screens: 8 Operational
Test Suite: 20/20 Passing
Brand Identity: Golden Ratio Harmony
Official Dressage Coach App Icon

Official App Icon

Golden Ratio Harmony

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.

The Three Foundational Disciplines

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 App Icon

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.

Android: mipmap-xxxhdpi (192x192) iOS: AppIcon.appiconset (1024x1024) Web: favicon & maskables

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
πŸ” Tap to Zoom
Screen 01

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
lib/screens/dashboard_screen.dart
Official Test Library
πŸ” Tap to Zoom
Screen 02

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
lib/screens/test_library_screen.dart
Arena Test Player & Audio Caller
πŸ” Tap to Zoom
Screen 03

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
lib/screens/test_player_screen.dart
Custom Test Builder
πŸ” Tap to Zoom
Screen 04

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
lib/screens/test_builder_screen.dart
Movement Figures Canvas
πŸ” Tap to Zoom
Screen 05

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
lib/screens/arena_canvas_screen.dart
Horse Biomechanics Profiles
πŸ” Tap to Zoom
Screen 06

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
lib/screens/horse_management_screen.dart
Training Ride Journal
πŸ” Tap to Zoom
Screen 07

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
lib/screens/journal_screen.dart
App Settings & Sunlight Mode
πŸ” Tap to Zoom
Screen 08

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)
lib/screens/settings_screen.dart

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:

Kinematic Timing Equations

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 Begin

Path 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 Begin

Path 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 Begin

Path D: Competitions & BD Qualifiers

Implement BD registration number lookup, qualification progress tracker dials, and multi-platform upcoming qualifier show radar (Phase 7).

Ready to Begin

9. 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.

πŸ›‘οΈ

100% Anonymous & GDPR-Compliant

We respect your privacy. No names, email addresses, IP addresses, or tracking cookies are collected or stored. Your ideas go directly to the development backlog without any identifying personal data.

πŸ’‘ Suggest a Feature