← Back to ZoneLab

ZoneLab User Guide

Zone System Testing & Film Process Documentation for macOS

Getting Started

What is ZoneLab?

ZoneLab started as a deeply nerdy personal project to take a lot of my old school chemical photographic knowledge and bring it into the digital age. The goal was to systematically document, chart and analyze my film and developer combinations by measuring the tangible effects of pushing, pulling, over and under exposing and contrast compression across different film stocks.

As I shared early screen shots and testing results with some of my other photo nerd friends, I was asked quite often if I would ever consider making this into a desktop app that others could use.

So sure, why not? I set out to make this an app to help film photographers determine the effective ISO of their specific film and development processes through Zone System testing methodology, and I've since started on the base of a larger goal: a complete suite of tools for the modern film heads.

So this is the point where you might be asking yourself: "Will the zone system make me a better photographer?"

No.

But by shooting a 10-stop wedge test and measuring the resulting film densities, ZoneLab can help you calculate your effective ISO, Contrast Index, Gamma, Tonal Range and Exposure Latitude—helping you gain a better understanding of how your particular processes affect your image quality.

Important: ZoneLab determines the effective ISO your specific process produces through Zone System testing. This is not ISO 6:1993 laboratory film speed testing, which requires absolute lux-second measurements and toe-region analysis. ZoneLab is a practical testing tool for optimizing your personal workflow.

ZoneLab Main Interface

First Launch

When you first launch ZoneLab, you'll see an onboarding wizard that helps you set up:

System Requirements

Testing Modes

ZoneLab offers two testing modes to suit different needs:

Full Mode

Complete 11-zone analysis with all metrics for full process documentation.

Use Full Mode when you want to:

  • Analyze the complete characteristic curve of your film/developer combination
  • Calculate Contrast Index (CI), Gamma, Tonal Range, and Exposure Latitude
  • Compare how different developers affect contrast rendering
  • Document complete curve characteristics for process control

Requirements:

  • 10-stop wedge test (Zones I-X) plus Zone 0 (base + fog)
  • Density measurements for all 11 zones
  • Each zone represents one stop of exposure difference (0.30 log-H units)

Zone V Quick Mode

Single Zone V measurement for fast effective ISO testing without full metrics.

Use Zone V Quick Mode when you want to:

  • Quickly verify your effective ISO for a film/developer combination
  • Test a new film stock without full analysis
  • Confirm ISO consistency for a familiar process
  • Save time when you don't need full curve data

Requirements:

  • Single Zone V exposure (metered 18% grey card)
  • One density measurement only
  • Faster workflow, effective ISO only (no CI/Gamma)

Tip: Toggle between modes using the segmented picker in the zone input panel. The mode setting only affects new sessions - existing sessions retain their original mode.

Basic Workflow

Step 1: Set Up Equipment

In the left sidebar, select your equipment:

  • Film: Choose your film stock (e.g., Tri-X 400, HP5+)
  • Developer: Select developer and settings (time, temp, dilution, agitation)
  • Camera & Lens: Pick the camera and lens you'll use
  • Grey Card: Confirm your reference grey card

Use the "Show Favorites" toggle to see only your most-used items.

Step 2: Shoot Your Test

For Full Mode (10-Stop Wedge Test):

  1. Set up your 18% grey card with even, consistent lighting
  2. Meter the grey card at the film's box speed ISO to determine your base exposure (Zone V)
  3. Shoot 10 frames with one-stop increments:
    • Zone I: Base exposure -4 stops
    • Zone II: Base exposure -3 stops
    • Zone III: Base exposure -2 stops
    • Zone IV: Base exposure -1 stop
    • Zone V: Base exposure (metered grey card)
    • Zone VI: Base exposure +1 stop
    • Zone VII: Base exposure +2 stops
    • Zone VIII: Base exposure +3 stops
    • Zone IX: Base exposure +4 stops
    • Zone X: Base exposure +5 stops
  4. After development, measure Zone 0 (base + fog) on an unexposed portion of the film

Note: Zone 0 is base + fog density (unexposed, processed film). You don't shoot a frame for Zone 0—simply measure an unexposed edge or leader after development. This is a 10-stop wedge test, not 11 exposures.

