Less photo clutter. More keepers.
A photo-curation project using quick comparisons and local processing to help you decide what is worth keeping.
Explore how it works ↓Explore the project
Open the design and demonstrations, then follow the references for more detail.
The design, in more detail
Definition
An offline-first React Native / Expo mobile app that eliminates camera-roll clutter through on-device perceptual hashing (pHash) and gamified 20-photo Battle Royale elimination decks.
The problem
Mobile users hoard tens of thousands of duplicate and burst photos, filling cloud storage and creating decision fatigue. Existing cleanup apps require uploading private photos to remote cloud servers or demand tedious individual swipes.
The approach
SwipeSweep runs 100% locally on-device. It clusters visually similar images using fast perceptual hashing (pHash) and stages them into finite 20-photo decks. Users play a rapid "Battle Royale" head-to-head shootout to select the best shot, automatically staging the rest for trash review with zero cloud exposure.
How it works
- On-Device Perceptual Hashing: Calculates 64-bit pHash signatures for photos locally to detect duplicate and burst shots with zero cloud uploads.
- Finite 20-Photo Decks: Eliminates infinite-scrolling exhaustion by chunking photos into bite-sized, gamified cleaning sessions.
- Battle Royale Shootout: Presents similar burst shots head-to-head; the user taps the single best shot while the rest are queued for deletion.
- Staged Trash Review: Queues rejected photos in a non-destructive staging tray before requesting system deletion confirmation.
- Zero-Tracking Privacy: Requires zero user accounts, collects zero telemetry, and performs zero remote network requests.
Project notes
- Platform
- React Native · Expo
- Image Clustering
- Local pHash (Hamming)
- Network Requests
- 0 (100% Offline)
These are the project’s documented design notes. Consult the linked implementation and its version before relying on a specific capability.
Development history & next steps
Algorithmic Prototype
Implemented Hamming distance clustering on local perceptual hashes in JavaScript.
Battle Royale UI Design
Engineered head-to-head decision game loop and finite deck progression UX.
Mobile App Build
Packaged Expo application with instant album scanning and non-destructive trash staging.
What comes next
Adding support for local video clip compression and automated duplicate screenshot detection.
Source material & related links
Follow the documentation, repositories, and related sites behind this project.
React Native, Expo, and TypeScript codebase with custom on-device image hash routines.
Topics: Mobile · React Native · Expo · TypeScript · Privacy · Computer Vision · pHash