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 log and chart 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 what ZoneLab can do is help you establish a consistent, repeatable process with as many variables as possible being controlled or eliminated. By shooting a 10-stop wedge test and measuring the resulting film densities, ZoneLab logs your effective ISO, Contrast Index, Gamma, Tonal Range and Exposure Latitude—helping you build a reference library of how your particular processes perform under controlled conditions.

Important: ZoneLab logs 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 documentation tool for establishing consistent, repeatable workflows where variables are controlled and results are tracked over time.

ZoneLab three-column interface
ZoneLab's three-column layout: session setup (left), H&D curve chart (center), session library (right)

First Launch

When you first launch ZoneLab, a 5-step onboarding wizard helps you populate your equipment library before your first session. You can always add more later — this just gets your most-used gear in place quickly.

Step 1 — Select Your Films

Onboarding: Select films
Step 1 of 5 — Film selection
  • 1 The progress indicator shows which of the 5 setup steps you're on.
  • 2 Type in the search field to filter the full film catalog by name or manufacturer.
  • 3 Check up to 5 films. These become your favorites — they'll appear at the top of the film dropdown during every session.
  • 4 The counter shows how many slots you've used (e.g., 4/5).

Step 2 — Developer Setup

ZoneLab needs to know whether you develop your own film or send it to a lab, because these paths work differently.

Onboarding: Select developers (self-develop)
Self-development — select up to 5 developers
Onboarding: Lab name entry
Lab development — enter your lab's name
  • 1 I develop my own film — search and select up to 5 developers (D-76, PyrocatHD, Rodinal, etc.) to add to your favorites.
  • 2 I use a photo lab — enter your lab's name. This replaces the developer dropdown with a lab name field throughout the app.

Step 3 — Camera Setup

Onboarding: Select camera manufacturer
Step 3 of 5 — Add a camera by selecting its manufacturer
  • 1 A manufacturer dropdown covers every major film camera brand (Agfa through Zeiss Ikon). Select the brand, then name the specific body.
  • 2 Choose Custom at the bottom of the list for any brand not listed.
  • 3 Click Add Camera to save it to your library.

Step 4 — Lens Setup

Onboarding: Add a lens
Step 4 of 5 — Lens library, with an "Add New Lens" dialog open
  • 1 Previously added lenses are listed with checkboxes — select any you want to mark as favorites for quick access.
  • 2 Click + Add Lens to open the name dialog. Enter the lens exactly as you want it displayed (e.g., "Voigtlander Nokton 40mm f1.2").
  • 3 Lenses are free-text — name them however is most useful to you.

Step 5 — Grey Card Reference

Onboarding: Add grey card reference
Step 5 of 5 — Define your grey card's actual Zone V reflectance
  • 1 Give the card a descriptive name (e.g., "Calibrite Small", "Kodak Grey Card").
  • 2 Expected Zone V Density — the density value your card should produce when properly exposed and developed. The standard 18% grey card targets 0.720. If you've measured your specific card and it differs, enter that value here.
  • 3 This value is used as the grey target in all ISO calculations. If you're unsure, leave it at 0.720.

System Requirements

  • macOS 14.0 (Sonoma) or later
  • Apple Silicon (M1/M2/M3/M4) or Intel Mac
  • Calibrated transmission densitometer (any brand), or use a photo lab service
  • Optional: Printalyzer UV Densitometer for direct USB integration

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, Gradient, Tonal Range, and Exposure Latitude
  • Use gradient-adjusted Effective ISO calculations
  • 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)

EI Only Mode

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

Use EI Only 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

Process Control: The key to meaningful results is consistency. Use the same equipment, lighting setup, and development parameters each time you test. ZoneLab helps you document these variables so you can identify what changes between sessions and maintain repeatable results.

Step 1: Set Up Equipment

The left sidebar is your session control panel. Every field you fill in here gets saved with the session — so future you can filter, compare, and understand exactly what produced any given result.

Selecting Film

