- 📱 Relative Location of Two Smartphones
SeekMate – Hide and Seek game based on relative location of 2 phones connected via UWB technology.
Utilizes Ultra-Wideband (UWB) technology to create a turn-based mobile game of Hide and Seek on Android. Seekers receive hints to locate the hider based on UWB proximity and direction.
- Develop an Android app capable of measuring the relative positions of two smartphones.
- Analyze mutual location data, including accuracy measurements.
To provide a visual understanding of the app's interface and functionalities, we have compiled a collection of screenshots in a PDF document. You can access it using the link below:
🔗 View Application Manual (PDF)
- 📱 Relative Location Recording: Real-time measurement of relative positions between paired devices via UWB
- 🔗 Pairing UWB Phones via QR Code: Device pairing for improved convenience
- 🎯 360° Directional Arrow: Visual arrow pointing to the other device, dynamically updating within 360 degrees
- 📏 Accuracy Metrics: Display the location measurements.
- ☁️ Cloud Integration: Synchronize data with cloud storage solutions.
The project uses the following technologies:
- Kotlin: Primary programming language for Android development.
- Supabase: Backend-as-a-Service for authentication and data storage.
- Kotlin Supabase Client Supabase's Kotlin Android library
- Android UWB Library: A library for Ultra-Wideband (UWB) proximity sensing and location tracking.
graph TD;
A[Start Game Screen] --> B[Generate QR Code];
B --> C[Player 2 Scans QR Code];
C --> D[Game Created in Supabase];
D --> E[Background UWB Connection Established];
E --> F[Game Loop Starts];
F --> G{Gameplay};
G -->|Hider Plays Minigame for Points| H[Points Spent on Hints];
G -->|Seeker Searches Hider| I[Seeker Buys Hints];
G --> J{End Condition};
J -->|Seeker Finds Hider| K[Seeker Wins];
J -->|Time Runs Out, Hider Stays Hidden| Z[Hider Wins];
K --> M[End Game Screen with Statistics of Each Player];
Z --> M
graph TD;
A[User Onboarding/Login] --> B[Email Verification];
B --> C[Demo Page Access];
C --> D{Device Role Selection};
D -->|Controller| E[Controlee Pairing];
D -->|Controlee| E;
E --> F[Start UWB Data Access];
F --> G[Retrieve Data: Distance & Angle];
- OS: Android 15
- AGP: Android Gradle plugin 8.8.0
- Hardware: Devices with Ultra-Wideband (UWB) capability
- Network: Access to internet for Supabase functionalities