Abstract
A local aesthetic photo studio that analyzes scenes, applies Lightroom-style develop controls, and emulates 30 cameras with film-stock color science — plus 40 grades and 20 creative signatures. Fully local Python + TypeScript/React pipeline; no cloud required.
Highlights
- —30 camera emulations with film-stock color science and 40 aesthetic grades
- —Scene analysis + Lightroom-style develop controls, fully local
- —Python processing backend with TypeScript/React/Vite frontend
README
View on GitHubauraforge
Local aesthetic photo studio — scene analysis, pro develop, 30 camera emulations with film-stock color science, 40 grades, 20 signatures.
chmod +x dev.sh
./dev.sh
| route | purpose |
|---|---|
/ | editor (Lightroom-style studio UI) |
/showcase | before/after look pairs |
/research | algorithm notes |
Deploy (Vercel + Railway)
- Web → Vercel (static SPA, see
vercel.json) - API → Railway or Docker (
Dockerfile,docker-compose.yml)
Full steps in DEPLOY.md.
# self-host API
docker compose up --build
Set VITE_API_BASE on Vercel to your public API URL.
Camera emulations
Pro cameras use a dedicated pipeline:
- Film stock curves — Portra, Ektar, CineStill, Velvia, Tri-X, Vision3, etc.
- Lens profiles — Zeiss, Summicron, cinema MTF falloff
- Structured grain — ISO-aware, shadow-weighted emulsion
- Halation — CineStill tungsten highlight bleed
Examples: Leica M6, Contax T2, Hasselblad 500C, ARRI Alexa, CineStill 800T, Phase One IQ4.
Export
- Live preview via session API (upload once, tune many times)
- Full-res JPEG or 16-bit TIFF download
- Async export jobs for large images (
POST /process/export/async→ poll → download)
Tests
cd packages/engine && pip install -e ".[dev]"
pytest tests/engine -q
100 tests passing.
Author: Dhruv Hegde · CS @ University of Michigan
Connect with Dhruv Hegde
More of Dhruv Hegde's open-source work on GitHub and LinkedIn.