Intermediate9 min readEffects Library

Finger-circle reveal — framing a composite inside a gesture

A phone held up to a subject, or two fingers making an OK-circle and pointing it at something. Whatever the circle frames gets replaced with a composite. Outside the circle, the world stays untouched.

What the technique is

A character on screen brings a phone, a magnifying glass, or a hand gesture up to a subject. The framing inside that object or gesture becomes a window. The compositor swaps whatever is naturally visible through the window for a pre-rendered surface — a product screenshot, a before/after slice, a heatmap, an inset shot.

The window has to track. The four corners of the phone screen, or the elliptical area inside the finger-circle, get keyed frame by frame and the inserted surface warps to match. Light the composite so it reads as if the surface is really there.

When to use it

Any time the script wants to point at something and pull the audience’s eye to a specific surface inside an existing shot. The gesture commits the viewer to the reveal; the composite delivers it.

How Hybrig encodes it

The Finger-circle reveal workflow template in /studio drops three inputs and a compositor on the canvas: the source plate (video or still), the screenshot or surface to insert, and a brief that describes the reveal motion and the corner-tracking constraints. The Remotion compositor warps the insert to the keyed corners and bakes the composite.

The polish pass on the circle interior is optional. Local composite gets you the shot. A cloud edit pass sends only the inside-the-circle region for the one or two hero beats per spot where the inside-the-circle reveal needs to carry weight beyond what a flat composite can deliver. Run cloud polish one job at a time — metered cloud compute gets billed by the second and batching paid jobs is how budgets evaporate.

The hierarchy

Real screen recording of the inserted surface > real screenshot with subtle Ken-Burns motion > static composite framed inside a stable circle. Everything else — programmatic fake digits, AI-rendered dashboards, glowing numbers floating in midair — gets cut. See [[project_real_screenshots_over_fake_overlays]].

The render-process workflow

Five steps run in order. The chain accepts either a real camera plate or an AI-generated source, so the same workflow handles the phone-in-hand variant and the gesture-circle variant.

Step 1 — Source capture

Node: video-upload for a real camera plate; or flux-lora-still wan-i2v for an AI-generated source where the subject and gesture are rendered. In: a recorded MP4 or a prompt pair (still description plus motion brief). Out: a video plate where the phone screen reads blank or the gesture-circle interior holds a flat placeholder fill. Why: downstream masking needs a clean, low-information region to detect and the downstream composite stage needs an empty surface to paint into.

Step 2 — Mask the reveal region

Node: not yet a dedicated palette node — see open questions. Today the four corners of the phone screen, or the bounding circle of the gesture, are hand-keyed at the start and end of the shot and tweened by the Remotion composition. In: the source plate plus per-frame corner / bounding-circle coordinates. Out: a per-frame alpha mask describing which pixels are inside the reveal region and which are outside. Why: the composite stage needs to know exactly where the inserted surface can paint and where the underlying plate must remain untouched. No mask, no composite.

Step 3 — Composite the inserted surface inside the mask

Node: remotion-timeline. In: the source plate, the per-frame mask, and an image or video of the inserted surface (product screenshot, before/after still, dashboard recording, callout card). Out: a finished composite video where the inside-the-mask pixels render from the inserted surface warped to the mask perspective, and the outside-the-mask pixels render from the original plate unchanged. Why: Remotion owns Hybrig’s composition layer. Per [[project_real_screenshots_over_fake_overlays]] the inserted surface is a real export from the product, never a diffusion hallucination — the composite stage is what enforces that rule.

Step 4 — Optional cloud polish on the interior

Node: not yet a dedicated palette node — see open questions. Handoff today is a manual cloud edit on the rendered composite. In: the composite from step 3 plus the inside-the-mask region as a frame range. Out: a polished composite where the inside-the-mask pixels have been refined by a cloud edit pass and the outside-the-mask pixels are untouched. Why: reserved for hero beats where the inside-the-circle reveal carries more weight than a flat composite can deliver. Per [[project_cloud_polish_by_beat_type]] this pass is metered cloud work, never run on every shot — one or two beats per spot, never the whole frame, only the interior. Run one job at a time — metered cloud compute gets billed by the second and batching paid jobs is how budgets evaporate.

Step 5 — Encode and emit

Node: video-output. In: the finished composite from step 3 (or step 4 if polish ran). Out: an MP4 on disk, tracked in /operations and surfaced in the gallery. Why: terminal node. Every Hybrig graph ends here so the file is registered with the operations dashboard.

Studio workflow shortcut

The finger-circle reveal template is not yet a one-click entry in the /studio palette — the masking + composite stage is held together today by Remotion code, not by a single drag-and-drop node. Once the mask and perspective-warp nodes land (see open questions), the template will live at /studio?template=finger-circle-reveal and drop the five-node chain above onto the canvas in one click. Until then, assemble the chain by hand using the node types named in section 5.

Example use cases

  • Product launches. Designer holds a phone up to a product on a shelf. The phone screen reveals the spec sheet, the price, the limited-run badge.
  • Real estate listings. Agent on a walking tour points a finger-circle at a feature — the kitchen, the view, the lot line — and the circle reveals a callout overlay or a comparable-sale data card.
  • Education and explainers. Instructor in front of a whiteboard or diagram makes a circle gesture and the circle pulls a labeled close-up of the highlighted component into the frame.
  • Roofing and home services. Contractor lifts a phone toward a roof; the phone reveals the property-score dashboard, the heatmap, or the territory map.

Open questions

  • No dedicated mask / perspective-warp node lives in the Studio palette today (templates.ts has no region-mask or perspective-warp entries). Step 2 of the render-process workflow runs inside Remotion code via hand-keyed corner coordinates. When the palette node lands with circle, rounded-rectangle, and four-corner-quad shape primitives, the chain can be wired entirely from the palette.
  • No region-polish cloud-edit node lives in the palette today. Step 4 is a manual cloud handoff. When the polish node lands, the workflow template will wire it in as an optional branch off step 3.
  • Auto-tracking the finger-circle frame to frame is a hand task today. A future hand-detect pass could feed the bounding-circle coordinates into the mask node automatically.