______    ___________________   ______  __
  / ____/   |  / ____/ ____/ ____/ | / / __ \/ /
 / /   / /| | / /_  / /_  / __/ /  |/ / / / / /
/ /___/ ___ |/ __/ / __/ / /___/ /|  / /_/ / /___
\____/_/  |_/_/   /_/   /_____/_/ |_/\____/_____/

THE FIELD MANUAL

Caffenol is a darkroom toy inspired by film development and darkroom creative processes. You load a photo, develop it into a negative in a simulated tank, then print that negative under a timed enlarger exposure, dodging and burning by hand with cut cards you physically wave over the paper. The process is slow, and every step can create a new result. The joy is in the doing, and the export is worth keeping, even if you don't get the right thing the first time.

There's no right way to use Caffenol, so bend and break the system to work for you.


Three stage workflow

STAGE 1: THE BENCH

The bench is a light table for importing your negatives or inspecting negatives you've already developed.

Loading a photo

You have three ways in.

  1. YOUR PHOTOS: the loading key on the bezel, beside the drawer face. Click it to pick a file, or drag a photo from your desktop onto any part of the bench. The key lights up to show where the drop lands.
  2. Starter rolls: sealed cassettes in the film drawer (PATIO 01, BLOOM 05, SEAWALL 20). Click one, or drag it out to the tank dock, to load and develop it.
  3. Drop straight into the tank: dragging any cassette onto the tank dock carries it there and starts the develop stage.

Accepted formats: JPEG, PNG, TIFF, and camera raw (DNG, CR2, CR3, NEF, ARW, RAF, ORF, RW2). Raw files load from their embedded preview. HEIC is not supported, and a raw with no embedded preview cannot be read, so export a JPEG in those cases.

A loaded photo is treated as a scene, hidden behind the cassette until you develop it. You do not see what is on the roll until it comes out of the tank.

Scanned negatives

Caffenol runs a quiet check on every upload. If your file looks like an already developed negative scan, it skips the tank entirely and lands on the glass, ready for the enlarger, since its chemistry happened elsewhere. If the check is unsure, your photo takes the normal path. When you know a scan slipped through as a scene, the tank offers an ALREADY A NEGATIVE escape hatch (uploads only, before you pour) that sends it straight under the lamp.

The negative shelf

Your negatives are shown here.

The shelf survives reloads. Negatives and their print sessions persist in the browser's IndexedDB, so the library you build is still there tomorrow. To keep memory honest, only one working negative is held in full at a time. The rest of the shelf keeps just its small preview until you put it on the bench.


STAGE 2: THE TANK

You build a recipe, pour, agitate (or not), and pull the film when you like. Development runs live and is cancellable at any instant.

FILM: the stock

The roll you shot on. Each stock owns its own characteristic curve (its contrast, its toe, its shoulder) and the grain that lives in its emulsion. The developer shapes that grain, but the film owns it, so any film paired with any developer gives a distinct texture. Step through the shelf with the prev and next keys, or swipe the window.

Black and white stocks, always available:

STOCK TRAIT CHARACTER
HALO 250 SOFT CINE GRAYS Cinema stock. Long sweeping toe, gentle shoulder, silvery grays that never quite reach black. Rounded, handsome grain.
PRESS 400 FORGIVING WORKHORSE The reportage all rounder. Soft shoulder holds highlights forever, takes a push with grace.
FLEX 125 SLOW, FINE GRAIN Slow and fine, a touch more spine through the mids. Classic landscape and portrait polish.
MONO-X 400 GRITTY STREET Crunchy toe drops shadows fast, gritty assertive grain that loves an edge developer.
EURO 100 FOGGY, SOFT COAT Old world budget charm. Extra base fog, coarse lovable grain, a soft coat that mottles in the pour and crazes if you shock it.
MAXI 100 SHARP, CLIPS HOT Modern tabular grain, near grainless and razor sharp, but the hard shoulder clips. Sings only when exposed generously and developed short.
ORTHO 80 BLIND TO RED The old eyes: blind to red, generous to blue. Lips, brick and rust go black, skies go empty. Fine even grain.

The color and slide stocks are a separate lab (see COLOR AND SLIDE below): MEADOW 160, CARNIVAL 400, VISTA 100, and the LANTERN 100 slide.

A note on ORTHO 80 and the color stocks: they see color, so their character only bites on a source that still carries color (your own upload, before it is baked). A negative already developed reads flat.

CHEMISTRY: the developer

Choose between two developers:

