Limited time — 50% off forever.Ends in 02:52:54Only 6 spots left.Claim yours →
← All posts
·dom @ luttie

Film Simulation Online — Grain, Halation, and Bloom in Your Browser

Complete film simulation — grain, halation, and bloom — is now available directly in the browser. No plugins, no DaVinci Resolve, no After Effects. Here's how it works and what each effect does.

film simulation onlinefilm simulation browsergrain halation bloom onlinefilm effects online freecinematic film simulationfilm simulation without softwareonline film look toolfilm simulation videobrowser film effectsfilm simulation free

Film simulation used to require either expensive dedicated software (Dehancer, FilmConvert) or manual node-based workflows in DaVinci Resolve. The browser wasn't a serious option — WebGL performance wasn't there, and the tools didn't exist.

That's changed. Luttie now includes grain, halation, and bloom — the three core film simulation effects — running in real-time in WebGL, directly in the browser. No installation, no plugin host, no Resolve.

This post covers what each effect does, how they work together, and the practical workflow for adding film simulation to your colour grade.

Why these three effects

Film simulation is often reduced to "adding grain" — but grain alone doesn't make digital footage look like film. A complete film look requires addressing the three main optical differences between digital and analogue capture:

Grain addresses texture. Digital capture is smooth at the pixel level. Film has physical grain structure from silver halide crystals. Grain adds the texture that makes film footage feel organic rather than clinical.

Halation addresses highlight quality. Digital highlights are clean and sharp-edged. Film highlights bleed — light reflecting inside the film base creates a warm glow that wraps around bright areas into surrounding midtones. This is the warm red-orange halo around street lights, windows, and backlit hair that viewers associate with film.

Bloom addresses highlight rendering. Old lenses and film stocks diffuse bright areas before they clip, creating a soft glow. Digital sensors clip highlights hard, creating a sharp, flat brightness ceiling. Bloom softens that ceiling.

Together, these three effects address the texture, highlight quality, and highlight rendering of film stock. Colour grading addresses the tonal and colour response. The combination of all four is what produces footage that genuinely reads as film rather than "digital with a filter."

How the effects work in Luttie

Luttie processes all three effects in real-time using WebGL shaders. Everything runs on your GPU in the browser.

Film Grain

Grain uses a hash-based noise function that generates a stable noise pattern keyed to each pixel's screen position. The key technical detail is the luminosity blend: the grain intensity is multiplied by 1 - |lum * 2 - 1|, which gives maximum intensity at lum=0.5 (midtones) and zero intensity at lum=0 (pure black) and lum=1 (pure white).

This matches real film grain behaviour. The Amount control scales the overall grain intensity. The Size control changes the spatial frequency of the noise — small values give fine grain (35mm), large values give chunky grain (medium format, push-processed).

Halation

Halation uses a threshold-based luminance detection: pixels above a certain brightness (controlled by a smoothstep function from 0.6 to 1.0) generate a warm tint blended back into the image. The warm colour is generated from the Hue control using an inline HSL-to-RGB conversion in the shader.

The Radius control shifts the lower bound of the smoothstep, effectively controlling how far into the midtones the halation bleeds. The Amount scales the blend intensity.

Bloom

Bloom detects highlights above the Threshold value using a smoothstep from threshold to 1.0. Detected highlight areas are blended toward a slightly desaturated, bright version of the original colour. The Amount controls blend strength.

Bloom is subtler than halation — it adds brightness diffusion rather than colour, which is why it reads as lens diffusion rather than film base reflection.

The practical workflow

1. Grade first, effects last

Always apply your colour grade before adding film effects. This matters because:

  • Grain applied before colour grading gets processed by your grade (contrast changes affect grain visibility, warmth adjustments tint the grain)
  • Halation responds to the graded luminance values, not the original capture — if you add halation before warming the highlights, it may not activate on the areas you want

Build your grade (curves, colour wheels, basic corrections) first, then open Film Effects.

2. Start with halation

Halation has the biggest impact on how "filmic" footage reads. Add a small amount first — Amount 15, Radius 50, Hue 10 — and see where it activates. Look for highlights in the scene: windows, skin in strong light, practical light sources. The warm glow should be subtle but visible on these areas.

If the halation is activating too broadly (affecting areas you don't want), raise the threshold by reducing Radius. If it's not reaching far enough into the scene, increase Radius.

3. Add grain

With halation set, add grain. Amount 20, Size 40 is a good starting point. Halation and grain interact — the halation glow around highlights will show grain in those areas, which is exactly how real film behaves (grain is visible in the halation halo on real film).

Adjust grain amount to taste. The goal is for the grain to feel like a property of the camera, not a filter applied afterward.

4. Add bloom last (optional)

Bloom is the subtlest of the three effects. Amount 10–15, Threshold 75 adds a barely-perceptible highlight softness. It's most useful for footage with harsh digital highlights — overly sharp specular reflections, hard-clipping windows, aggressive LED practicals.

5. Export your grade

Export the colour grade as a .cube LUT. Film effects don't export in the LUT (they're spatial effects), but the LUT captures all your colour work.

In your NLE, apply the LUT and add grain as a separate effect layer. Halation and bloom are harder to add in most NLEs — you can approximate them with glow effects, but Luttie's preview gives you an accurate reference for what you're targeting.

Combining film simulation with AI Grade

Luttie's AI Grade feature lets you describe a look in text and get three ready-to-export .cube LUTs. The workflow integrates naturally with film effects:

  1. Use AI Grade to generate a base colour look — "Kodak Vision3 warm cinematic" or "faded film, lifted blacks"
  2. Apply the look you prefer
  3. Add film effects on top — grain, halation, and bloom to complete the simulation
  4. Export the combined grade as a LUT

This is a fast way to iterate through different film simulations: generate colour variants with AI, then dial in the film texture effects manually.

What film simulation in the browser can and can't do

Can do:

  • Real-time grain, halation, and bloom preview
  • Parametric control over each effect
  • Accurate luminosity-blended grain
  • Halation hue matching for different film stocks
  • Integration with a full colour grading workflow
  • LUT export of the colour grade

Can't do (yet):

  • Per-stock physical emulsion modelling (Dehancer's approach)
  • Animated grain (randomised per-frame — currently static per-pixel)
  • Spatial halation simulation (a proper multi-pass blur would be more accurate)
  • Export film effects baked into a video file (coming — video export is on the roadmap)

The browser approach trades physical accuracy for accessibility and speed. For most video workflows, the results are indistinguishable from more complex approaches. For photographers who need to precisely match a specific film stock, dedicated tools like Dehancer are still better.

Try it

Open Luttie — film simulation is included in the 7-day free Pro trial. Load a frame from your current project, apply a colour grade, and work through grain → halation → bloom in the Film Effects section. The before/after toggle makes it easy to evaluate the cumulative effect of all three.

Film simulation in the browser is here. It's fast, it's accurate enough for production work, and it doesn't require any software beyond a web browser.

Ready to create your own LUT?

Open the free LUT editor →