Film Emulation Engine

A deep dive into the color science, parametric modeling, and physical simulations driving the HeliosCam film engine.

The Parametric Film Engine

Unlike basic filter apps that rely solely on baked 3D LUTs, HeliosCam's primary film engine is fully parametric. Each film stock is essentially a mathematical parameter set injected into a unified processing pipeline. This means the emulation is resolution-independent, infinitely adjustable, and mathematically composable without the banding artifacts often introduced by low-resolution LUTs.

Parametric Stock Model

ParameterDescription
EVExposure compensation (stops) applied before the tone curve.
S_globalGlobal saturation multiplier.
WWhite point anchor for the Hable tone mapping operator.
C_chromeColor-Chrome intensity, replicating Fujifilm's deep color effect which deepens highly saturated colors.
M_crosstalkA 3×3 inter-layer dye coupling matrix governing color contamination between emulsion layers.
f_R, f_G, f_BPer-channel density and contrast curves (S-curves) defining the film's tone response.
H_v(h)Hue-vs-Hue remapping curve (36-bin interpolation) driving the specific color signature.
H_s(h)Hue-vs-Saturation remapping curve, defining how specific hues are selectively saturated or muted.

Built-in Film Stocks — Parametric

HeliosCam bundles 11 highly accurate parametric film simulations modeled against popular color science profiles.

Stock NameSat (S)Chrome (C)White PointCharacter
1. PROVIA / Standard1.100.15StandardBalanced all-rounder, mild S-curve (0.04)
2. Velvia / Vivid1.300.30StandardHigh contrast/saturation, royal blue→magenta shift
3. ASTIA / Soft1.120.15StandardGentle portrait, soft S-curve
4. CLASSIC CHROME0.900.00StandardMuted color, high shadow contrast, yellow/cyan suppression
5. REALA ACE1.060.12StandardTrue-to-life high fidelity
6. PRO Neg. Hi1.040.00StandardCrisp portrait contrast
7. PRO Neg. Std0.940.00StandardFlat studio contrast, linear curve
8. CLASSIC Neg.1.050.00StandardHard print contrast, cyan shadows, unique green response
9. NOSTALGIC Neg.1.000.00StandardAmber shadow tint, soft highlight shoulder
10. ETERNA / Cinema0.780.005.2Flat cinema gamma, beautifully muted
11. ETERNA BLEACH BYPASS0.600.005.2Severe desaturation, high contrast

Inter-Layer Crosstalk Matrices

The Physics of Dye Coupling

In real photochemical film, light passes through 3 dye emulsion layers (cyan, magenta, and yellow). Because these layers sit directly on top of each other, chemical reactions in one layer partially affect the development of adjacent layers. This is known as inter-image effect or crosstalk. HeliosCam explicitly models this via 3×3 mixing matrices.

The diagonal values of the matrix represent self-contribution (e.g., Red remaining Red). Off-diagonal values dictate the cross-contamination. Notice how vividly saturated stocks like Velvia have stronger off-diagonal mixing (more inter-layer coupling) compared to flatter stocks.

PROVIA / Standard

3×3
R in
G in
B in
[
R out
 1.104900
-0.232100
 0.127300
G out
-0.016300
 0.988500
 0.027700
B out
-0.037600
-0.100800
 1.138400
]

A balanced crosstalk profile with slight primary separation.

Velvia / Vivid

3×3
R in
G in
B in
[
R out
 1.070100
-0.258300
 0.188200
G out
-0.010800
 1.007800
 0.002900
B out
-0.030900
-0.111200
 1.142100
]

High off-diagonal values resulting in vivid cross-layer coupling.

CLASSIC CHROME

3×3
R in
G in
B in
[
R out
 1.103600
-0.138100
 0.034500
G out
 0.050100
 0.897700
 0.052300
B out
 0.027000
-0.020000
 0.993000
]

Strong blue suppression and nuanced cyan blending.

CLASSIC Neg.

3×3
R in
G in
B in
[
R out
 1.012100
-0.220500
 0.208400
G out
 0.021700
 0.801700
 0.176600
B out
-0.020900
 0.145900
 0.875000
]