Dilution alters the mix. Cutting the mix slows it, starves local exhaustion into stronger edge effects, sharpens the grain, and tames highlight contrast.

Stop bath and wash are toggles. Skipping a stage is allowed, and the panel tells you the cost before it bakes the defect into the negative:

BATH: temperature

Hotter developer works faster and coarser, colder runs slower and thinner. The chemistry follows a time and temperature law, so the CHART readout updates as you move the dial, estimating how long this recipe needs to reach full development. The TEMPER mark is the process base: release the fader within a degree of it and the knob seats with a click. Coarse pointers get whole degree nudge keys.

Stray too far from the base and you shock the emulsion. A warm coat hit with a cold bath crazes into a vein network (reticulation). The faceplate prints the danger bands in safelight red before the alarm fires:

Hardened modern coats mostly shrug reticulation off. The soft coats (EURO 100 above all) wear it openly, which is exactly why a shocked EURO 100 is a promising accident rather than ruin.

The temperature scale follows the loaded stock's process. Black and white tempers around room temperature (base 68 F, roughly 62 to 86). The color processes run hot and narrow around their own base, which is honest to how temperamental color chemistry is.

CLOCK: time-lapse

TIME-LAPSE ×8 runs the soak at eight times speed when you are impatient. It stays reachable mid soak, because the wait is the whole point of choosing when to pull.

The soak

Pour with POUR AND START. The negative reveals under safelight as it develops. Now the two levers that matter:

Every negative also inherits a slight pour unevenness (a faint per negative mottle) and, on a seeded minority, drying marks where the final rinse pooled.

Processes

The stock decides the process:

When the negative is fixed, the amber key carries it forward: TO ENLARGER for a negative, TO LIGHT TABLE for a slide. DEVELOP AGAIN rebuilds the recipe from scratch.


STAGE 3: THE ENLARGER

You project the negative onto paper under a timed exposure, and you shape the light by hand. One rule generates dodging, burning, and soft edges: light accumulates on the paper every frame, a dodge card withholds it (that area prints lighter), a burn card's hole adds it (that area prints darker), and at stop the accumulated exposure is mapped through the paper curve into a positive.

PAPER: the stock

The box the sheet comes from: the material itself, its base tone, how deep its blacks reach, its sheen under the room lights, and the tooth of its surface.

BOX TRAIT CHARACTER
Test Print INK BLACKS, WET SHEEN The modern trade sheet. Coldest, deepest, near textureless. A print taken at its word.
Christmas Gift MATTE, VELVET GRAYS Velvet diffuse. No glare, no favorites, blacks that stop short and do not apologize.
Gallery WARM BASE, TOOTHY The gallery classic. Warm bone base, brown black depths, an air dried fiber tooth you can feel with your eyes.
Book COLD TONE, STEEL BLACKS Old bromide manners. Steel blue blacks on a cool base, matte leaning fiber with a fine visible grain.

Two more boxes live in the color lab (see below): the Postcard RA-4 color sheet and the Slide Print direct positive sheet.

GRADE: contrast

The grade is a contrast number, 0 soft to 5 hard, the multigrade ladder. Low grades open the tonal range and hold detail everywhere, high grades crush toward pure black and white. A thin, under developed negative usually wants a higher grade to find its snap. A dense, over cooked negative wants a lower one.

EASEL: rotation, slide, and blades

Rotate the sheet under the lens, plus or minus 45 degrees, with 0 detented. A tilted horizon fixed here, or a deliberate lean, is baked into the print.

Below the angle sits the baseboard, a plan view of the easel. The dashed rectangle is the picture the lens throws and it never moves. The pale rectangle is your paper. Push the paper around under the beam, up to half a frame in any direction, and let go near the middle to seat it back square. This is the slidable easel, not a crop: nothing is trimmed, the picture simply lands somewhere else on the sheet. Whatever you slide out past the edge of the beam receives no light at all and comes out as bare white paper, which is either a mistake or a border, depending on whether you meant it.

Turn the lamp on while you slide and the projection follows exactly what the paper will get. Slide during an exposure and the sheet smears, the same way turning it mid exposure does.

Four blades come in from the edges of the sheet, and they are what crops the print. Every sheet has a thin rim already, because the blades have to sit on the paper to hold it flat. Steel stops light, so whatever a blade covers stays bare white paper, and the border widens on that side.

