For Android · Film Photography Reimagined

Every photo deserves
to feel like film.

Film35Lab transforms your digital photos into analog masterpieces — with the warmth, grain, halation, and soul of real film stock. All on your device. Instantly.

Get it on Google Play Explore Presets

From the Blog

Latest Articles

Stories, techniques, and new Film Simulation presets — straight from the Film35 blog.

Loading articles…

19
Film Categories
200+
Unique Presets
12
Film Parameters
10
Live Adjustments
0
Cloud Uploads

The Collection

19 categories.
One obsession.

Each category is a distinct photographic world — from the timeless warmth of signature film stocks to the haunting glow of infrared. Every preset is individually crafted with a unique combination of up to 12 analog parameters.

01 · Signature

The Classics

The heart of Film35Lab. Twelve presets spanning warm golden daylight to cool cinematic blues — each a distinct photographic identity inspired by legendary film stocks from around the world.

12 presets
02 · Portrait

Made for Faces

Lifted shadows, gentle contrast compression, and fine-tuned skin-tone warmth. These presets were designed to flatter the human face — soft, luminous, and never clinical.

12 presets
03 · Rangefinder

Street & Soul

Cool mid-tones, tight grain, and a muted tonal range that makes every frame feel like it was shot on a battered 35mm walking the city at dusk. Decisive. Gritty. Honest.

12 presets
04 · Iconic Sensors

Engineering Meets Art

Inspired by the colour science philosophies of great camera makers — each preset captures a different approach to rendering light: from clinical precision to lush, painterly warmth.

12 presets
05 · Classic

Timeless Grain

The bread and butter of analog photography. Warm tones, balanced contrast, and authentic grain that transforms an ordinary photo into something that feels decades older — in the best way.

12 presets
06 · Vivid

Saturated Life

High saturation, punchy contrast, and shifted colour casts that make landscapes pop and street scenes sing. These presets don't whisper — they shout.

12 presets
07 · Cinematic

Frame by Frame

Deep shadows, teal-orange colour grading, raised black floors, and the characteristic widescreen feel of motion picture stock. Every photo becomes a still from a film that hasn't been made yet.

12 presets
08 · Mono

The Power of Absence

Black and white done right. Not a simple desaturation — each Mono preset uses individual channel weighting to control how colours translate into grey tones, from bright open prints to deep contrasty darkroom drama.

12 presets
09 · Instant

Chemical Imperfection

Emulating the beautiful unpredictability of instant film — slight colour shifts, lifted shadows with a dreamy fade, and that unmistakable square-format warmth that makes memories look like memories.

12 presets
10 · Sepia

A Century Ago

Warm ochre tones, faded contrast, and a softness that makes your photo feel like it was found in an old leather suitcase. Timeless. Nostalgic. A little melancholy.

12 presets
11 · Lost Era

Faded & Forgotten

The aesthetics of found photography — colour shifts from chemical breakdown, uneven fading, and a dreamlike quality that suggests the image has been through things you haven't. Each preset tells a different story of decay.

12 presets
12 · Expired Film

Beautiful Accidents

Colour drift, base fog, reduced saturation with strange hue shifts — the happy chaos of shooting expired stock. These presets capture the unpredictable magic that happens when chemistry breaks down beautifully.

12 presets
13 · Golden Hour

The Magic Hour, Amplified

Each Golden Hour preset is a golden version of its Signature counterpart — same DNA, but with pushed temperature, stronger halation blooms, and warm highlight glow that makes the world feel like it's on fire. In the best way.

12 presets
14 · Documentary

Truth Without Noise

Restrained. Honest. These presets sit at the intersection of documentary photojournalism and fine art — minimal colour manipulation, natural grain, and a tonal range that preserves information without sentiment.

12 presets
15 · Slide Film

Saturated & Sharp

Reversal film was the professional standard for decades — vivid colours, deep blacks, and zero room for error. These presets capture the confidence and precision of shooting slide, where every frame counted.

12 presets
16 · Cross Process

Wrong Chemistry, Right Look

What happens when you develop slide film in negative chemistry — or vice versa? Wild colour casts, blocked shadows, blown highlights, and a chaotic energy that defined the alternative photography era of the 1990s.

12 presets
17 · Push Process

Underexposed & Overdeveloped

Pushing film beyond its rated speed yields shadow detail loss, increased grain, and a gritty high-contrast look beloved by available-light photographers. Dark, deep, and intensely atmospheric.

12 presets
18 · Infrared

Light You Cannot See

Infrared film records light invisible to the human eye — foliage turns white, skies go dark, and the world becomes a ghostly negative of itself. Ethereal, surreal, and unlike anything else in photography.

12 presets
19 · Negative Lab

C-41 Inverted

Simulates the full C-41 negative-to-positive inversion pipeline — colour masking, punch matrix, and saturation boost all modelled after real darkroom chemistry. From neutral true-colour scans to warm vintage pulls, each preset is a different interpretation of what the negative was always trying to say.

13 presets

Fine-Tune in Real Time

Ten adjustments.
Infinite expression.

Tap any control icon to expand a precision slider. Haptic feedback pulses at the neutral point — so you always feel exactly where you are. The icon row scrolls horizontally so every control stays within reach. Switching presets resets everything to zero.