Session Setup: Film dropdown
Film Selection — the dropdown with favorites and search
  • 1 The star icon next to a film name means it's a favorite. Starred films appear at the top of the list for quick access.
  • 2 Enable Show Favorites to collapse the list to only your starred films — useful when you have a large catalog.
  • 3 The ISO field below the film dropdown shows your metered ISO — the speed you set on your meter when you shot the test. This is usually the film's box speed.
  • 4 Click + Add Film to add a new stock to your library at any time.

Selecting Developer

Session Setup: Developer dropdown
Developer Selection — with development parameters
  • 1 Select your developer from the dropdown. The same favorites/search system applies as with films.
  • 2 Enter Temperature (°C), Time (minutes : seconds), Dilution, and Agitation method. These parameters are logged with every session.
  • 3 The Inversion toggle captures your agitation scheme (constant, interval, etc.).

Lighting Conditions & Notes

Session Setup: Lighting conditions and notes
Lighting Conditions — optional metadata for the shooting session
  • 1 Lighting conditions are optional but valuable for outdoor testing where light quality varies. Fields include: Location, Sun Condition, Time of Day, Light Source, Light Quality, and Light Direction.
  • 2 Additional Notes is a free-text field (up to 500 characters). Use it to capture anything the structured fields don't cover — subject matter, anomalies, observations about the development, etc.
  • 3 The character counter at the bottom-left shows how much of the 500-character limit you've used.

Validation — Missing Fields

Session Setup: Missing info validation
Missing required fields are highlighted in red before calculation
  • 1 If you try to calculate without all required fields, the missing fields are outlined in red. Here the Camera field is missing.
  • 2 A summary at the bottom of the sidebar lists exactly what's missing (e.g., "Missing: Camera, Zone Readings (0/11)") so you don't have to hunt for it.
  • 3 Zone reading fields also turn red when empty, showing at a glance how many readings still need to be entered.

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 EI Only 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 (these are critical variables)
  • Note all development parameters in ZoneLab
  • Let the film dry completely before measuring

Consistency Tip: Even small variations in development (±0.5°C, ±30 seconds) can affect your results. Document everything so you can replicate successful processes or identify what changed when results differ.

Step 4: Enter Density Readings

