# ArtLegend Roadmap --- ## Phase 0 — Foundation (current) **Goal:** Hybrid architecture running end-to-end. Compose hub launches LibGDX game screen with stylus data flowing. ### Milestones - [x] LibGDX scaffold (core + android modules) - [x] `shared/` module with `ModuleType` enum - [x] `GameHost` routing by `ModuleType` - [x] `StylusInputBridge` (AtomicReference, thread-safe) - [x] `StylusFrame` data class (x, y, pressure, tiltRad, orientRad, isStylus) - [x] `MainActivity` + Compose navigation (Hub → Detail → Game) - [x] `GameActivity` reads `ModuleType` from Intent, posts stylus frames - [x] `LineCorridorScreen` renders guided corridor + real-time stroke - [x] Score calculation for Line Corridor (straightness + pressure consistency) - [x] Score displayed on return to ModuleDetail (ScoreCard) --- ## Phase 1 — Line Corridor MVP **Goal:** Shippable first module. Players can train, score, and see improvement over sessions. ### Milestones - [ ] Corridor generation (random angle, configurable width) - [ ] Stroke capture and rendering (LibGDX ShapeRenderer) - [ ] Straightness score algorithm (RMS deviation from ideal line) - [ ] Pressure consistency score (variance from target pressure profile) - [ ] Difficulty progression (narrowing corridor, longer strokes) - [ ] Session summary screen (score + streak) - [ ] Local persistence (Room or DataStore) for scores per session - [ ] Progress screen populated with real data (last 7 sessions graph) --- ## Phase 2 — Pressure Ramp Module **Goal:** Second module ships. Shared infrastructure for module scoring is solid. ### Milestones - [ ] Pressure Ramp screen: draw a stroke matching a target pressure curve - [ ] Pressure curve rendering (target vs actual overlay) - [ ] DTW (Dynamic Time Warping) score for pressure curve matching - [ ] Unified `ModuleScore` data model shared across modules - [ ] Difficulty tiers (linear ramp → S-curve → arbitrary profile) --- ## Phase 3 — Curve Sculptor + Vector Snap **Goal:** Full 4-module training suite. App is content-complete for v1.0. ### Milestones - [ ] Curve Sculptor: hit bezier control points with stylus - [ ] Vector Snap: tap precise endpoints within tolerance radius - [ ] Per-module difficulty levels stored in settings - [ ] Global XP system across all modules --- ## Phase 4 — Monetization Ready **Goal:** In-app purchase infrastructure. Free tier vs paid modules enforced. ### Milestones - [ ] Google Play Billing integration - [ ] Entitlement check before launching `GameActivity` - [ ] "Line Corridor" free; others gated behind Skill Pack purchase - [ ] Pro subscription tier (all modules + cloud sync) - [ ] Settings screen: manage subscription, restore purchases --- ## Phase 5 — Cloud + Social **Goal:** Cross-device sync and community features. ### Milestones - [ ] Firebase Auth (Google sign-in) - [ ] Firestore sync for scores and progress - [ ] Global leaderboard per module - [ ] Weekly challenge mode (fixed seed corridor, global rank) - [ ] Share score card (image export) --- ## Per-Module Milestones Detail ### Line Corridor | Milestone | Description | |-----------|-------------| | Skeleton | Screen renders, bridge connected | | Corridor | Guided corridor drawn, stroke captured | | Score | Straightness + pressure score calculated | | Persist | Scores saved locally | | Polish | Animations, streak counter, SFX | ### Pressure Ramp | Milestone | Description | |-----------|-------------| | Skeleton | Screen renders | | Curve target | Target pressure profile displayed | | Score | DTW score vs target | | Difficulty | 3 difficulty tiers | ### Curve Sculptor | Milestone | Description | |-----------|-------------| | Skeleton | Screen renders | | Bezier display | Target bezier curve shown | | Stroke eval | How close did the stroke follow the curve? | | Control points | Optional control point hints | ### Vector Snap | Milestone | Description | |-----------|-------------| | Skeleton | Screen renders | | Target points | Random endpoint targets displayed | | Hit detection | Distance from target scored | | Speed bonus | Faster accurate taps = higher score |