WEB PRODUCT · FLEXIBILITY & MOBILITY

FULL STRETCH

An interactive 3D flexibility and mobility tracker that connects a body region to a guided session, then makes recorded consistency visible over time.

React · TypeScript · Three.js · React Three Fiber · Vitest · Cloudflare

Full Stretch dashboard showing the front-facing anatomical map with Quadriceps selected, today's Daily 10 program, and weekly stretching summary
Full Stretch Supine Hamstring Stretch with a selected posterior body region, setup and hold diagrams, side and set controls, and ready 30-second timer
Region selection, visual guidance, and explicit hold steps in one session.

PROJECT SNAPSHOT

From a body region to a guided session

Type
Interactive flexibility and mobility web application
Status
Released independent product · v1.0.0
Technologies
React, TypeScript, Vite, Three.js, React Three Fiber, Drei, Vitest, Cloudflare Workers Static Assets
  • Interactive front/back anatomy with equivalent text region controls
  • Targeted stretches and Quick 5 / Daily 10 / Full 20 routines
  • Persistent hold timers with explicit side and set transitions
  • Dynamic warm-ups with timed movements and manual rep confirmation
  • Weekly schedules, local history, coverage, and consistency milestones

The challenge

A generic exercise list or standalone timer leaves the user to connect a body region to a session and remember what they have included recently. I wanted a fast way to choose an area, understand the movement, and see the pattern of recorded practice.

The product response

Full Stretch starts from an anatomical region or a ready-made routine. Static stretching combines setup and hold diagrams, a timer, and explicit side and set steps. Mobility offers a separate sequence of dynamic movements with timed steps and user-confirmed repetitions.

Anatomy as interaction

The front/back Three.js map connects region selection to the matching stretch. Today and Coverage views derive their colors from recorded activity. Equivalent text controls offer another way to choose every region, and the anatomy scene loads separately from the main application.

A timer that survives interruption

Timestamp-based session state reconciles pauses, elapsed time, and reloads. Finishing a hold does not automatically start the next side or set: the user explicitly advances. Flexibility and Mobility have distinct activity engines behind one resumable session slot, with validation that prevents duplicate results.

Consistency with context

Weekly schedule snapshots preserve the plan used for each week. Completed sessions drive coverage, Complete Weeks, streaks, and milestones. Missing historical schedules are not invented, and warm-up activity stays separate from static stretch coverage.

Honest feedback

Coverage describes recorded frequency, not anatomical health or measured flexibility. Baseline comparisons reflect the user's own self-reported responses. The interface keeps those assessments separate from activity history and makes no clinical or injury-prevention claims.

A companion with its own architecture

Full Stretch complements Full Body as a separate product. It uses validated, versioned browser storage for profile, active session, history, and weekly plans. No account is required, and there is no shared fitness backend or automatic data exchange between the two apps. Clearing site storage removes local records.

Release and validation

The v1.0.0 release passed 285 automated tests, a production build, type checking, and live HTTPS workflow checks. Responsive checks reached 320 pixels. The release also includes keyboard-accessible controls, native dialogs, and reduced-motion handling; a formal accessibility certification is not claimed.