Aggressive matrix yielding cyan-tinted shadows and distinct greens.

ETERNA / Cinema

3×3
R in
G in
B in
[
R out
 1.041300
-0.116300
 0.075000
G out
-0.008800
 0.961800
 0.047000
B out
-0.077400
 0.027000
 1.050400
]

Subtle cross-contamination for soft, painterly cinematic tones.

ETERNA BLEACH BYPASS

3×3
R in
G in
B in
[
R out
 0.743600
 0.184800
 0.071600
G out
 0.042300
 0.917400
 0.040300
B out
 0.039700
 0.310200
 0.650100
]

Heavily compromised layer separation, simulating skipped silver removal.

3D LUT Film Stocks

For specialized cinematic profiles that fall outside parametric limits, HeliosCam supports full 3D LUT (Look-Up Table) processing using tetrahedral 33×33×33 cube interpolation.

Bundled Legacy & Motion Picture Stocks

01. Kodak Vision3 500T (30mm)
02. Kodak Vision3 250D (35mm)
03. Kodak Vision3 250D
04. 16mm Printfilm
05. 16mm Cineon
06. Fuji Pro 400H
07. Kodak Ektachrome
08. Kodak Portra 400
09. Fuji Superia 200
10. Fuji Velvia 100

Custom LUT Import: HeliosCam fully supports loading standard .cube format files (from 17³ up to 65³ dimensions) directly into the app for user-created looks.

35mm Film Grain Model

Digital sensor noise is generally Gaussian, uniform, and scales at the pixel level. True film grain is formed by irregular clumps of microscopic silver halide crystals suspended in gelatin. HeliosCam implements a physically based grain synthesis pipeline that differs from digital noise in three crucial ways.

  1. Scale and Size: Clumps span several pixels and scale naturally with image resolution, rather than clinging to a single pixel width. We model this as roughly 1000 clumps per image height.
  2. Midtone-Peaked Response: Because grain represents density, pure blacks (no exposure) and pure whites (maximum density) possess practically no visible grain structure. Grain visibility mathematically peaks in the midtones.
  3. Non-Clipping Blend: Adding or multiplying noise into bright/dark areas causes hard clipping. We use a Pegtop soft-light blend that organically wraps the texture around the underlying color.

Grain Luminance Envelope

Calculates the intensity of grain depending on the underlying luminance and the peak midtone anchor .

Pegtop Soft-Light Blend

Combines the scaled noise () with the base image () without causing harsh clipping at 0 or 255.

Engine ParameterValueDescription
GRAIN_MAX0.85Maximum intensity scalar of the grain pattern.
GRAIN_FINE0.30Fraction of high-frequency sharp texture mixed into the softer clumps.
GRAIN_CLUMPS_PER_HEIGHT1000Scale invariant defining how physical clumping appears irrespective of sensor output size.

Cinematic Halation Model

In physical film cameras, when extremely bright light hits the emulsion, some photons penetrate completely through all dye layers, bounce off the backing layer of the film strip, and re-expose the film from the bottom up. Because the bottom layer is the red-sensitive emulsion, this back-scattered light produces a distinctive, glowing red/orange halo around harsh highlights.

HeliosCam explicitly separates this phenomena into two distinct optical scatter effects that run in parallel. Both are driven by independent user controls for Bloom (veiling glare strength) and Halation (red rim toggle/strength).

AttributeBloom (Veiling Glare)Halation (Red Rim)
TintNeutral white[1.0, 0.45, 0.20] (Red-Orange)
Luma Threshold0.620.72
Spread / RadiusWide (radiusDiv = 11)Tight (radiusDiv = 25)
Blend ModeSCREENADDITIVE
Visual EffectLifts/bleaches shadows near lights, creates a dreamlike glowing atmosphere.Produces a tight, concentrated red rim directly on the edge of clipping highlights.

Screen Blend Equation (Bloom)

The screen mode lifts shadows towards white without pushing existing bright areas past the clipping point.