Add zoom path
add_zoom_pathPROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. A ZOOM THAT MOVES — THE tool for 'make the zoom follow the cursor' / 'move the zoom between buttons' / 'stay zoomed and then move to the next thing' on ANY footage, including a screen recording the user made themselves. Any request where ONE zoom should hold, travel, or visit several subjects in sequence is THIS tool — never a chain of static add_zoom calls, which cut out and back instead of moving. keyframes is a list of at least two points, each {t, rect, strength} or {t, cx, cy, strength}: t is OUTPUT-timeline seconds; rect=[x0,y0,x1,y1] FRAMES the thing to look at there (fractions of the frame from look_at's grid — the same solver as add_zoom rect, so edge subjects come out framed, and omitting strength on a rect keyframe picks the strength that fits it); cx/cy instead PIN a point ((0,0) = top-left). strength 0-4.5 interpolates between keyframes, so the frame can push in as it arrives and ease out as it leaves; to HOLD on a subject, repeat its keyframe at the hold's start and end times. The window runs from the first t to the last. NO ramp is added at the edges: give the first and last keyframe strength 0 for a seamless entry and exit (a strength-0 rect keyframe still aims where the move is going). ease: 'cubic_in_out' (default — settles at each keyframe, the right answer for stopping at buttons) or 'linear' (constant speed, for a steady scan across a wide screenshot). It re-anchors across later cuts exactly like add_zoom, so cutting elsewhere never strands it. Remove the whole move with remove_zoom_path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ease | No | ||
| purpose | No | ||
| keyframes | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| target_evidence_ids | No |