A comprehensive exposure calculator and light meter for film photographers
Factor is a specialized iOS app designed for film photographers who need precise exposure calculations under challenging conditions. It combines a real-time light meter with sophisticated calculators for common exposure problems encountered in analog photography.
- Real-time light metering using device camera sensor
- Calculates proper exposure values (EV) for your target ISO and aperture
- Point-and-shoot simplicity with professional accuracy
- Automatic camera permission handling
- Comprehensive database of popular film stocks with their characteristics
- Includes films from Ilford, Kodak, Rollei, and Fujifilm
- Reciprocity factors for accurate long exposure calculations
- ISO ratings from 50 to 3200
- Compensates for reciprocity failure during long exposures
- Uses film-specific reciprocity characteristics
- Automatic threshold detection for when correction is needed
- Essential for exposures longer than 1 second
- Compensates for light loss when using neutral density or other filters
- Two priority modes: Aperture Priority and Shutter Priority
- Supports both decimal and fractional filter factors
- Smart conversion between exposure formats
- Compensates for light loss in macro photography with bellows extensions
- Formula-based calculation:
(bellows_draw / focal_length)² - Dual compensation modes for aperture or shutter priority
- Only applies correction when factor ≥ 2 for significant light loss
- Dark mode support with user preference storage
- Customizable accent colors for personalized interface
- Rounded font design for modern, clean aesthetics
- iOS 14.0+
- Camera permission for light meter functionality
- iPhone or iPad with rear camera
- SwiftUI for modern iOS interface
- AVFoundation for camera integration and light metering
- Core Data for film stock database management
- Combine framework for reactive programming
- KVO for real-time camera parameter monitoring
LightMeterEngine.swift: Real-time light metering with camera sensorFilmStock.swift: Film database with reciprocity characteristicsPersistence.swift: Core Data stack for database managementMath.swift: Photography-specific mathematical utilitiesConstants.swift: Standard photography values (f-stops, shutter speeds, ISOs)
-
Clone the repository:
git clone https://github.com/tylerreckart/factor.git
-
Open
Factor.xcodeprojin Xcode -
Build and run on your iOS device or simulator
- Xcode 14.0+
- iOS 14.0+ deployment target
- Apple Developer account for device testing
- Open the app and tap Light Meter
- Point your camera at the subject
- Set your target ISO and aperture
- Tap Capture to get the recommended shutter speed
- Select Reciprocity Failure from the dashboard
- Choose your film stock from the database
- Enter your calculated shutter speed
- Get the corrected exposure time for long exposures
- Select Filter Factor from the dashboard
- Choose Aperture or Shutter Priority mode
- Enter your base exposure settings
- Input your filter factor (e.g., 2.0 for 1-stop ND filter)
- Get the compensated exposure settings
- Select Bellows Extension Factor from the dashboard
- Enter your lens focal length
- Input your bellows extension distance
- Choose priority mode and base exposure
- Get the compensated settings for macro photography
The app includes a comprehensive database of popular film stocks:
Black & White Films:
- Ilford HP5+ (ISO 400)
- Ilford FP4+ (ISO 125)
- Ilford Delta 100, 400, 3200
- Kodak Tri-X 400
- Kodak T-Max 100, 400
- Rollei RPX 25, 100, 400
Color Films:
- Kodak Portra 160, 400, 800
- Kodak Ektar 100
- Fujifilm Velvia 50, 100
- Fujifilm Provia 100F
Each film includes specific reciprocity factors and threshold values for accurate long exposure calculations.
This project is licensed under the MIT License.
- Built for the film photography community
- Inspired by the need for accurate exposure calculations in analog photography
- Special thanks to contributors and beta testers