You wind the blades on the sheet itself, out on the safelight, where the picture is big enough to aim at. They lie over the paper as four black bars, overlapping at the corners the way real steel does, and what they cover is what stays bare. Take hold of a blade anywhere along it and push it in, up to a third of the frame. A dodge or burn card lying over a blade keeps the grab, because the card is on top of the paper. The baseboard in the panel follows along as you work, so you can see where the paper sits and what the blades left without looking away from the sheet.

RESET under the baseboard puts the whole easel back: square, centered, blades wide open. It lights up only once something has moved, so it doubles as a quiet way of telling you the easel is no longer where it started.

Turn the lamp on and crop against the beam: the blades keep moving, which is what the focusing lamp is for. They hold only once the exposure is running, because from then on the blade that shaped the light has to stay where it was. The turn and the slide never hold at all, since smearing the sheet mid exposure is something you are allowed to want.

Bare paper is bare. Nothing landed on the border, so nothing shows there: no tooth, no fiber, just the stock's own white. The texture of the sheet belongs under the picture, not in an empty margin.

EXPOSURE: the window

The focometer key row runs the exposure: time down, lamp, expose or stop, time up.

Dodge and burn by hand

This is the reason the toy exists. During the exposure window you wave physical cut cards over the paper.

  1. Cut a card: ✂ DODGE or ✂ BURN starts a cut. Click or tap corners to draw a closed polygon over the paper. CLOSE CUT (or Enter, or clicking the first corner again) lands it once it has at least three corners. SCRAP IT (or Escape) abandons it.
  2. A DODGE card withholds light where you hold it (that area prints lighter). A DODGE card leaks a little light on purpose, since a total blackout looks fake.
  3. A BURN card is the inverse: a card with a hole that adds light through it (that area prints darker).
  4. Wave it: pick the card up and move it while the timer runs. Here is the crux: edge softness is bound to pointer speed. Hold still for a hard, defined edge. Wave for a feathered, gradual falloff. Faster hands feather wider. Touch input gets its own smoothing so a resting fingertip does not flutter the edge.

Every card's whole path (time, position, speed) is recorded, so a print session is reproducible and replayable. CLEAR CARDS removes them all.

On a phone the cards live in the console drawer, and the CLOSE CUT and SCRAP IT keys dock on the stage where the corners actually land.

After the print

When the sheet is developed, the room lights come up and the print is fixed. Nothing in the panel changes it now. Two actions sit on the bench beside it:

Below the keys, a quiet SCRAP IT chip states that this sheet missed. It is the judgment only: the print stays on the easel and can still be exported, and pressing the lit chip again takes it back. A scrapped sheet asks WHAT MISSED? so the answer can point at the fix.


COLOR AND SLIDE

Color is a lab that is still being tuned, so it is gated. In a local dev build it is always on. On a deployed build, add ?color to the URL to open it. When it is on, the color film stocks join the FILM shelf and the color paper boxes join the PAPER shelf, and the enlarger grows a HEAD module.

Color film

The enlarger HEAD

The head switches between two modules, and the switch is the only gateway to cross process printing.

The dichroic head is dual purpose:

Color paper

Color paper isn't particularly fun to watch, so the machine puts on its own show: the print lays in dye passes, CYAN PASS, MAGENTA PASS, YELLOW PASS, and the fix brings the depth.


ANSEL, THE DARKROOM ELDER

A small amber monitor sits in the wall at the bottom right: Ansel, the printer who came with the building. He has run this darkroom since before you were born and made most of your mistakes first. He respects the work more than the result.

He speaks when you summon him (one greeting), when you poke his face, and when your recipe or your result genuinely warrants a word: a wild temperature delta, a bold push, a blown exposure, a promising accident, a print worth the paper. On a browser's very first session he also walks you through the core loop once, one line per first time moment, and then retires that guide for good.

OFF dismisses him and leaves a CALL button, and the preference sticks per browser.


KEYBOARD AND GESTURE REFERENCE

INPUT WHAT IT DOES
Click or tap corners Place a dodge or burn card's corners
Enter Close the current cut
Escape Abandon the current cut
Click the first corner Also closes the cut
Hold HOLD TO AGITATE Agitate the tank while held
Shake the device Agitate, where motion is offered
Drag a dial window Spin a dichroic filter counter
Drag a negative Rearrange it on the light table
Click a contact sheet Lift the whole sheet to the light, and lay it down
Drag to a dock Carry a roll to the tank, a negative to the enlarger
Swipe the shelf window Step through films, papers, or grades
Backtick (`) Toggle the hidden tuning panel (power users)