Skip to content

TriRGB v0.1.0 — trichromatic narrowband-RGB film scanner

Choose a tag to compare

@rohanpandula rohanpandula released this 15 Jun 18:14
· 5 commits to main since this release

Trichromatic narrowband-RGB color-negative film scanner for macOS. A color negative is captured as three R/G/B-lit exposures and composited into a 16-bit linear file for mask-free inversion — Sony a7CR + a Pico-based Scanlight RGB panel.

What's in v0.1.0

  • phase1sony-capture (C++ CLI over the Sony Camera Remote SDK: capture + live view) and scanlightctl (Python serial control for the Scanlight RGB panel).
  • phase2rgb-composite (channel extract / flat-field correction / inversion / QA, with embedded ICC color profiles: linear ProPhoto on the composite, ProPhoto on the rendered positive), triplet-capture (Flask backend + capture orchestrator + per-roll exposure & FFC calibration), batch-composite, and c41-core (shared data contracts).
  • phase3scanlight-app, the SwiftUI macOS operator app (Session · Calibrate · Scan · Develop · Set Up).

Build from source

No prebuilt binary is attached: the app launches local Python + the Sony SDK capture tool, and the Sony Camera Remote SDK is proprietary and not redistributable.

  • SwiftUI app (macOS 13+, Swift 5.9+): cd phase3/FilmScanner && swift build -c release --product scanlight-app (or swift run scanlight-app).
  • Python pipeline (3.11+): install numpy tifffile rawpy Pillow opencv-python flask, then pip install -e phase2/c41-core phase2/rgb-composite phase2/triplet-capture.
  • sony-capture (C++): obtain the Sony Camera Remote SDK — see phase1/sony-capture/third_party/sony_sdk/INSTALL.md — then build per phase1/sony-capture/README.md.

See the top-level README.md and each phase's README for full setup and the operator workflow.

Hardware

Sony a7CR (ILCE-7CR) + custom Scanlight v4 (Pico-based narrowband-RGB LED panel).