Frames
Adding frames
Add frames… opens a file picker. Add folder… takes a whole folder including its subfolders, sorting files by path so a folder's frames stay together. Dragging files or a folder onto the window does the same thing.
Frames are decoded and downscaled in a background worker as soon as they are added, so the filmstrip and the Source view are populated before you run anything. The browser itself cannot decode TIFF, so lapstack decodes every format in WebAssembly rather than handing any of it to the browser.
The order in the filmstrip is the stacking order. Files sort naturally, so f2 comes
before f10 rather than after it.
Formats
| Input | Notes |
|---|---|
| PNG | Eight- and sixteen-bit |
| JPEG | Eight-bit |
| TIFF | Eight- and sixteen-bit |
| Camera raw | NEF, CR2, CR3, ARW, DNG, RAF, ORF, RW2, PEF, IIQ, 3FR and the rest of what rawler decodes |
Output keeps the input's bit depth — sixteen-bit needs PNG or TIFF, and a raw counts as sixteen-bit. Formats and metadata has the full picture.
How raws are developed
A raw is developed as shot and nothing more: black and white levels, demosaic, the white balance the camera recorded, the camera's color matrix to sRGB, the sRGB curve. The result is the same sixteen-bit RGB every other input becomes, turned the way the EXIF orientation says. A monochrome sensor gives gray.
There is no exposure or tone adjustment, deliberately. The frames of a stack are shot alike, and what the fusion needs is that they are developed alike. When the look matters, develop the stack in a raw converter first — with identical settings for every frame — and give lapstack the TIFFs.
Developing costs more than decoding: about a second per 24-megapixel frame natively across all cores, and several seconds in the browser, which develops on one thread. In the filmstrip you see the JPEG preview the camera embedded in the file; the run develops the frame properly.
If you want the stack back as a raw rather than a developed image, tick
linear DNG in the Run ▾ menu (or use -o stacked.dng). The raws are then not
developed to sRGB at all, and the result is written in the camera's own color space.
See saving.
Frames of different sizes
A frame that is not the size of frame 0 — a JPEG among the raws, a different camera mode — is resampled to frame 0's size (each axis independently, with a spline 4×4 kernel) and the run says so. Alignment takes care of what remains. A frame of the wrong aspect will be stretched, and it will be visible; that is a capture problem, not a settings problem.
Editing the frame list
The filmstrip is editable, and every edit is undoable in the sense that nothing is destroyed — excluded frames stay in the list.
| Action | How |
|---|---|
| Exclude a frame | Hover, ⊘ — or X on the selected frame |
| Include it again | Hover, ↩ — or include all in the filmstrip head |
| Remove a frame | Hover, ✕ — or Delete |
| Move a frame | Hover, ▲ ▼ — or Alt + ↑ / ↓ — or drag the thumbnail |
| Exclude or remove a range | Shift-click a frame's ⊘ or ✕ to take everything from the last one marked through that one |
| Reverse the order | reverse in the filmstrip head |
An excluded frame stays at its place in the list, dashed and dimmed. It is left out of the run, out of the batch split, out of the file-name tokens and out of the save, but it is still there to bring back.
Reverse is for a stack shot back to front. It puts frame 0 at the near end again, which matters for the stereo, rocking and 3D outputs. In a batch each stack is reversed on its own, which is what running a rail backward actually means.
Editing the frame list after a run drops the result: the result's frame indices are the list's, so they no longer mean the same thing. The status bar and the log say so when it happens. The aligned proxies stay as the thumbnails.
A stack that is in hand as part of a batch cannot be edited — choose all frames first — and the list is locked while a run or a save is in progress.
Rotate
rotate frames (the command line's --rotate 90 | 180 | 270) turns every frame clockwise
as it is decoded, for a camera that was held sideways. The thumbnails turn with the frames.
A raw is already turned by its EXIF orientation, so this is for TIFFs and JPEGs, which are not.
Draft
draft (the command line's --draft N) block-averages every frame by 2^N as it is decoded,
so the whole run happens at a fraction of the size — alignment, fusion, the depth pass,
every view and every file. The Run button reads draft ÷4 so you cannot forget it is on.
This is the single most useful control for working quickly. Five 45-megapixel raws at
--draft 2 align, fuse and run the depth pass in about four seconds, raw development
included. Use it to find your settings, then turn it off for the real run.
The crop window and the scale bar's calibration follow the frame's own pixels, so a draft's output is exactly the full run's output, shrunk.