PoseCutGet the app

JournalCapture

One frame of tracing paper

Why the reference overlay is a decoded video frame rather than a screenshot, and why you can scrub it to any moment in the previous take.


The core of PoseCut is one idea small enough to explain in a sentence: after a take ends, its last frame stays on screen, ghosted over the live camera, so you can line the next take up against it.

Everything interesting is in what “its last frame” turned out to mean.

The screenshot version

The first implementation grabbed the preview layer as a screenshot when recording stopped. It was about fifteen lines and it worked well enough to prove the idea was worth building.

It also had two flaws that were invisible until they were not.

The preview layer is not the recording. It is a scaled, possibly cropped, display-gamut rendering of what the sensor is doing. Overlaying it on the next take meant you were aligning against something that did not quite match the file you had actually captured — close enough for a person-sized subject, not close enough for the edge of a table, which is exactly the kind of hard line a viewer uses to spot a cut.

And it could only ever be the last frame. That sounds fine until you use it.

The frame you actually want is rarely the last one

Real takes do not end on the interesting moment. They end a beat later, because you have to reach for the button, or you left a tail so you would have something to trim. The last frame of a take is usually you, slightly blurred, moving towards the camera.

Aligning the next take against that is aligning against an accident.

So the reference is now decoded from the recorded file rather than lifted off the preview, and the filmstrip above the viewfinder scrubs the whole take. Drag the amber playhead and the ghost underneath changes to that frame. You pick the moment worth matching — usually the last still, composed frame before you started packing up — and align to that instead.

The cost

Decoding arbitrary frames from a just-written video file is meaningfully more work than screenshotting a layer, and the scrub has to stay responsive while the live camera keeps running underneath it. Frames are decoded around the playhead and cached, and the strip renders at a much lower resolution than the overlay it drives.

That is the whole trick, and it is not clever. It is just the difference between a feature that demos and a feature that survives being used on a Tuesday.

Opacity

The ghost sits at a fixed opacity, and I tested a slider for it for about a week before taking it out.

Every value people chose clustered in the same narrow band. Too faint and you cannot align to it; too strong and you cannot see the live frame well enough to know where you are standing. The slider was a control that let you make the overlay worse, presented as a feature, and the app is better with one less thing on the screen.


Release status

Not in the stores yet.

PoseCut is in TestFlight while the last of the join maths gets shaken out on real footage rather than fixtures. The store listing goes up when a cut made by someone who did not build the app survives being watched twice.

Until then, the journal has the working notes, andStrungChord Labsposts when a build ships.