Spool Beta Buy Spool

Public beta · Windows

Negatives,
developed.

A minilab in a window. Spool meters the film, converts in density space, and keeps every frame in the order it came off the roll.

Buy Spool

Standalone — not a plugin · Windows 10/11 · 64-bit Intel or AMD · one .exe in a zip

Get the newsletter — new features, and macOS/Linux news.

A colour negative as it comes off the scanner, the whole frame under a heavy orange base mask
Colour negative · as scanned

One frame.
One measurement.

Point at the clear film between the frames. That sample is the base. Everything else follows from it — no sliders, no guessing at a cast.

Negative as scanned

The same frame as a negative The same frame converted by Spool: a backlit kitchen windowsill crowded with houseplants and jars, evening light through two windows
White point on the clear film. No further adjustment.

The engine

Film is not a curve
you invert.

A negative is characterised by optical density, not by brightness. Get that wrong and the cast shifts with every stop.

D = log10(1 / T)

The frame after a complement inversion: the road is neutral but the sky has gone green and the pale wall has gone pink
Complement invert Neutralised on the road surface. The road is right. The sky and the wall are not.
The same frame converted by Spool: neutral grey sky, warm cream wall, the road still neutral
Spool Density space, from linear data, anchored on the film base. Right at every brightness, not one.

Same file, same crop, same frame. The complement version is a straight 255 − pixel inversion, white-balanced on one patch — which is the best that model can do.

The library

A roll is a roll,
not a folder.

Every frame keeps its place in the strip, numbered from one within its own spool — the way a sleeve in a binder is numbered.

The spool sorter: tabs across the top for each spool with its count, over one grid of frames whose corners say which spool they are on
A hundred scans is usually three or four rolls. Click a frame's corner for the next spool, or select a run and press a number.
The library grid grouped by spool, with converted frames and untouched negatives side by side
Negatives and positives in one grid, grouped by the roll they came off.
A contact sheet of nineteen frames on one sheet of A4, numbered underneath, including the frames still negative
And onto paper, when the whole roll needs looking at at once.

The application

Four rooms.

A roll goes in at one end and comes out sorted, graded and on paper. Nothing here is a plugin to something else.

01

Spools

Every frame in the order it came off the roll. Drop in a folder and it files itself by date, by hour, by stock.

The Spools tab: filters and folders on the left, a grid of converted frames grouped by roll, and the selected frame's histogram and file data on the right

02

Lab

Point at the clear film, crop, convert. Four steps, in the order a minilab does them, for one frame or ninety.

The Lab tab: a converted night frame at full size with a histogram, tone sliders and the cyan-magenta-yellow printing controls beneath it

03

Finish

Light, colour, presence, retouch. Sixteen-bit throughout, and every control says what it does to the picture.

The Finish tab: a tiled column and green wall filling the frame, with light and colour controls down the right-hand side

04

Print

Paper is not a screen. Contact sheets, test strips and proofs, laid out to the millimetre and sent to your printer.

The Print tab: one frame cut into five vertical bands from minus one to plus one stop on a single A4 sheet

Uncommon

Things you will not
find elsewhere.

Your scans are never written to

Every stage is non-destructive and stores only its own parameters. Nothing is re-derived from its own previous output, so reopening a tool does not compound what it did last time. A small sidecar file goes next to each scan, which is what makes a folder portable.

The whole roll, one pass

Select a roll and convert it. Each frame still goes through its own stored white point and its own metering border — a batch is not one setting applied to forty pictures.

The library toolbar: 91 frames not converted, with a Go to Lab button that opens them as a batch

Tone protection

Instead of clipping past white and below black, tones compress softly into range. A hard clip collapses every bright tone onto one value and no later slider brings the differences back.

The tone protection panel: highlight protection and shadow protection sliders under a colour histogram

Test strips, on paper

One frame across a sheet in five bands, a stop apart, with the value printed on each. Contact sheets too, numbered, negatives included.

A test-strip print: one frame cut into five vertical bands labelled minus one to plus one stop

Dust and rings, no infrared

A speck has to stand clear of both a threshold and how busy that part of the picture already is. Newton's rings are interference, so they are subtracted rather than patched over.

The retouch controls: dust and scratches, and glass rings, both switched off

Where the work stands

What is waiting, what you kept, what a keeper cost. Every figure on the screen is a button that opens exactly the frames it counted.

The Home summary: frames to convert, converted but untouched, keepers, a keeper-rate ring and a bar per roll

Light, and quick with it

One executable, about 35 MB, no installer. Every slider in Finish is a WebGL2 shader, so a drag never round-trips to the engine or re-decodes the file.

Not yet

What is missing.

Named here rather than left for you to discover.

  • Tethering, and driving a scanner. Spool reads files today.
  • macOS and Linux builds. Planned, not started, no date.
  • A signed binary, so Windows stops warning about the publisher.
  • Library sync between machines, beyond the sidecar next to each scan.

Honest

Windows now.
macOS and Linux next.

Operating system
Windows 10 or 11, 64-bit Intel or AMD. Not built for Windows on ARM.
Install
One .exe in a zip. Unpack it anywhere and run it.
Files it reads
Camera raw and TIFF scans. It reads files; it does not drive a scanner, and there is no tethering.
Signing
The binary is unsigned, so Windows SmartScreen will warn you about the publisher. A certificate is not bought yet.
macOS and Linux
Planned, not started. The engine is portable; the interface is a webview and has not been built or tested there. No date.
Sync
None between machines, beyond the sidecar file written next to each scan.

Get Spool

Buy it, or wait
for macOS.

Used daily, on real rolls, still in beta. One payment on Payhip, lifetime updates, no subscription.

What it costs
Priced on Payhip — the checkout shows the current amount. One payment, no subscription.
Updates
Lifetime, for everyone who buys — not a year, not a plan. Spool checks on its own and offers to install; nothing is downloaded without asking.
What beta means here
Used daily on real rolls, and it still changes weekly. Expect rough edges in the corners you reach first, and every release written up in the version history. Spool leaves beta and becomes 1.0 once it runs on Windows, macOS and Linux — not before.
What would help
Tell me what broke, and on what file. A scan that converts badly is more useful to me than a compliment.
Platform
Windows 10 or 11, 64-bit, first. macOS and Linux are planned, with no date yet.

Newsletter

What got added, and when Spool reaches macOS or Linux. Sent when there's something to say — not on a schedule.