In the bottom zone input panel:

  1. Select your testing mode (Full or EI 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
    • EI Only Mode: Enter only Zone V reading
  4. Optional: Add lighting conditions and session notes (up to 500 characters)
Input menu: Fill Sample Data and densitometer options
Input menu — data entry options and densitometer controls
  • 1 Fill Sample Data (⌘⇧F) — populates all zone fields with a realistic test dataset. Use this to explore the app before your first real test.
  • 2 Use Densitometer (⌘⇧D) — toggle to enable direct USB input from a connected Printalyzer densitometer. When enabled, readings auto-advance through zones as you measure.
  • 3 Configure Densitometer... (⌘⌥D) — opens device settings (model, reading type, auto-advance). See the Densitometer section below.
  • 4 Start Reading Zone 0 (⌘⇧R) — begins a densitometer reading session. Grayed out until a device is connected.
  • 5 Recalculate All Metrics (⌘⇧M) — re-runs calculations on all existing sessions. Useful after a ZoneLab update that changes calculation methods.
  • 6 Clear Session Data — deletes all sessions while keeping your equipment library intact.
  • 7 Clear All Data — full reset. Removes sessions and all equipment libraries.

Tip: In EI Only Mode, Fill Sample Data only populates Zone V — not all 11 zones. This is expected behavior.

Step 5: Calculate Effective ISO

All zone readings entered — Calculate EI button active
All 11 zone readings entered — the Calculate EI button is now active
  • 1 Once all required fields and zone readings are complete, the Calculate EI button becomes active.
  • 2 ZoneLab finds the zone closest to 0.72 density (18% grey target) and calculates your effective EI.
  • 3 Full Mode sessions also calculate CI, Gamma, Gradient, Tonal Range, and Exposure Latitude.
  • 4 The session is saved automatically with all data — it appears immediately in the Session Library on the right.

EI Only Mode sessions calculate effective ISO only. Full Mode sessions produce the complete set of metrics.

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

  • Add films with manufacturer, name, and box speed
  • Mark up to 5 films as favorites for quick access
  • Common films (Tri-X, HP5+, etc.) are available by default

Developers

  • Add developers with specific development parameters
  • Track time, temperature, dilution, and agitation method
  • Support for both self-development and lab processing
  • Mark favorites for frequently-used developers

Cameras & Lenses

  • Organize your camera bodies and lenses
  • Track which equipment was used for each test
  • Helps identify equipment-specific exposure variations

B&W Filters

  • Track common B&W filters: Yellow #8, Orange #21, Red #25, Deep Red #29, Green #11, Blue #47, Polarizer
  • Includes Wratten numbers, filter factors (e.g., 2×, 4×), and stop compensation (e.g., +1, +2)
  • Add custom filters with your own specifications
  • Filters stored as session metadata only - do not affect chart calculations

Grey Cards

  • Document your reference grey cards
  • Important for consistent, repeatable results
  • Most users will have one primary grey card

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 2.5 (very dense)
  4. Maximum accepted density: 4.0 (readings above this will be rejected)

Printalyzer USB Integration

ZoneLab includes full support for the Printalyzer UV Densitometer via direct USB connection. When connected, the densitometer reads directly into the zone fields — no manual entry required.

Enabling the Densitometer

Input menu: enabling and configuring the densitometer
Input menu — "Configure Densitometer..." opens device settings
  • 1 Open Input → Use Densitometer (⌘⇧D) to toggle USB reading on. A checkmark confirms it's active.
  • 2 Open Input → Configure Densitometer... (⌘⌥D) to set up your specific device model and reading preferences.
  • 3 Start Reading Zone 0 (⌘⇧R) is available once a device is connected. It begins the reading sequence at Zone 0 and advances automatically.

Configure Densitometer Dialog

Configure Densitometer dialog
Configure Densitometer — device model, reading type, and calibration
  • 1 Device Model — choose between Printalyzer Densitometer (standard) and Printalyzer UVVIS Densitometer (UV/VIS version). Select the model that matches your hardware.
  • 2 Reading Type — always use T (Transmission) for film density measurements. R (Reflection) is for print/paper testing only.
  • 3 Auto-advance to next zone after reading — when enabled, ZoneLab moves to the next zone field automatically after each accepted reading. Keeps the workflow fast and hands-free.
  • 4 Connection — shows current USB connection status. Click Connect to attempt device detection if it isn't found automatically.
  • 5 Calibration — if readings seem off, recalibrate the device on-device: press Up + Down simultaneously to open the device menu, navigate to Calibration → Transmission, then follow the on-device instructions using the reference tablets shipped with your unit.

Using the Densitometer

  • Full Mode: Click Start (or ⌘⇧R) to begin at Zone 0. Place the densitometer on each zone in sequence and accept or reject each reading. ZoneLab advances through all 11 zones automatically.
  • EI Only Mode: The sequence begins and stops at Zone V. Only one reading is needed.
  • Mode Detection: ZoneLab verifies the device is in Transmission (T) mode before accepting readings. If it detects Reflection mode, it will warn you.
  • Connection Status: Real-time connection status is shown in both the Configure dialog and the zone input panel.

Note: USB integration uses IOKit for direct USB communication. Fully compatible with macOS App Sandbox.

Session Comparison & The Chart

Comparing Sessions

Compare up to 5 sessions simultaneously to see how different variables affect your results. This is where ZoneLab's systematic approach shines: by changing one variable at a time (same film, different developer; same developer, different time), you can isolate what causes specific changes in your characteristic curves.

Multiple sessions selected on the density chart
Three sessions overlaid — each session curve rendered in a distinct color for easy comparison
  • 1 Each session is rendered in a unique color. The Session Library (right panel) shows a matching color swatch next to each session name.
  • 2 The chart's horizontal axis represents log exposure (logH), with each zone spaced 0.30 logH apart. Vertical axis shows density.
  • 3 Zone bands run across the background as subtle grayscale strips — from Zone 0 (black) through Zone X (white) — giving you an instant tonal reference for every point on every curve.
  • 4 The Zone V target box (dashed outline) marks 0.72 density at Zone V — the ideal 18% grey placement. Curves landing inside or near the box are properly calibrated.

Selection Methods:

  • Click: Select a single session
  • ⌘ + Click: Add/remove non-consecutive sessions
  • ⇧ + Click: Select consecutive sessions

Hover Overlays & SBR

Hover over a session row in the Session Library (or over a curve on the chart) to see detailed overlays for that session.

SBR overlay showing subject brightness range on the density chart
Hover overlay — Subject Brightness Range (SBR) arc and speed point markers for the highlighted session
  • 1 The SBR arc spans the density range a "normal" scene would produce on this film/developer. It gives a quick read of where your process places a standard subject.
  • 2 A ◆ diamond marker shows where the Speed Point EI falls on the curve (B+F + 0.1 density method — shadow toe).
  • 3 A ▲ triangle marker shows where the Zone V EI falls on the curve (midtone 0.72D method).
  • 4 An info card in the upper-left of the chart shows the session's film name, Recommended EI, CI, Gamma, and Tonal Range for quick reference.

Expanded Session Panel

Expanded session panel showing full metrics
Expanded session row — click the disclosure triangle to reveal full metrics and development parameters
  • 1 The collapsed row shows film name, developer, and the Recommended EI (with standard ISO rounding and +/– precision indicator).
  • 2 Click the disclosure triangle to expand the full metrics: Metered ISO, Recommended EI, Zone V EI, Speed Point EI, CI, Gamma, Gradient, Tonal Range, and Exposure Latitude.
  • 3 Development parameters (developer, temperature, time, dilution, agitation) are shown at a glance so you can immediately understand what process produced this curve.
  • 4 The Edit button (pencil icon) opens the Edit Session dialog for that session without having to select it first.

What to Compare (Change One Variable at a Time):

  • Same film, different developers → isolate developer's effect on contrast
  • Same developer, different times/temperatures → isolate development variable impact
  • Different films, same developer → isolate film characteristic differences
  • Different cameras/lenses, same film/developer → identify equipment-specific exposure variations

Scientific Approach: Changing multiple variables simultaneously makes it impossible to know what caused a difference. Control your variables by keeping everything constant except the one thing you're testing.

Filtering Sessions

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

  • Filter by film (e.g., show only Tri-X tests)
  • Filter by developer (e.g., show only D-76 tests)
  • Filter by camera or lens
  • Combine filters for precise results

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.

Expanded session panel with edit button
Select a session in the library and click the edit button (pencil icon) to open the Edit Session dialog

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:

  • Film: Change the film stock used
  • Developer: Update developer type and development parameters
  • Camera: Change which camera body was used
  • Lens: Update which lens was used
  • Filter: Add or change B&W filter used (Yellow #8, Orange #21, Red #25, etc.)
  • Grey Card: Change the reference grey card

Session Details:

  • Lighting Conditions: Add or update lighting information
  • Session Notes: Add or edit notes about the test (up to 500 characters)
  • Zone Readings: Correct any density measurements if needed

When to Edit Sessions

  • Correction: Fix data entry errors without re-entering everything
  • Additional Information: Add notes or lighting details you forgot initially
  • Metadata Update: Correct equipment selections if you documented the wrong camera or lens
  • Zone Reading Adjustments: Update density values if you re-measured more accurately

Note: When you edit zone readings, click "Calculate EI" 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 EI Only) after a session is created. If you need to switch modes, create a new session.

Data Management

Save Chart as PNG

File → Save Chart as PNG… (⌘⇧P)

Export the current density chart as a high-resolution PNG image — useful for sharing results, printing, or archiving alongside your session data.

Exported ZoneLab density chart PNG
Exported chart PNG — 2400×1800px at Retina resolution, with session legend and Zone V target reference
  • 1 The export renders whatever sessions are currently selected on the chart — select 1–5 sessions first, then export.
  • 2 Speed point markers (◆ diamond for Speed Point EI, ▲ triangle for Zone V EI) are always visible in the exported PNG regardless of hover state.
  • 3 A session legend below the chart shows each session's film name, developer, and Recommended EI with a matching color swatch.
  • 4 Files are saved as ZoneLab_Chart_M.D.YYYY.png by default. A save dialog lets you choose a custom name and location.

CSV Export

File → Export Sessions (⌘E)

  • Exports all session data to a CSV file with 37+ columns
  • Includes all metadata: films, developers, cameras, lenses, filters, grey cards, settings
  • Includes filter specifications: Wratten numbers, filter factors, stop compensation
  • Includes lighting conditions and session notes
  • Includes all zone readings and calculated results
  • Perfect for backup or analysis in spreadsheet applications

CSV Import

File → Import Sessions (⌘I)

  • Import previously exported session data
  • Automatically creates missing films, developers, cameras, lenses, filters, and grey cards
  • Preserves all zone readings, metrics, notes, and settings
  • Useful for transferring data between Macs or restoring backups

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

  • Deletes all test sessions and zone readings
  • Preserves your equipment libraries (films, developers, cameras, lenses)
  • Use when you want fresh test data but keep your equipment setup

Clear All Data

  • Complete factory reset - deletes everything
  • Removes sessions and all equipment libraries
  • Use when starting completely fresh

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

Understanding Results

The Value of Systematic Testing: ZoneLab's metrics are most useful when compared across multiple sessions with controlled variables. A single test tells you one data point. Multiple tests with systematic changes (different developers, times, temperatures) help you understand cause-and-effect relationships in your process. Track patterns over time to build confidence in your workflow.

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 (EI - Exposure Index)

Available in: Full Mode and EI Only 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.

Terminology Note: In Zone System and film testing literature, ISO refers to the film's rated/box speed (e.g., "Kodak TMax 400"), while EI (Exposure Index) refers to the tested effective speed (e.g., "rated at EI 320"). ZoneLab displays calculated values as "EI" in the session list for clarity.

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:

  • Metered at: ISO 400 (what you set on your light meter)
  • Shot grey card as: Zone V (base exposure)
  • After development, Zone V measured: 1.05D (too dense)
  • Zone measuring 0.72D (target): Zone III
  • Stops difference: 5 - 3 = +2 stops
  • Effective ISO: 400 × 2² = 400 × 4 = 1600

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:

  • CI < 0.50: Low contrast (longer development needed)
  • CI = 0.50-0.65: Normal contrast (N development)
  • CI = 0.65-0.80: High contrast (shorter development or dilution needed)
  • CI > 0.80: Very high contrast (reduce development significantly)

Typical targets:

  • CI = 0.56: Kodak film data sheet recommendation for general development
  • CI = 0.58: Kodak recommendation for diffusion enlarger printing
  • CI = 0.43: Kodak recommendation for condenser enlarger printing

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:

  • γ < 0.65: Soft/flat curve
  • γ = 0.65-0.80: Normal gradient
  • γ > 0.80: Contrasty/steep curve

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

Gradient (G)

Available in: Full Mode only

Measures the average gradient over the working range. Used to calculate gradient-adjusted density per stop for more accurate Effective ISO calculations.

Formula:

Gradient = (Density at Zone VIII - Density at Zone II) / (Log Exposure Range)

Where:
- Log Exposure Range = 6 zones × 0.30 log H = 1.80 log H
- Working range spans Zones II through VIII

Simplified formula:
G = (D_VIII - D_II) / 1.80

Interpretation:

  • G = 0.57: "Normal" gradient (Lambrecht's target)
  • G < 0.57: Lower contrast → less density change per stop
  • G > 0.57: Higher contrast → more density change per stop

Impact on Effective ISO:

ZoneLab uses gradient to adjust the density-per-stop factor in EI calculations:

Density per Stop = 0.30 × (Gradient / 0.57)

Example with high-contrast film (G = 0.68):
- Density per Stop = 0.30 × (0.68 / 0.57) = 0.358
- Higher gradient → more density change per stop
- Results in more accurate EI calculation

Why This Matters: The traditional assumption of "0.30 density per stop" is only accurate at normal gradient (0.57). High-contrast films (e.g., TMax in Rodinal) or low-contrast films deviate from this. Gradient adjustment provides more accurate EI calculations across different film/developer combinations.

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:

  • < 1.6D: Limited dynamic range
  • 1.6-2.2D: Normal range (most films)
  • > 2.2D: Extended range (high-capacity films)

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:

  • Tonal Range: 1.8D
  • Latitude: 1.8 / 0.30 = 6 stops

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

References

Dual Speed Point System

What is the Dual Speed System? ZoneLab calculates two independent film speed ratings using different methods: Speed Point EI (toe-based) and Zone V EI (midtone-based). The Recommended EI uses the more conservative of the two to ensure proper exposure across your entire tonal range.

Understanding the Two Speed Methods

◆ Speed Point EI (B+F + 0.1 Method)

Speed Point EI is calculated based on where minimum useful density appears on your film:

  • Target: Base + Fog + 0.10 density should fall at Zone I (0.3 logH)
  • Philosophy: Conservative approach that ensures shadow detail is captured
  • Best for: High-contrast scenes where shadow detail is critical
  • Visual indicator: ◆ Diamond marker on the characteristic curve chart

▲ Zone V EI (Zone V Method)

Zone V EI is calculated based on where your grey card exposure falls:

  • Target: 18% grey card should produce 0.72 density and fall at Zone V (1.5 logH)
  • Philosophy: Standard exposure index that optimizes midtone rendering
  • Best for: General photography with balanced tonal distribution
  • Visual indicator: ▲ Triangle marker on the characteristic curve chart

Recommended EI (Conservative Approach)

ZoneLab recommends using the slower (more conservative) of the two calculated speeds:

  • Formula: Recommended EI = min(Speed Point EI, Zone V EI)
  • Why conservative? Ensures both shadows and midtones are properly exposed
  • Example: If Speed Point EI = 250 and Zone V EI = 320, use 250
  • Result: Slightly denser negatives with better shadow detail preservation

Standard ISO Rounding with +/- Indicators

ZoneLab displays your Recommended EI rounded to the nearest standard ISO value with precision indicators:

Standard ISO Values:

3, 6, 12, 25, 50, 64, 100, 125, 160, 200, 250, 320, 400, 640, 800, 1000, 1250, 1600, 3200, 6400

Precision Indicators (1/3 Stop Increments):

Calculated EI Displayed As Meaning
640 640 Exactly matches standard ISO (no suffix needed)
780 800- Slightly below 800 (~0.1 stop)
812 800+ Slightly above 800 (~0.1 stop)
890 800++ Moderately above 800 (~0.2 stop)
720 800-- Moderately below 800 (~0.2 stop)

Practical Use: Set your camera/meter to the displayed standard ISO value. The +/- indicators tell you how precise your exposure will be. For most work, being within one +/- of a standard ISO is perfectly acceptable.

Visual Indicators on Chart

When you hover over a session in the chart, you'll see speed point indicators overlaid on the characteristic curve:

  • ◆ Diamond: Shows where the Speed Point EI falls on your curve (B+F + 0.1 density location — shadow toe)
  • ▲ Triangle: Shows where the Zone V EI falls on your curve (0.72 density midtone target)
  • White Outlines: Both markers have 2px white strokes for visibility against any background
  • Chart Info Box: Upper left overlay shows film name, Recommended EI, and key metrics in white text

Session Detail Display

When you expand a session (click the twirl-down arrow), you'll see comprehensive speed information:

  • Metered ISO: The ISO you set on your light meter when shooting the test
  • Recommended EI: The calculated recommended exposure index (with standard ISO rounding and +/– indicator)
  • Zone V EI: Zone V method result — where your grey card exposure fell (actual calculated value)
  • Speed Point EI: B+F + 0.1 method result — where minimum useful shadow density falls (actual calculated value)

Example: Interpreting Dual Speed Results

Your Test Results:

  • Film: Kodak Tri-X 400
  • Developer: D-76 1+1, 7min 30sec @ 20°C
  • Metered ISO: 400 (box speed)

ZoneLab Calculates:

  • Speed Point EI: 250 (conservative, toe-based)
  • Zone V EI: 320 (standard, midtone-based)
  • Recommended EI: 250 (minimum of the two)
  • Display: "Recommended EI: 250"

What This Means:

  • Your process produces effective speed of EI 250, not the box speed of 400
  • You're getting denser negatives (about 2/3 stop slower than box speed)
  • Next Time: Set your meter to ISO 250 when shooting this film/developer combo
  • Result: Properly exposed negatives with good shadow detail

Example: When Shadow and Primary Differ Significantly

Your Test Results:

  • Film: Kodak TMax-100
  • Developer: Rodinal 1+50, 10min @ 20°C (high contrast developer)
  • Metered ISO: 100 (box speed)

ZoneLab Calculates:

  • Speed Point EI: 64 (very conservative due to steep toe)
  • Zone V EI: 100 (matches box speed for midtones)
  • Recommended EI: 64 (minimum of the two)
  • Display: "Recommended EI: 64"

What This Means:

  • High-contrast development creates steep toe (rapid density falloff in shadows)
  • Midtones are fine at box speed, but shadows need more exposure
  • Using Speed Point EI (64) ensures shadow detail isn't lost
  • Trade-off: Denser negatives overall, but better shadow separation
  • Alternative: Reduce development contrast (lower dilution, shorter time) to bring Speed Point EI and Zone V EI closer together

When to Use Which Speed:

  • Recommended EI (default): Best for general use — ensures both shadows and midtones are properly exposed
  • Zone V EI only: If you're printing on high-grade paper (Grade 4–5) and can tolerate blocked shadows in exchange for optimal midtone placement
  • Speed Point EI only: Rarely necessary — Recommended EI already uses Speed Point EI when it's the more conservative value

Most users should follow the Recommended EI. It represents the safest, most conservative approach that works across a wide variety of subjects.

Updating Speed Points for Existing Sessions

Sessions created before v1.0 may not have speed point data. To populate speed points:

  1. Select Edit → Recalculate All Metrics from the menu
  2. ZoneLab will recalculate Speed Point EI and Zone V EI for all existing sessions
  3. Speed point markers (◆ diamond and ▲ triangle) will appear on the chart when hovering over sessions
  4. Expanded session rows will show all four speed values: Metered ISO, Recommended EI, Zone V EI, Speed Point EI

Keyboard Shortcuts

Action Shortcut
Getting Started Guide ?
Save Chart as PNG P
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 EI button is disabled

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

  • Missing film, developer, camera, lens, or grey card selection
  • In Full Mode: Not all 11 zone readings entered
  • In EI Only Mode: Zone V reading not entered
  • Invalid density values (must be numbers)

Data not saving

  • Check that you have write permissions in ~/Library/Containers/
  • Try restarting the app
  • Export your data, use "Clear All Data", then import if issues persist

CSV import fails

  • Ensure the CSV file was exported from ZoneLab
  • Check that the file has the correct format (33+ columns)
  • Verify the file is not corrupted or modified

Densitometer not connecting

  • Ensure USB cable is properly connected
  • Check that "Use Printalyzer Densitometer" is enabled (⌘⇧D)
  • Try unplugging and reconnecting the device
  • Check Densitometer Settings (⌘⌥D) for correct port selection

Wrong effective ISO calculated

  • Verify density measurements are accurate (calibrated densitometer)
  • Check that you metered the grey card correctly during shooting
  • Ensure consistent lighting during test exposure
  • Verify development parameters were followed precisely
  • Remember: Different films with the same ISO rating may produce different effective ISO values based on curve characteristics

Fill Sample Data doesn't work in EI Only Mode

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

Need Help?

For additional support, bug reports, or feature requests: