Inspiration
We noticed how often sensitive information: faces, IDs, license plates, documents, gets shared online without proper redaction. Most tools today are clunky, manual, or require advanced editing skills. We wanted something instant, intuitive, and privacy-first.
What it does
Obscura automatically detects sensitive regions in an image and lets users blur or censor them with a single tap. You stay in control: choose what to hide, what to reveal, and export a clean, privacy-safe version of your image.
How we built it
- React Native app for cross-platform support (mobile + web).
- Expo + Skia for rendering, overlays, and blur effects.
- FastAPI backend powered by computer vision models for object detection.
- Simple UI that balances usability with strong privacy defaults.
Challenges we ran into
- Attempted to integrate diffusion model to generate image to replace censored areas to minimise impact of censoring, but the latency was too high for satisfactory UX.
- Attempted to train a one size fits all model, but the results were not satisfactory
Accomplishments that we're proud of
- Built a working end-to-end pipeline in a short time: pick → analyze → redact → download.
- Designed an interface that feels lightweight but powerful.
- Learned to bridge creative UX with technical efficiency.
What we learned
- Skia is a game-changer for fast image rendering and manipulation in React Native.
- FastAPI as a backend allows for direct model integration and fast-paced development especially for MVPs
- Small UI details (like tap targets and confirmation modals) make a huge difference in user trust. -Privacy isn’t just about algorithms, it’s also about giving users control and confidence.
What's next for Obscura
- Support for video redaction (faces, license plates, screens).
- More redaction styles (pixelation, overlays, custom labels, diffusion generation).
- Batch processing and automation for professionals (journalists, lawyers).
Built With
- expo.io
- fastpi
- python
- react-native
- skia
Log in or sign up for Devpost to join the conversation.