pixcam
Why do my phone photos look fake?
A native Android camera app that gets as close to the sensor as the platform allows and does its own processing from there. It captures RAW DNGs, switches off the built-in image processing where it can, and develops photos with its own GPU pipeline.
What it does
pixcam uses the Camera2 API and prefers a back camera with the RAW capability. Wherever the hardware layer allows, it disables noise reduction, edge enhancement and hot pixel correction. On devices with a manual sensor it exposes ISO, shutter and manual focus; on more limited hardware it falls back to EV compensation and AE lock. RAW stills are written as DNG files, with a JPEG fallback on devices that cannot shoot RAW.
The interface is built in Compose: a letterboxed preview, a round shutter, a PRO panel for manual controls, a hardware info dialog, and a small in-app gallery that can read DNGs.
Its own develop pipeline
Every RAW capture saves the DNG plus a JPEG developed by the app’s own single-pass GPU pipeline: black level, lens shading, white balance, Malvar-He-Cutler demosaic, a per-shot colour matrix, a Hable filmic curve and conversion to sRGB. It handles all four Bayer orders and is checked against a CPU reference by instrumented tests. The colour science follows the DNG 1.4 forward-matrix path, so the camera HAL’s own colour correction is now only a fallback.
Seeing what you get
Tone curves (device, linear, sRGB, filmic) can be pushed to the preview and stills where the hardware supports it. Independently of that, the viewfinder renders through a GLES3 shader with a 3D LUT, with .cube import and three built-in looks. A WYSIWYG toggle applies the develop pipeline’s exact grade in the shader so the preview matches the output. DNGs stay untouched by design.
Status
Stage 0 is done, with stages 1 and 2 in progress. Stage 3, burst merging and Bayer-domain denoising for low light, is planned. The emulator lacks manual controls, so real testing needs a device, ideally a Pixel.
