Velum
Your library. Your device. Nothing else.
- Year
- 2026
- Duration
- Built in 2 weeks · in App Store review
- Team
- Mahere & Caner
- Status
- Coming Soon
Scope, speed, and what we delivered.
- Categories, one tap to hideKategorien, ein Tipp zum Ausblenden
- 6
- Per photo on the Neural EnginePro Foto auf der Neural Engine
- ~20 ms
- Images that leave the phoneBilder, die das Handy verlassen
- 0
- MahereMahere 70%
- CanerCaner 30%
The whole design is by Caner, from the app interface to the silk-veil icon and logo. Code and models: Mahere.Das gesamte Design stammt von Caner, von der App-Oberfläche bis zu Icon und Logo mit dem Seidenschleier. Code und Modelle: Mahere.
An iPhone app with machine learning that runs entirely on the device: our own trained models, a native Swift module, background processing, and a one-time in-app purchase.Eine iPhone-App mit Machine Learning, das komplett auf dem Gerät läuft: selbst trainierte Modelle, ein natives Swift-Modul, Verarbeitung im Hintergrund und ein Einmalkauf in der App.
What is Velum?
Velum scans the photo library on the iPhone for the photos not everyone should see: nudity, cannabis, other drugs, violence, creepy content, and alcohol and party shots. Every hit carries a level (High, Medium, or Low), and for each category the user decides which level counts. One tap moves the hits into the Photos app's Hidden album, which iOS protects with Face ID: no second vault, no copies, no extra password to forget. If wanted, Velum checks new photos and videos at night while the phone charges and reports back with a neutral notification that reveals nothing on the lock screen. Nudity is free; Velum Pro unlocks every other category as a one-time purchase.
The problem we set out to solve.
A scanner for the most private photos on a phone only makes sense if it never uploads them. That rules out cloud vision APIs: the models have to ship inside the app and still be fast enough to go through tens of thousands of photos in minutes. Detection had to be sharp where it matters and calm everywhere else, so statues, swimwear, herbs, kitchen knives, and memes do not turn up as hits. And iOS is strict about background work, so a long scan has to survive the user leaving the app.
How we built it.
An Expo app with a native Swift module. SigLIP 2 computes one embedding per photo through Core ML on the Neural Engine, and every category is a small linear head on top; nudity also draws on a dedicated NSFW model. The heads come from our own training pipeline: images collected from Wikimedia Commons and Openverse with source and licence per file, reviewed cluster by cluster, augmented with crops, JPEG artefacts, blur, screenshot frames, and meme bars, and split by near-duplicate groups so copies never land on both sides of the test. Look-alikes such as herbs, cigarettes, and statues are trained as hard negatives. The index lives in SQLite, so every photo is checked once and later scans only pick up new ones. Because the heads are small JSON files in the JavaScript bundle, a retrained model reaches every phone through EAS Update without a new build, and the app rescores its stored embeddings at the next launch. Pro is a non-consumable StoreKit purchase without any third-party billing service.
See it in action.
Under the hood.
- Platform
- iOS (iPhone), Expo SDK 57, Expo Router
- Native
- Swift module: Core ML, Photos, SQLite index
- Models
- SigLIP 2 with linear heads, Marqo NSFW
- Training
- Own pipeline: Wikimedia Commons, Openverse, cluster review
- Background
- iOS background tasks, night scan while charging
- Purchases
- StoreKit one-time purchase, no subscription
- Delivery
- EAS Build, TestFlight, models over the air
- Website
- velum.fluxera.us, static on Cloudflare Workers
What we paid attention to.
- 01
No image leaves the phone
Both models ship inside the app, the index is a local database, and Velum works in airplane mode. There is no account, no analytics, and no server that could ever see a photo.
- 02
Hide, not a vault
Velum keeps no copies. Hits move into the Hidden album that iOS already protects with Face ID and come back with one tap in the Photos app.
- 03
Better models without a new build
A category head is a few kilobytes of JSON. A retrained head reaches every phone over the air, and the app rescores from stored embeddings instead of scanning the library again.
Where we are today.
Velum 1.0 is submitted to the App Store. The TestFlight builds of 1.0.1 add video scanning, a scan that keeps running after the app is minimised, and the Pro category "Alcohol & Party". The website with privacy policy, support, and terms is live at velum.fluxera.us in German and English. Velum Pro costs a one-time €9.99.