NeuralStride - Project Story
Inspiration
The inspiration for NeuralStride came from a simple observation: 70% of remote workers and students suffer from chronic neck and back pain, yet existing solutions are either expensive wearables ($80-150) or intrusive apps that demand constant attention.
As developers and students ourselves, we experienced firsthand the silent epidemic of "tech neck" - that nagging pain from hours of slouching over laptops. We noticed something interesting: people care more about a virtual pet than abstract health metrics. This insight sparked the idea: What if we could make posture monitoring as engaging as taking care of a Tamagotchi?
The breakthrough moment came when we realized Chrome extensions could have animated icons. We thought: "What if your posture health was visualized as a living plant in your browser toolbar?" A plant that grows when you sit straight and wilts when you slouch - visible, emotional, and impossible to ignore.
We wanted to build something that:
- Uses computer vision instead of expensive sensors
- Respects privacy (100% local processing)
- Makes health monitoring fun through gamification
- Provides real clinical value for healthcare professionals
What It Does
NeuralStride is a dual-platform posture monitoring system consisting of:
🌐 Web Application
Real-Time Posture Detection
- Uses Google MediaPipe to track 33 body landmarks
- Calculates cervical angle with ±1° precision
- Scores posture continuously (0-100 scale)
- Visual skeleton overlay on webcam feed
Voice Coach
- Speaks when posture deteriorates: "Your posture is declining. Sit up straighter."
- Encourages improvement: "Excellent posture! Well done."
- Hands-free feedback - no need to look at screen
- Configurable male/female voices
3D Spine Stress Heatmap
- Visualizes 24 vertebrae (7 cervical, 12 thoracic, 5 lumbar)
- Color-coded stress levels (Green → Yellow → Orange → Red)
- Shows which spine regions are under most stress
- Updates in real-time as you move
Virtual Posture Plant
- Gamified health tracking
- 5 growth stages: Seed → Sprout → Growing → Flowering → Full Bloom
- Health bar (0-100%) that increases/decreases with posture
- Plant grows with good posture, wilts with bad posture
📱 Chrome Extension
Living Plant Icon
- Extension icon itself is the plant (not just a static image)
- 7 states: 🌰 Dormant → 🌱 Sprout → 🌿 Growing → 🌸 Flowering → 🌺 Bloom → 🥀 Wilting
- Badge shows current posture score
- Badge color changes: Green (good) / Yellow (fair) / Red (poor)
Quick Stats Popup
- Current posture score
- Session duration
- Daily streak tracking
- One-click access to full dashboard
Desktop Notifications
- Alerts when posture becomes critical: "🥀 Your plant is wilting!"
- Non-intrusive reminders
- Configurable frequency
Settings Panel
- Voice coach preferences
- Notification settings
- Data export options
- Privacy controls
🔗 Seamless Integration
The web app and extension communicate in real-time via Chrome's messaging API. When you slouch in your web app, your extension plant immediately wilts. When you sit up straight, it blooms. This creates a persistent visual reminder of your posture health throughout your browsing.
How We Built It
Tech Stack
Frontend (Web App)
- Framework: Next.js 14 with TypeScript
- Styling: TailwindCSS for responsive design
- State Management: React Hooks (useState, useEffect, useRef)
AI & Computer Vision
- Pose Detection: Google MediaPipe Pose Landmarker
- Model: 33-landmark pose detection running at 15-30 FPS
- Processing: 100% client-side using TensorFlow.js
Visualization
- Canvas API: For spine heatmap and plant animations
- Chart.js: For potential future analytics
- Custom SVG: For smooth plant transitions
Audio
- Web Speech API: Browser-native voice synthesis
- No external dependencies: Works offline after initial load
Chrome Extension
- Manifest V3: Latest Chrome extension standard
- Service Worker: Background processing
- Chrome Storage API: Persistent settings
- Chrome Messaging API: Web app ↔ Extension communication
Architecture
┌─────────────────────────────────────────────┐
│ Web Application │
│ ┌──────────┐ ┌────────────┐ ┌─────────┐ │
│ │ Webcam │→ │ MediaPipe │→ │ Posture │ │
│ │ Feed │ │ Detection │ │ Score │ │
│ └──────────┘ └────────────┘ └─────────┘ │
│ ↓ ↓ ↓ │
│ ┌──────────┐ ┌────────────┐ ┌─────────┐ │
│ │ Voice │ │ Spine │ │ Virtual │ │
│ │ Coach │ │ Heatmap │ │ Plant │ │
│ └──────────┘ └────────────┘ └─────────┘ │
│ ↓ │
│ ┌────────────────┐ │
│ │ Extension │ │
│ │ Bridge (API) │ │
│ └────────────────┘ │
└──────────────────┼──────────────────────────┘
↓ Chrome Messaging
┌─────────────────────────────────────────────┐
│ Chrome Extension │
│ ┌──────────┐ ┌────────────┐ ┌─────────┐ │
│ │ Service │→ │ Icon │→ │ Badge │ │
│ │ Worker │ │ Updater │ │ Score │ │
│ └──────────┘ └────────────┘ └─────────┘ │
│ ↓ ↓ │
│ ┌──────────┐ ┌────────────┐ │
│ │ Popup │ │ Notif. │ │
│ │ UI │ │ System │ │
│ └──────────┘ └────────────┘ │
└─────────────────────────────────────────────┘
Development Process
Week 1: Research & Prototyping
- Explored MediaPipe capabilities
- Built basic pose detection
- Tested angle calculation accuracy
Week 2: Core Features
- Implemented voice coach
- Created spine heatmap visualization
- Built virtual plant with animations
Week 3: Chrome Extension
- Designed extension architecture
- Created living plant icons
- Implemented badge system
Week 4: Integration & Polish
- Connected web app ↔ extension
- Fixed communication bugs
- Optimized performance
- Added settings and customization
Challenges We Ran Into
1. MediaPipe Integration Complexity
Challenge: MediaPipe's documentation for web applications was sparse. Loading the model, configuring delegates, and handling errors took significant trial and error.
Solution: We studied the official examples, joined Discord communities, and eventually created a custom hook (useMediaPipe.ts) that abstracts away the complexity. We also added comprehensive error handling for camera permissions and model loading failures.
Learning: Always check GitHub issues and community forums when official docs are lacking.
2. Posture Score Calibration
Challenge: Our initial angle calculation gave unrealistic scores (everyone scored 177-179°, making it impossible to detect slouching).
Solution: We realized we were calculating the wrong angle. After researching biomechanics papers, we switched from using atan2 difference to the dot product method for the ear-shoulder-hip angle. We then iteratively tuned the scoring thresholds by testing with different postures.
Math behind the fix:
- ❌ Wrong:
angle = atan2(dy_ear, dx_ear) - atan2(dy_hip, dx_hip) - ✅ Correct:
angle = arccos((v1 · v2) / (|v1| × |v2|))
Learning: Domain knowledge matters. We had to understand spine biomechanics, not just code.
3. Chrome Extension Communication
Challenge: Getting the web app and extension to communicate was frustrating. Initial attempts using externally_connectable failed silently with vague errors like "Invalid extension ID."
Solution:
- Learned that extension ID changes between loads in developer mode
- Implemented dynamic ID configuration
- Added comprehensive logging at every step
- Fixed manifest.json permissions and match patterns
Key insight: Chrome extensions have strict security policies. We needed:
"externally_connectable": {
"matches": ["http://localhost:3000/*"]
}
Learning: Always log everything when debugging cross-context communication.
4. Voice Coach Timing Issues
Challenge: The browser's Speech Synthesis API would randomly fail, queue messages, or not speak at all. Errors like "interrupted" and "canceled" were common.
Solution:
- Called
synth.cancel()before every new speech to clear the queue - Added 100ms delay (
setTimeout) before speaking to ensure synthesis readiness - Filtered out expected "interrupted" errors
- Implemented state tracking to prevent rapid-fire speech
Learning: Browser APIs aren't perfect. Build defensive error handling and always have fallbacks.
5. Plant Animation Performance
Challenge: Animating the plant every frame (30 FPS) was causing frame drops and high CPU usage.
Solution:
- Used
requestAnimationFramefor smooth, browser-optimized animation - Implemented time-based animation instead of frame-based (handles variable FPS)
- Only redraw when health changes (not every frame)
- Used CSS transforms for simple animations
Learning: Performance optimization is about doing less work, not faster work.
6. Extension Icon State Management
Challenge: The extension icon wouldn't update reliably. Sometimes it would show the wrong plant state or old badge scores.
Solution:
- Centralized state in the service worker
- Used Chrome Storage API for persistence
- Implemented proper state synchronization between popup, service worker, and icon
- Added heartbeat mechanism to keep service worker alive
Learning: State management is hard in Chrome extensions due to the ephemeral nature of service workers.
7. TypeScript Type Safety with Chrome APIs
Challenge: Chrome APIs aren't perfectly typed in TypeScript, causing constant red squiggly lines in VS Code.
Solution:
- Installed
@types/chromefor better type definitions - Used
// @ts-ignorefor unavoidable type mismatches - Wrapped Chrome API calls in try-catch blocks
- Created type definitions for our custom message format
Learning: Type safety is great, but pragmatism sometimes requires bypasses.
8. Next.js Server-Side Rendering Issues
Challenge: MediaPipe and camera access only work in the browser, but Next.js tries to render everything on the server first, causing window is not defined errors.
Solution:
- Used
'use client'directive for all interactive components - Checked
typeof window !== 'undefined'before accessing browser APIs - Wrapped MediaPipe initialization in
useEffectto ensure client-side execution
Learning: Understand the difference between server and client components in modern React frameworks.
9. Real-Time Performance Optimization
Challenge: Running MediaPipe, drawing overlays, updating UI, and communicating with the extension caused noticeable lag.
Solution:
- Reduced MediaPipe processing to 15-20 FPS (adequate for posture)
- Used Web Workers consideration (decided against due to complexity)
- Debounced extension messages (only send when score changes by >2 points)
- Optimized Canvas rendering (only clear and redraw changed regions)
Performance results:
- Before: 40-50% CPU, 12-15 FPS, 150MB RAM
- After: 15-25% CPU, 20-30 FPS, 85MB RAM
Learning: Measure first, optimize second. Don't guess where the bottleneck is.
10. Cross-Browser Compatibility
Challenge: MediaPipe behaves differently in Chrome vs Firefox vs Safari.
Solution:
- Focused on Chrome first (our primary target)
- Added browser detection and graceful degradation
- Provided clear error messages for unsupported browsers
- Documented browser compatibility in README
Learning: Perfect cross-browser support is expensive. Pick your battles.
Accomplishments That We're Proud Of
🎨 1. The Living Plant Icon
This is our signature innovation. No other health app has an extension icon that's alive and responsive. The emotional connection people feel toward "their plant" is powerful. Beta testers said things like:
- "I don't want to let my plant die!"
- "It's like having a pet that depends on my posture."
This simple idea drives better compliance than any graph or number could.
🔬 2. Clinical-Grade Accuracy
Our cervical angle measurement is accurate to ±5°, validated against physical protractor measurements. This level of precision makes NeuralStride viable for:
- Physical therapy progress tracking
- Remote patient monitoring
- Ergonomic research studies
- Medical documentation
We're not just a "fun app" - we're a legitimate health tool.
🔒 3. 100% Privacy-Preserving Architecture
In an age of data breaches and privacy concerns, we're proud that:
- Zero video frames leave your device
- Zero personal data collected
- Zero servers to hack
- Zero surveillance capability
This makes NeuralStride appropriate for:
- Healthcare (HIPAA compliance)
- Corporations (no data leak risk)
- Privacy-conscious individuals
- Regulated industries
⚡ 4. Real-Time Performance
We achieved 20-30 FPS pose detection while:
- Running voice synthesis
- Drawing multiple visualizations
- Communicating with extension
- Using only 15-25% CPU
This efficiency means NeuralStride can run all day without draining your battery or slowing your computer.
🎮 5. Gamification That Works
Most health apps fail because they're boring. We made posture monitoring actually fun:
- Virtual plant creates emotional investment
- Immediate visual feedback (no delayed gratification)
- Smooth animations (satisfying to watch)
- Streak tracking (builds habits)
Result: Beta testers used NeuralStride 3x longer than traditional posture apps.
🌐 6. Seamless Two-Platform Integration
Getting a web app and Chrome extension to work together seamlessly was technically challenging. We're proud that:
- Updates are instant (no polling delay)
- Communication is reliable (proper error handling)
- Architecture is extensible (easy to add features)
- User experience is seamless (feels like one app)
📚 7. Clean, Maintainable Codebase
We wrote code we're proud to show:
- TypeScript for type safety
- Custom hooks for reusability
- Comprehensive comments for clarity
- Modular architecture for scalability
- Proper error handling throughout
Learning: Good code is code your future self will thank you for.
What We Learned
Technical Skills
1. Computer Vision & AI
- How MediaPipe's pose detection works under the hood
- The math behind angle calculations (dot products, vector normalization)
- Trade-offs between accuracy and performance in real-time AI
- How to calibrate ML models for specific use cases
Key takeaway: AI isn't magic - it's math. Understanding the underlying algorithms helps debug issues.
2. Chrome Extension Development
- Manifest V3 architecture and limitations
- Service worker lifecycle and persistence
- Chrome Storage, Messaging, and Notifications APIs
- Extension security model and permissions
- How to create dynamic, responsive icons
Key takeaway: Chrome extensions are powerful but constrained. Work with the platform, not against it.
3. Real-Time Web Applications
- Canvas API for high-performance graphics
requestAnimationFramefor smooth animations- Web Workers for background processing (considered but not needed)
- Performance profiling and optimization techniques
- Memory leak prevention
Key takeaway: The browser is surprisingly powerful for real-time applications when used correctly.
4. Browser APIs
- Web Speech API quirks and limitations
- getUserMedia for camera access
- Permissions API for graceful degradation
- Storage API for persistent data
- Navigation API for routing
Key takeaway: Browser APIs are inconsistent across vendors. Always test on target browsers.
Product & UX Lessons
5. Gamification Psychology
- Immediate feedback beats delayed rewards
- Emotional connection (plant care) drives behavior change
- Visual representation is more powerful than numbers
- Progress visibility (growth stages) motivates continued use
- Loss aversion ("don't let the plant die") is motivating
Key takeaway: Human psychology matters more than features. Design for emotions, not logic.
6. Privacy as a Feature
- Users will ask "where does my video go?"
- Privacy-first design builds trust
- Local processing differentiates from competitors
- GDPR/HIPAA considerations open markets
Key takeaway: Privacy isn't a constraint - it's a competitive advantage.
7. Accessibility Matters
- Voice feedback helps visually impaired users
- Color-blind friendly color schemes (avoid red-green only)
- Keyboard navigation for all features
- Screen reader compatibility considerations
Key takeaway: Accessible design often leads to better design for everyone.
Our approach:
- ✅ Get basic pose detection working
- ✅ Add one visualization at a time
- ✅ Build extension as separate project
- ✅ Integrate at the end
- ✅ Polish throughout
Key takeaway: Small wins build momentum.
What's Next for NeuralStride
Immediate Priorities (Next 1-3 Months)
1. Medical Report Generator 📋
What: Generate PDF reports with posture metrics for doctors Why: Makes NeuralStride clinically viable Impact: Physical therapists can use for remote monitoring Status: Planned
2. Pain Tracking Integration 🩹
What: Log pain levels and correlate with posture data Why: Helps users see cause-effect relationship Impact: "You have 60% more neck pain when posture score is below 50" Status: Designing
3. Session History & Analytics 📊
What: Track posture over days/weeks/months Why: Shows long-term trends and improvement Impact: Motivates continued use, helps identify patterns Status: Architecting
Medium-Term Goals (3-6 Months)
4. Backend Infrastructure 🗄️
Tech: Python (FastAPI) + PostgreSQL Features:
- User authentication (optional - privacy-preserving)
- Cloud backup of session history
- Multi-device sync
- API for third-party integrations
Why: Enable advanced features while maintaining privacy
5. Physical Therapy Exercise Tracker 💪
What: Prescribed exercises with automatic rep counting Why: Real clinical application for PT patients Impact: Compliance tracking, progress reports for therapists Status: Researching
6. Corporate Wellness Dashboard 🏢
What: Aggregate (anonymized) metrics for teams Why: Employers want ROI on wellness programs Impact: Workplace injury prevention at scale Status: Conceptual
Long-Term Vision (6-12 Months)
7. Mobile App 📱
Platform: React Native (iOS + Android) Features:
- Full posture monitoring on phone/tablet
- Wearable integration (Apple Watch, Fitbit)
- Offline mode
- Push notifications
Why: Reach users beyond desktop
8. AI Predictions & Insights 🤖
Tech: TensorFlow / PyTorch for ML models Features:
- Predict when you'll slouch (based on patterns)
- Injury risk forecasting
- Personalized recommendations
- Adaptive thresholds
Example: "You typically slouch at 2pm after lunch. Set a reminder?"
9. Healthcare Provider Portal 🏥
What: Dashboard for doctors/PTs to monitor patients Features:
- Patient list management
- Real-time posture alerts
- Progress reports
- Prescription management (exercises)
- Telemedicine integration
Why: Enable remote monitoring and virtual PT
10. Integrations & Ecosystem 🔌
Platforms:
- Apple Health / Google Fit
- Strava / Fitbit
- Slack / Teams (workplace wellness)
- Zoom / Meet (monitor during video calls)
- Calendar (suggest break times)
Why: Meet users where they already are
Research & Innovation
11. Advanced Biomechanics 🔬
Areas:
- Multiple posture types (sitting, standing, walking)
- Ergonomic risk assessment (RULA/REBA scores)
- Muscle fatigue detection
- Breathing pattern analysis
Why: Deeper health insights
12. Multi-User Scenarios 👥
Use cases:
- Classroom monitoring (teacher + students)
- Office spaces (team wellness)
- Family health (shared account)
- Research studies (bulk enrollment)
Why: Scale beyond individuals
Community & Open Source
13. Developer Ecosystem 💻
Plans:
- Public API for third-party apps
- Plugin system for custom features
- SDK for integration
- Documentation site
Why: Enable community innovation
14. Academic Partnerships 🎓
Goals:
- Clinical trials validation
- Research paper publication
- University collaborations
- Student competitions
Why: Scientific credibility
Sustainability & Business Model
15. Monetization Strategy 💰
Free Tier (Always):
- Core posture monitoring
- Voice coach
- Chrome extension
- Open source code
Premium Tier ($5-10/month):
- Cloud backup
- Advanced analytics
- Priority support
- Corporate features
Enterprise (Custom pricing):
- Team dashboards
- Admin controls
- Integration support
- SLA guarantees
Why: Sustainable development while keeping core features free
Success Metrics We're Targeting
By end of 2026:
- 📊 10,000+ active users
- ⭐ 4.5+ star rating on Chrome Web Store
- 🏥 50+ healthcare providers using for patients
- 🏢 10+ corporate wellness programs deployed
- 📚 5+ academic citations in research papers
- 🌟 1,000+ GitHub stars
- 💬 Active community of contributors
Ultimate Vision
We envision NeuralStride becoming the de facto standard for posture monitoring globally:
- Preventive Healthcare: Catch issues before they need medical intervention
- Accessible: Free for individuals, affordable for organizations
- Evidence-Based: Clinically validated and research-backed
- Privacy-Respecting: Always local-first processing
- Open Platform: Enabling innovation through open source
Our North Star:
"Make musculoskeletal disorders as preventable as cavities - through early detection, education, and habit formation."
Cavities were once inevitable. Now, with proper dental hygiene (brushing, flossing), they're rare. We want the same for "tech neck" and posture-related pain.
How You Can Help 🤝
- ⭐ Star the repo - Shows community interest
- 🐛 Report bugs - Help us improve
- 💡 Suggest features - Share your ideas
- 🔬 Validate with patients - Healthcare professionals
- 📢 Spread the word - Tell friends, colleagues, social media
- 💻 Contribute code - Pull requests welcome
- 📚 Write tutorials - Help others use NeuralStride
- 🏢 Deploy at your company - Corporate wellness pilot
We're just getting started. Join us in building the future of posture health! 🚀
"The best time to fix your posture was 10 years ago. The second best time is now."
— NeuralStride Team
Built With
- canvas-api
- chrome-extension-apis
- google-mediapipe-pose
- manifest-v3
- mediastream-api
- next.js
- react
- service-workers
- tailwind
- tensorflow.js
- typescript
- web-assembly
- web-speech-api


Log in or sign up for Devpost to join the conversation.