# Physics-grounded Inversion vs Empirical Curves
Color negative inversion in general-purpose photographic software has historically relied on empirical curve manipulation in display gamma color spaces. When photographers import camera scans or flatbed scanner acquisitions into conventional editors, the standard workflow typically involves manually flipping RGB tone curve endpoints, tweaking levels sliders, or applying black-box lookup tables to neutralize the orange-brown film base mask. This approach is fundamentally at odds with photographic physics. Camera sensor RAW files capture photons in a linear transmittance domain, whereas light absorption across the dye layers of negative film emulsion follows the Beer-Lambert law, establishing a logarithmic relationship between optical density and transmittance. Inverting pixel values within a non-linear display gamma space distorts the inter-channel mathematical relationships, leading to clipped highlight color shifts, muddy shadows, and chronic color inconsistencies across frames within the same roll.
NexFilm Engine is built around a unified optical density pipeline. The software converts input sensor transmittance values into optical density () through rigorous mathematical transformations. Density-domain processing enables authentic physical anchoring of both the unexposed film base () and the chemical density ceiling (). Within the optical density domain, color balance adjustment corresponds to pure additive shifts across color channels, mirroring the physical behavior of colored enlarger head filtration (Printer Lights) used in traditional photographic darkrooms. NexFilm adheres strictly to verifiable algorithmic principles: the built-in library of over forty film stock names is intended exclusively for archival metadata indexing, EXIF injection, and contact sheet titling. Inversion calculations rely entirely on measured physical base densities rather than non-verifiable black-box film profile presets.
By establishing clear mathematical boundaries between transmittance, optical density, and output color space, NexFilm provides consistent, repeatable, and non-destructive inversion across single frames and entire rolls. Whether working with 135 formats, 120 medium format roll film, large format sheet film, or uncompressed linear TIFF files from drum scanners, the engine delivers predictable tone reproduction anchored directly in emulsion physics.
# Platform Matrix and Installation Packages
NexFilm is engineered using Rust and modern Web platform standards, combining low-level systems memory safety with GPU fragment shader parallel processing. The application is distributed as self-contained standalone installers for major desktop operating systems. Verify your system architecture and hardware compatibility prior to installation.
| Platform & Architecture | Installer Package Pattern | Target Hardware & OS Minimum | Backend & Acceleration Profile |
|---|---|---|---|
| Windows x64 | NexFilm.Engine_{version}_x64-setup.exe |
Windows 10 / 11 64-bit, GPU supporting WebGL 2.0 | Multi-threaded LibRaw decoding engine, Direct3D 11 WebGL2 canvas rendering |
| macOS Apple Silicon | NexFilm.Engine_{version}_aarch64.dmg |
Mac computers with Apple M1 / M2 / M3 / M4 processors, macOS 11.0 Big Sur or later | Native ARM64 architecture instructions, Metal-accelerated WebKit color rendering |
| macOS Intel | NexFilm.Engine_{version}_x64.dmg |
Mac computers with 64-bit Intel processors, macOS 10.15 Catalina or later | Native x86_64 compilation, AVX2 vector SIMD instruction acceleration |
Source code (zip) or Source code (tar.gz) files located at the bottom of the release page. Source code archives do not contain compiled runtime binaries and cannot be launched directly.For digital image formats, NexFilm natively handles modern digital camera RAW files (including Sony .ARW, Canon .CR2 / .CR3, Nikon .NEF, and Fujifilm .RAF), Imacon / Hasselblad Flextight scanner .fff archives, 16-bit linear TIFF files from specialized scanners, and standard 8-bit or 16-bit TIFF and PNG images. Note that due to current decoding limitations in the underlying LibRaw library, Nikon High Efficiency compressed formats (HE and HE*) generated by bodies such as the Nikon Z8 and Z9 are not supported directly. Users digitizing film with these cameras should record in uncompressed or lossless compressed RAW mode in-camera, or convert files to linear DNG using Adobe DNG Converter prior to ingestion.
# Security Clearances and First Launch
NexFilm is open-source software maintained by independent developers. Because the build packages are not currently signed with paid commercial certificates, operating system security frameworks may display warning dialogs during initial launch. These notices are standard operating system behavior for unsigned open-source utilities. NexFilm contains no telemetry tracking, background analytics, or network upload routines. Complete the following standard steps to authorize execution.
csrutil disable in Recovery Mode represent an unnecessary security hazard. NexFilm requires only standard per-app Gatekeeper authorization. Never disable system-wide security protections to run application software.First Launch Authorization on Windows
When launching the .exe installer, Microsoft Defender SmartScreen may display a blue dialog stating that Windows protected your PC from an unrecognized app. Follow these steps:
- Click the More info text link located within the dialog paragraph.
- The dialog will display the application package name and an unverified publisher status, revealing a button in the bottom right corner labeled Run anyway.
- Click Run anyway to proceed with the standard installation wizard.
First Launch Authorization on macOS
Mount the downloaded .dmg disk image and drag the NexFilm Engine.app bundle into your Applications folder. When opening the app for the first time, macOS Gatekeeper may block execution, reporting that the developer cannot be verified. Use either of the following standard methods:
- Finder Context Menu Method (Recommended): Open Finder, navigate to the Applications folder, and locate
NexFilm Engine. Hold the Control key and click the application icon (or right-click), then choose Open from the context menu. A confirmation prompt will appear containing an explicit Open button. Click Open to clear the quarantine flag and launch the engine. - System Settings Security Panel Method: If the initial launch was blocked, open System Settings from the Apple menu and navigate to Privacy & Security. Scroll down to the Security section, where a notice will state that NexFilm Engine was blocked from opening because it is not from an identified developer. Click Open Anyway, authenticate with your macOS user password or Touch ID, and the application will start normally.
# Storage Architecture and Read-Only Guarantee
Protecting original photographic data is a core architectural priority. NexFilm enforces a strict read-only policy for source scans. Throughout importing, base measurement, interactive WebGL preview rendering, and export processing, the software performs stream-oriented read operations on original image files. NexFilm never overwrites, renames, alters, or relocates your original RAW or TIFF scan files.
All archival metadata, frame crop coordinates, photometric base markers, color adjustments, and cached thumbnails are maintained within the standard user application support directory of your operating system.
| Operating System | Local Database & Configuration Directory | File Names and Storage Roles |
|---|---|---|
| Windows | %APPDATA%\NexFilm Engine\ |
nexfilm_user.db (Primary SQLite database storing library indices and adjustments)rolls.json (Backward-compatible roll catalog snapshot)profiles/ (Hardware calibration and flat-field profile repository) |
| macOS | ~/Library/Application Support/NexFilm Engine/ |
nexfilm_user.db (Primary SQLite database containing edits and crop data)rolls.json (Roll synchronization mirror)profiles/ (Flat-field and calibration target data) |
Because the application references original files via absolute disk paths, moving source image folders, altering parent volume names, or switching external storage drives will cause file paths to become invalid, marked by offline warnings in the library. In this event, your adjustments remain safe in the database. Select Locate File in the toolbar, navigate to the updated directory, and NexFilm will automatically reconnect the entire roll using matching filenames.
v1.0.2 to v1.1.0 or later, changes to the density pipeline weighting and channel span algorithms may cause older cached thumbnails to appear darker than expected. Open existing rolls in the Develop workspace and trigger Auto Invert once to re-render the thumbnail and refresh stored recipe parameters. Before processing large archival collections, verify your complete workflow by running a small test batch of two or three frames from import to export.# Four Core Workspace Regions at a Glance
The NexFilm user interface is structured around darkroom ergonomics, prioritizing canvas visibility and responsive parameter control. The main application window is partitioned into four functional regions:
| Interface Region | Physical Location & Components | Core Functional Responsibilities |
|---|---|---|
| Menu Bar | Top-left corner displaying the NEXFILM branding, setting, View, and Help menus |
Manages application preferences. Access setting to toggle between English and Chinese (zh-CN) or switch between dark and light interface themes. Use View for rapid module navigation, and Help to review version details. |
| Top Header & Action Bar | Centered view navigation tabs flanked by global action buttons on the right | Provides access to five primary views: Library, Develop, Rolls, Hardware Calibration, and Documentation. The permanent global action buttons—Export Roll, Import Roll, and Export—remain accessible across all views. |
| Main Workspace | Central viewport dynamically adapting to the active view selection | In Library, presents thumbnail grids with roll metadata headers. In Develop, hosts the WebGL 2.0 preview canvas on the left with responsive zoom and pan, paired with the inspector controls on the right (Histogram, Waveform, Film Area, Calibration, Printer Lights, and Curves). In Rolls, displays archived contact histories. |
| Filmstrip | Horizontal scrolling filmstrip docked at the bottom of the Develop view | Displays chronological thumbnails of all exposures in the current roll. When visible, scroll horizontally with the mouse wheel or navigate frames using the ← and → keyboard arrows. |
Understanding the physical separation of these workspaces allows for swift darkroom throughput. In the next chapter, we examine the optical requirements for film digitization to ensure your hardware setup provides optimal image data.