FILM·LAB Start testing
Darkroom ledger · est. 2026

Develop film.
Forget nothing.
Meter everything.

The home-darkroom companion for photographers who mix their own chemistry, time their own stages, and want it all written down, to the second.

iPhone · iPad · Mac  ·  iOS 26  ·  v1.4 beta

Film Lab rolls list
Film Lab dashboard: good-afternoon greeting, roll #050 develop-now card, stats, favourite film and camera

New in 1.4 · July 2026

The wizard asks the process first. And the ATL gets its dial.

Version 1.4 rebuilds the develop flow around the process instead of the machine, and teaches Film Lab what every Bellini C-41 kit owner counts on their fingers: development units and the dial ladder.

Rebuilt flow

Process first, then everything follows

The wizard now starts with what’s going in the tank: C-41 or black & white, and in which developer. From there the roll list only offers compatible film, and every roll arrives with a suggested dev time already attached.

  • Suggested times show where they came from: your saved recipe first, then the published chart, then a ×1.4-per-stop estimate that wears a badge.
  • Rolls that share a time group into one tank; a warning flags a mixed-times load before you pour.
  • No recipe for that film–developer pair yet? Create one from the chart in one tap, mid-wizard.
  • Machine defaults to your last for the process; mix chemistry inline; cancel restores your stock.
Time source SAVED RECIPE PUBLISHED CHART ESTIMATE ×1.4/STOP
C-41 · Jobo ATL

The Bellini dial ladder, built in

Run the Bellini KITC41/5 on a Jobo ATL and you stop counting rolls. You count development units and turn a dial. Film Lab now speaks that language natively, with the same times the machine’s EPROM runs.

  • Capacity in weighted units: a roll of 135 or 120 is 1, a pushed roll counts ×1.5.
  • The f-rule recommender picks your dial: units done plus half the run gives dial 1–4. Push +1 means dial 5, on fresh chemistry only.
  • Two clocks per batch: developer exhaustion and bleach age, tracked separately because they don’t age at the same rate.
  • A spent test that says “dump and remix” before the negatives say it for you.
DEV9/16 U
BLCH12 d
🌤︎

A dashboard that knows you

Greets you by time of day, shows your favourite film and camera, and puts one big button on the thing you’re most likely to do next.

🎖︎

Rank & service record

Every photographer profile now carries a rank and a service record of their runs. The rank climbs as their developed-roll count does.

🎞︎

135 & 120, properly

220 is retired (history stays intact), format chips no longer vanish on small phones, and ISO steppers walk the real third-stop ladder, so 320 is finally reachable.

Mac, keyboard first

Menu commands for new roll, develop, and recipes; visible focus rings; content that stops stretching on wide windows.

Film Lab light meter: live viewfinder reading EV 2.4 with the aperture/shutter/ISO drums showing f/8 · 4 seconds · ISO 400
FILM·LAB · LIGHT METER

Aim. Measure.
Place it on a zone.

Tap MEASURE and the reading holds while you dial in the shot. Since 1.3 it’s a spot meter too: read the shadow that matters and place it on the zone where you want detail. The drums re-solve around your placement.

SPOT THE SHADOW · PLACE ON III · MIDDLE GREY FOLLOWS

Spot & place

Meter a face, a shadow, a highlight, then place it on the zone you want. Filter factors compensate for the red or orange on your lens.

Your exact gear

Bodies and lenses with their real ranges. It never suggests a setting your camera can’t make. Calibration is per-device now, so the iPhone and iPad each hold their own offset.

Long exposures, solved

Reciprocity curves for ~40 stocks turn “meter says 2 s” into “give it 5 s”, with an on-screen countdown to run the exposure.

The shot log

Commit a frame straight from the meter. Every shot lands in a film-strip grid with settings, GPS, and the weather at the moment you fired.

Before you trust it
Phone sensors meter to their own middle-grey. Calibrate once (point at a grey card in direct sun, tap the “15” hint) and the readings line up with a real meter. First thing to do, ten seconds.
Chemistryexpiry · exhaustion · learning

Your batches know when they’ll die.

Every mixed batch has two ways to go: used up or timed out. Film Lab tracks both and tells you which one runs out first, before it costs you a roll.

Since 1.3

The chem radar

The dashboard radar reads each batch on both axes, rolls left and days left, and leads with whichever runs out first. Queue up more rolls than a batch has life for, and it says so.

  • FIFO nudge: it points you at the oldest healthy batch first, and warns when one will expire before your queue clears.
  • Developer times stretch as a batch ages (Q10 exhaustion compensation), with an advisory when the ATL’s fixed program can’t follow.
  • Temperature compensation keeps its head: outside the chemistry’s safe band, it stops extrapolating and tells you.
  • Mark a run thin, normal, or dense. Next time you run the same combination, a “LAST TIME” card shows what happened and what you changed.
  • Fixer going soft? Run the clip test: it suggests a fix time from the clearing time and flags a spent bath.
  • A drying notification you can tune. The app pings you when the negs should be ready to sleeve.