For Zone V Quick Mode:

  1. Set up your 18% grey card with even lighting
  2. Meter the grey card at the film's box speed ISO
  3. Shoot one frame at the metered exposure (Zone V)
  4. After development, measure the Zone V density to calculate effective ISO

Step 3: Develop Your Film

  • Process the film with your chosen developer
  • Maintain consistent temperature, time, and agitation
  • Note all development parameters in ZoneLab
  • Let the film dry completely before measuring

Step 4: Enter Density Readings

In the bottom zone input panel:

  1. Select your testing mode (Full or ISO Only)
  2. Measure each zone with your calibrated densitometer
  3. Enter density values (typically 0.02 to 1.8):
    • Full Mode: Enter all 11 readings from Zone 0 to Zone X
    • Zone V Quick Mode: Enter only Zone V reading
  4. Optional: Add lighting conditions and session notes (up to 500 characters)

Tip: Use "Fill Sample Data" to test the app with realistic values before your real tests.

Step 5: Calculate Effective ISO

  1. Click the "Calculate ISO" button at the bottom
  2. ZoneLab finds the zone closest to 0.72 density (18% grey target)
  3. Your effective ISO is calculated and displayed
  4. The session is saved automatically with all data

Full Mode sessions also calculate CI, Gamma, Tonal Range, and Exposure Latitude. Zone V Quick Mode sessions calculate effective ISO only.

Step 6: Review Results

In the right sidebar (Session Library):

  • View all your test sessions in chronological order
  • See the calculated ISO and metrics (Full Mode only)
  • Compare sessions on the interactive chart
  • Filter by film, developer, camera, or lens

Equipment Library

Managing Your Equipment

ZoneLab maintains libraries for all your equipment. Add, edit, or delete items as needed.

Films

Developers

Cameras & Lenses

Grey Cards

Tip: Use the "Show Favorites" toggle to filter your equipment lists to just your most-used items.

Measuring Density Readings

Option 1: Photo Lab Service

Don't have a densitometer? Any quality photo lab can measure your film densities for you.

Using the Lab Form:

  1. Visit www.zonelab.app/lab_form.html
  2. Print the form to provide to your lab
  3. Bring your developed test film and the printed form to your lab
  4. The lab will measure and record density readings for each zone
  5. Enter the lab's readings into ZoneLab

Tip: Make sure your lab uses a calibrated transmission densitometer. Most professional labs have one and are familiar with sensitometric testing.

Option 2: Manual Entry (Your Own Densitometer)

ZoneLab works with any calibrated transmission densitometer:

  1. Measure each zone on your developed film
  2. Manually enter density readings in the zone input fields
  3. Readings typically range from 0.02 (clear film) to 1.8 (dense black)

Printalyzer USB Integration (Experimental)

ZoneLab includes experimental support for the Printalyzer Densitometer via USB.

Configure Printalyzer Densitometer

To Enable:

  1. Connect your Printalyzer densitometer via USB
  2. Select Input → Use Printalyzer Densitometer (⌘⇧D)
  3. Configure settings in Input → Densitometer Settings... (⌘⌥D)

Using the Densitometer:

Note: USB integration is experimental (Phase 1). Full automatic reading features are in development.

Session Comparison

Comparing Sessions

Compare up to 5 sessions simultaneously to see how different variables affect your results.

Selection Methods:

Chart Visualization:

What to Compare:

Filtering Sessions

Use the filter controls in the Session Library to show only specific sessions:

Reordering Sessions

Drag and drop sessions in the Session Library to reorder them. This can help group related tests together.

Editing Session Information

After calculating a session, you can edit its metadata and parameters without having to re-enter all the zone readings.

Edit Session Information

What You Can Edit

To edit a session, select it in the Session Library and click the "Edit" button (or double-click the session). You can modify:

Equipment Changes:

Session Details:

When to Edit Sessions

Note: When you edit zone readings, click "Calculate ISO" again to update the results with the new data. The metrics (Effective ISO, CI, Gamma, Tonal Range, Exposure Latitude) will be recalculated automatically.

Tip: You cannot change the testing mode (Full vs Zone V Quick) after a session is created. If you need to switch modes, create a new session.

Data Management

CSV Export

File → Export Sessions (⌘E)

CSV Import