Intensity
0 → 120%
Blend from original
Exposure
±2 EV stops
True logarithmic scaling
Contrast
±1.0
Mid-point anchored
Highlights
±1.0
Shoulder roll-off
Shadows
±1.0
Toe lift / crush
Saturation
±1.0
BT.709 luminance-weighted
Fade
0 → 1.0
Shadow lift / matte
Warmth
±1.0
Red ↑ / Blue ↑
Tint
±1.0
Green ↑ / Magenta ↑
Vignette
0 → 1.0
Radial gradient overlay

"A dot below the icon tells the whole story — orange dot means active, white dot means you've adjusted it, no dot means it's untouched. Your eye knows immediately where you've been — and where you haven't."


Under the Hood

Analog science.
Digital precision.

Each preset is not a filter — it's a complete photographic specification. Twelve independent parameters define how every photon of light is transformed. Here's how it actually works.

The 12 Analog Parameters

Parameter What it does Film Analogue
temperature Shifts colour balance warm or cool by scaling red and blue channel translations Colour temperature of the light source / film chemistry bias
saturation Controls the ratio of identity matrix to preset colour matrix during blending Dye density in the emulsion layers
contrast Scales the RGB diagonal of the colour matrix with a midpoint offset to prevent clipping Development time and gamma curve of the stock
fade Adds a constant positive offset to shadow translations, lifting the black floor Age-related base fog and silver oxidation
grain Controls the intensity of per-pixel luminance noise added at render time Silver halide crystal size and density
halation Simulates light bleeding from bright areas into shadow borders via a blurred highlight mask Light scattering through the film base / anti-halation layer
bloom Adds a soft glow to highlight regions — a wider, lower-contrast version of halation Lens flare, coatings, and highlight bloom on fast emulsions
wbRed / wbBlue Independent fine-tuning of red and blue channels as translation offsets, separate from temperature White balance shift from mixed lighting or scanning colour
shadowBiasBlue Raises only the blue channel in shadows, creating a cool-shadow / warm-highlight split tone Shadow colour cast from developer chemistry or cross-processing
highlights Compresses highlight values toward white, simulating shoulder roll-off on the film's H&D curve The gentle clipping at the top of a film stock's dynamic range

The Colour Matrix Engine

Every preset is stored as a 20-element float array — a 4×5 colour matrix applied via Android's ColorMatrix API. This is the same approach used by professional colour grading pipelines.

// 4×5 ColorMatrix: [R G B A offset] for each output channel
[ R→R G→R B→R A→R R_off // Red output
  R→G G→G B→G A→G G_off // Green output
  R→B G→B B→B A→B B_off // Blue output
  0 0 0 1 0 ] // Alpha passthrough

At runtime, Film35Lab interpolates linearly between the identity matrix and each preset's matrix using the Intensity value. This means you can dial in any blend between "no effect" and "full preset" — and stacking adjustments on top is just additional matrix arithmetic, applied in a single GPU pass.

The Rendering Pipeline

When you select a preset or drag a slider, this is what happens — in real time, frame by frame:

Source Bitmap
from Gallery
Decode into
ARGB_8888
Build Color
Matrix
Apply 10
Adjustments
Grain
Overlay
Halation
+ Bloom
Vignette
Radial Mask
Compose &
Display

Highlighted stages are recomputed on every slider move. The full pipeline runs in under 16ms on modern Android hardware, maintaining 60fps live preview.

Single GPU Pass

Intensity blending, exposure (2EV scaling), contrast (diagonal scaling + midpoint offset), fade (shadow lift), and warmth (red/blue translation) are all composed into a single 4×5 matrix before hitting the GPU. Zero redundant passes.

🎞

True Logarithmic Exposure

The Exposure slider applies 2^stops scaling to the RGB diagonal — the same model used by RAW processors. ±2 EV maps to a ×0.25 to ×4 multiplier, which is perceptually linear to the human eye.

🌫

Grain That Behaves Like Film

Each grain layer uses luminance-weighted noise — brighter areas get less grain than shadows, exactly like real silver halide. Grain intensity is pre-parameterised per preset, so a pushed process looks different from a fine-grain portrait stock.

Halation & Bloom

Halation simulates light scattering through a film base by extracting a highlight mask and applying a blurred, colour-shifted version back into the image. Bloom is the same idea at a wider radius and lower opacity — the two create a layered glow that no simple filter can replicate.

🎛

Haptic Feedback at Zero

INTENSITY, EXPOSURE, CONTRAST, HIGHLIGHTS, SHADOWS, SATURATION, WARMTH, and TINT all fire a HapticFeedbackConstants.CLOCK_TICK pulse the moment you cross the neutral point. You feel the default — you don't have to look for it.

🏗

Jetpack Compose Architecture

Film35Lab is built entirely in Jetpack Compose with state hoisted at the screen level. Preset state, adjustments, and the active control are all mutableStateOf — meaning the UI re-composes only the nodes that need updating. No XML layouts. No manual invalidation.

🔒

Everything stays on your device.

No photo is ever transmitted over a network. The entire rendering pipeline — colour matrix, grain, halation, bloom, vignette — runs on your phone's GPU using Android's native ColorFilter and Canvas APIs. Your photos are yours. Period.


Everything Included

No subscription.
No compromises.

A one-time purchase unlocks the complete Film35Lab collection — every preset, every category, every future update in the current version series.


Available Now

Your photos are
already art. Let them look it.

Download Film35Lab on Google Play. One purchase. Every preset. Every photo.

Get Film35Lab on Google Play