Film Lab chemistry batch: Fuji Hunt X-press C-41 batch with capacity bar, four baths with dilutions, and linked kit stock
⚗︎

Chemistry that counts itself

Open a kit and the part-bottles appear with the right volumes. Mix a batch and the concentrate deducts automatically, per bath for multi-part developers. Unit kits count weighted development units instead of raw rolls.

▮▮

Capacity you can read

Batch bars show exactly what’s left, in units or rolls, plus mixed and expiry dates. Fresh, tired, and dead states you can tell apart across the room.

📷

Rolls check in by barcode

Scan the box barcode and the roll fills itself in. Teach Film Lab a barcode once and it’s known on every device, forever.

The appeverything in one ledger

Built for the bench.

Tap-friendly, dark by default, and loud enough to hear across the room. Here’s what lives inside.

⏱︎

A timer you can hear

Wall-clock countdown per stage, accurate across backgrounding, mirrored to the Lock Screen as a Live Activity. A darkroom-loud alarm rings until you acknowledge, then auto-advances.

🎞︎

Rolls as a real notebook

Sequential REF numbers, film stock, push notation, camera, lens, photographer, location. Search across all of it. Print a sleeve label as a PDF.

📖

A catalog that does the math

510-Pyro, Bellini C-41 (incl. KITC41/5), Fuji Hunt, Cinestill, Ilford, Kodak kits with real dilutions, plus 50+ starter recipes from the manufacturers’ published sheets.

Everywhereiphone · ipad · mac

Your lab, on every screen.

Account-less and synced through your own iCloud. Log a roll on the phone at the changing bag, review the run later on the Mac. Same data, no sign-in. The light meter stays on iPhone; it’s the one with a camera pointed at your scene.

Film Lab · Dashboard
Film Lab on macOS: dashboard with develop-now card, stats, and the chemistry radar showing a KITC41/5 batch measured in units
Chemistry on macOS: stock and mixed solutions
CHEMISTRY · stock vs. mixed solutions
Recipes on macOS: published times by film and developer
RECIPES · times by film & developer
Rolls list on macOS
ROLLS · the full notebook, searchable
Lab on macOS: machines, cameras, lenses, photographers
LAB · machines, gear & settings
Get startedfield guide for testers

Five minutes to your first run.

The app launches empty. It’s your lab, not a demo. Walk it once, end to end, and tell me where it’s still rough.

Install from TestFlight

Open the invite on your iPhone, install TestFlight from the App Store if you need it, then install Film Lab. First launch asks for Camera. That’s the light meter and barcode scanner only; no photos are taken or stored.

Set up your lab

Add the machine you develop on: a Jobo CPE-2, an ATL-1000, or just Manual for a Paterson tank by hand. Manual is the most flexible default.

Add your gear

In Lab → Cameras & Lenses, save a body (slowest/fastest shutter) and a lens (widest/smallest aperture). The meter uses these; your rolls can be tagged with them.

Stock your chemistry

Open a kit or add a concentrate in the Chemistry tab. The catalog knows 510-Pyro, Bellini (incl. KITC41/5), Fuji Hunt, Cinestill, Ilford, Kodak. Mix a batch; the concentrate deducts itself.

Log a roll, then develop it

Add a roll in the Rolls tab; scanning the box barcode fills it in. Then hit Develop now on the Dashboard: pick the process, pick the roll, take the suggested recipe, run the timer.

Calibrate the meter first

The single most important step before you trust a reading on film you can’t chimp:

SUNNY-16·GREY CARD IN DIRECT SUN·EV 15 @ ISO 100·TAP “15” → SET OFFSET

Open the meter → Calibrate → point at a grey card or your palm in direct sun → tap the 15 hint. Or read the same scene with your handheld meter and type its EV. Fine-trim ±0.1 by eye. Calibration is per-device, so do it on each iPhone or iPad you meter with. If you own a real meter, tell me how far off the phone was. That number is exactly the feedback I need.

Running a develop session

PROCESSROLLSRECIPESETUPRUNREVIEW
Test the cleanup
Cancel a session after mixing a batch: it asks whether to delete what you added & restore chemistry. Your stock level should come back exactly. If a run goes wrong, mark it Failed and toggle “Chemistry discarded” so your inventory stays honest. And if you run a Bellini unit kit, try to catch the unit math lying. Please try to break all of this.

How to send feedback

Ranked by how useful it is to me:

Be blunt. “This is annoying” beats “nice app.” What I care about most right now: whether the process-first wizard beats your current routine, the meter’s accuracy against a real meter, and, if you run Bellini C-41 on an ATL, whether the dial recommendation matches what you would have set.

Email feedback Support & FAQ