File → Import Sessions (⌘I)

Data Storage

All data is stored locally on your Mac in a Core Data database:

~/Library/Containers/app.zonelab.ZoneLabApp/Data/Library/Application Support/

ZoneLab never transmits data over the internet. Everything stays on your device.

Clearing Data

Two options are available in the Edit menu:

Clear Session Data

Clear All Data

Warning: Both operations require confirmation and cannot be undone. Always export your data first!

Understanding Results

Important Note on Units: One stop of exposure equals 0.30 log-H units. However, the density change per stop depends on your film's gradient (CI or Gamma). You cannot assume a fixed density-to-stop relationship.

Effective ISO

Available in: Full Mode and Zone V Quick Mode

The ISO your specific process produces, determined by where 18% grey (0.72 density) falls in your exposure range. This is what you should set your light meter to when using that exact combination of film and process.

Formula:

Effective ISO = Metered ISO × 2^(stops difference)

Where:
- Metered ISO = the ISO you set on your meter when shooting the test
- Stops difference = (target zone - actual zone)
- Target zone = 5 (Zone V, where grey card should fall)
- Actual zone = the zone that measured closest to 0.72D

Example:

This means your film/developer combination is 2 stops faster than box speed. You were effectively shooting at ISO 1600 when you thought you were at ISO 400. Next time, meter at ISO 1600.

Contrast Index (CI)

Available in: Full Mode only

Measures the practical gradient over a useful exposure range (Zones II through IX). Higher CI values indicate more contrast. Use CI to compare how different developers affect your film's contrast rendering.

Formula:

CI = (Density at Zone IX - Density at Zone II) / (Log Exposure Range)

Where:
- Log Exposure Range = 7 zones × 0.30 log H = 2.10 log H
- Each zone = 1 stop = 0.30 log H units

Simplified formula:
CI = (D_IX - D_II) / 2.10

Interpretation:

Typical targets:

Note on Density vs. Stops: While one stop of exposure always equals 0.30 log-H units, the resulting density change depends on the film's gradient. This demonstrates why you cannot assume a fixed density-to-stop relationship: it varies based on your film's contrast characteristics.

Gamma (γ)

Available in: Full Mode only

Measures the slope of the straight-line portion of the characteristic curve. Related to CI but measured over the central linear portion only (Zones III-VIII). Higher gamma = steeper curve = more contrast.

Formula:

γ = (Density at Zone VIII - Density at Zone III) / (Log Exposure Range)

Where:
- Log Exposure Range = 5 zones × 0.30 log H = 1.50 log H

Simplified formula:
γ = (D_VIII - D_III) / 1.50

Interpretation:

Note: Gamma is more sensitive to development than CI because it measures only the straight-line portion.

Tonal Range

Available in: Full Mode only

The total density difference your film can capture, measured from base + fog to maximum density.

Formula:

Tonal Range = Density at Zone X - Density at Zone 0

Where:
- Zone 0 = base + fog (unexposed film)
- Zone X = maximum exposure (+5 stops from grey card)

Interpretation:

Exposure Latitude (Stops)

Available in: Full Mode only

How much exposure error your process can tolerate while still producing usable negatives. Calculated from tonal range. Higher latitude = more forgiving film.

Formula:

Latitude (stops) = Tonal Range / 0.30

Where:
- 0.30 = density change per stop in the straight-line portion

Example:

Note: This is a simplified estimation. Actual usable latitude depends on printing requirements and desired tonal separation.

References

Keyboard Shortcuts

Action Shortcut
Getting Started Guide ?
Export Sessions to CSV E
Import Sessions from CSV I
Toggle Tool Panels (Left Sidebar) L
Toggle Session Library (Right Sidebar) R
Toggle Printalyzer Densitometer D
Densitometer Settings D

Troubleshooting

Calculate ISO button is disabled

Solution: Hover over the Calculate ISO button to see what information is missing. Common issues:

Data not saving

CSV import fails

Densitometer not connecting

Wrong effective ISO calculated

Fill Sample Data doesn't work in Zone V Quick Mode

Solution: This is expected behavior. In Zone V Quick Mode, Fill Sample Data only populates Zone V (not all 11 zones).

Need Help?

For additional support, bug reports, or feature requests: