Inspiration
Pledgefit started with a simple question: how can movement feel more motivating when you share it? We wanted to combine personal fitness goals, friendly accountability, and a meaningful consequence for skipping a commitment. The result is a social pledge app where friends set a walking challenge together, put a simulated amount on the line, and work toward earning it back.
We also wanted to address the obvious loophole: activity challenges are easy to fake. That led us to explore whether a phone's motion sensors could recognize a real walk, and eventually a person's individual walking signature, without tracking their location.
What it does
Pledgefit lets people create solo or group walking challenges, invite friends, set a pledge, track completed runs, and settle the challenge based on progress. The app supports account-backed party challenges, invite codes, shared standings, goal replacement votes, and simulated payouts.
For activity verification, Pledgefit uses an on-device gait model. The app collects accelerometer, gyroscope, and pedometer data while the phone is in a pocket, identifies walking motion, and compares it with an owner gait profile. Users can optionally calibrate a personal profile through two four-minute walks. The model runs locally, works without GPS or internet, and does not upload raw gait data.
How we built it
We built the mobile app with Expo, React Native, and TypeScript. Supabase backs the challenge and account flow, with server-side RPC actions for creating challenges, joining groups, recording progress, and settlement logic.
For gait verification, we collected labeled phone-sensor walking sessions and trained a compact temporal CNN with engineered motion features. The model processes five-second accelerometer and gyroscope windows, learns a 64-dimensional gait embedding, and checks both:
- Whether the motion looks like natural walking.
- Whether it matches the active owner profile.
We exported the model to ONNX and integrated ONNX Runtime directly into the Android app. The profile is stored locally with AsyncStorage, and optional calibration uses robust median/MAD distance scoring over the user's walking embeddings.
Challenges we ran into
Getting reliable sensor data was much harder than simply detecting step counts. Sitting down and moving legs, walking in place, shaking the phone, and changing pocket orientation can all produce signals that look superficially similar to walking.
We also ran into mobile engineering challenges:
- Android sensor sampling initially arrived too slowly for our 50 Hz model.
- Expo Go could not run the native ONNX dependency.
- Windows CMake builds hit filename-length limits.
- Android Studio's bundled JDK caused native build issues with the React Native toolchain.
- Merging the frontend and gait branches temporarily disconnected the gait UI even though the model code still existed.
We solved these with high-rate sensor permissions, a native Android build, a compact model, a short-path build workflow, JDK compatibility fixes, and a careful merge review.
Accomplishments that we're proud of
We are proud that Pledgefit is more than a mockup. It has a working mobile frontend, a real challenge flow, backend-backed shared state, and an actual on-device gait model.
We are especially proud of:
- Building a compact, roughly 25K-parameter gait model suitable for a phone.
- Running gait inference fully offline without GPS.
- Separating walking detection from owner-gait matching.
- Supporting optional personal calibration rather than requiring a pre-trained owner.
- Designing the model to reject obvious non-walking signals such as stationary motion and phone shaking.
- Recovering the gait functionality after a difficult frontend/backend merge.
- Creating a product story that connects accountability, movement, social motivation, and privacy.
What we learned
We learned that gait authentication is not a single-feature problem. Step cadence alone is weak; useful signals come from relationships among acceleration, rotational motion, periodic heel-strike patterns, vibration, timing variability, and learned temporal features.
We also learned that mobile ML is as much a deployment problem as a modeling problem. A good model is not useful unless sensor permissions, sampling frequency, native dependencies, battery behavior, device builds, and privacy constraints all work together.
Finally, we learned that product trust matters. If an app claims to verify activity, users need to understand what it checks, what it stores, and what it can't guarantee.
What's next for Pledgefit
Next, we want to expand the gait dataset across more people, devices, pocket positions, walking speeds, shoes, and environments. That will let us better measure false accepts and false rejects, tune runtime enrollment, and improve spoofing resistance.
On the product side, we want to:
- Connect verified gait results to richer backend activity records.
- Add clearer calibration guidance and profile quality feedback.
- Improve distance and duration validation instead of treating a short verified walk as a full challenge run.
- Add notifications, challenge reminders, and group progress updates.
- Build a more complete solo challenge and charity-payout experience.
- Support secure production deployment rather than local/demo infrastructure.
Pledgefit's long-term goal is to make keeping a promise to yourself feel social, motivating, and genuinely verifiable without turning fitness into surveillance.
Built With
- android
- android-studio
- asyncstorage
- cmake
- expo-go
- expo.io
- onnx
- python
- react-native
- rpc
- supabase
- typescript

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