Lingua Motus โœจ๐ŸคŸ

March 5, 2026 ยท View on GitHub

An on-device ASL fingerspelling coach โ€” not a grader.

Lingua Motus (โ€œlanguage of motionโ€ in Latin) is a Swift Playgrounds app that helps beginners practice ASL fingerspelling with real-time, supportive feedback.
Instead of giving a cold correct/incorrect, it tries to explain what to fix โ€” curl/straighten, touch/separate, rotate/orient โ€” so learning feels human, encouraging, and progress-driven.

โ€œSimple can be harder than complexโ€ฆโ€ โ€” Steve Jobs


๐Ÿ–ผ๏ธ Screenshots

HomeLessonSplashCustom Fingerspelling
HomeLessonSplashCustom Fingerspelling

๐ŸŽฅ Demo Video: Coming soon


๐ŸŽฏ The problem

A lot of ASL apps stop at recognition:

  • โœ… โ€œCorrectโ€
  • โŒ โ€œWrongโ€

But thatโ€™s not how humans learn. Beginners need direction, not judgment.

Lingua Motus is designed as a coach:

  1. Detect the hand pose live
  2. Reduce jitter + unfair snap judgments
  3. Generate actionable corrective guidance that tells you what to do next

๐ŸŒŸ What makes it different

๐Ÿง  Coach-like corrective feedback (not pass/fail)

When a sign is off, the app tries to surface a high-level action you can actually apply:

  • Curl / Straighten
  • Touch / Separate
  • Rotate / Orient

To make it intuitive, feedback is visualized using SF Symbol arrows placed near the relevant joint(s), so users learn what to move โ€” not just what they got wrong.


๐Ÿ‘ป Ghost Hand overlay (visual guidance that feels natural)

A toggleable ghost-hand reference overlay appears directly over the camera preview to guide beginners in real time.

  • โœ… Cleanly masked overlay
  • โœ… Controlled by app state
  • โœ… Designed to feel โ€œbuilt-inโ€, not patched on

๐ŸŽ‰ Custom fingerspelling practice (practice what you actually use)

Users can practice their own words/phrases, not random drills.
The flow ends with a satisfying completion moment (yes โ€” confetti โœจ) to keep learning motivating.


๐Ÿซณ Stability filtering (fair to shaky hands)

Beginners donโ€™t hold perfect poses.
The pipeline smooths jitter and waits for more consistent frames before surfacing strong corrections โ€” reducing frustration and false negatives.


๐Ÿ“ฑ Responsive UI (iPhone + iPad)

Designed to adapt across device sizes and orientations, including iPad landscape.


โœ… Key features

  • Real-time on-device recognition

    • Vision hand landmarks in real time
    • Core ML letter + number classifiers (bundled .mlmodelc resources)
  • Corrective hint generation

    • Geometric checks + rule-based hinting for actionable feedback
  • Ghost Hand overlay

    • Masked reference overlay on top of the live camera preview
  • Custom practice flow

    • Fingerspell user-entered words/phrases + completion moment

๐Ÿงฉ Tech stack

  • SwiftUI โ€” UI, navigation, state-driven overlays
  • AVFoundation โ€” camera pipeline
  • Vision โ€” hand pose landmarks + masking
  • Core ML โ€” letters & numbers classification
  • SIMD / vector math โ€” fast geometric checks for hinting
  • JSON resources โ€” feedback + error rules
    • Resources/Feedback.JSON
    • Resources/ErrorChecks.JSON

๐Ÿ—๏ธ Project structure (high-level)

  • MyApp.swift โ€” entry point, injects shared view models
  • MainAppScreen.swift โ€” routes onboarding/loading/home based on app state
  • Views/CameraView.swift โ€” camera preview + ghost hand + feedback overlays
  • Models/CameraViewModel.swift + ML helpers โ€” capture โ†’ landmarks โ†’ features โ†’ prediction โ†’ feedback
  • MLModel/ โ€” compiled Core ML models (letter_classifier.mlmodelc, number_classifier.mlmodelc)

โœ… Requirements

  • iOS 18.1+ (configured in Package.swift)
  • Camera permission (requested with an explicit purpose string)

โ–ถ๏ธ How to run

  1. Open the .swiftpm project in Swift Playgrounds
  2. Run on iPhone/iPad (or supported simulator) and grant camera permission
  3. Start a lesson and practice

Option B โ€” Xcode

  1. Open the .swiftpm package in Xcode
  2. Select a real device (best for camera + performance)
  3. Build & Run

๐Ÿ”’ Privacy

All recognition and analysis is fully on-device.
No video is recorded or saved.


๐Ÿ™Œ Credits

  • Confetti effect adapted from JCโ€™s tutorial:
    โ€œSwiftUI Tutorials: Designing a Dynamic Confetti Effectโ€ (May 8, 2024)

๐Ÿค– AI tooling disclosure

AI tools were used as assistants for:

  • writing refinement
  • design exploration
  • development support (debugging/refactoring/math organization)

All outputs were reviewed, tested, and integrated manually.


๐Ÿ‘ค Author

Youssef Ashraf


๐Ÿ“„ License

Apache-2.0