# Camera Move Desk > Named camera moves, checked. A free browser-side linter for preset video platforms, and five > lanes that pick the move, write the prompt, schedule the performance, plan the sequence and > diagnose a take that came back wrong. URL: https://camera-move-desk.skillsafe.ai/ ## What this is A web app for choosing and writing camera moves for AI video platforms that expose NAMED presets. It does not generate video and it never fires a job. It writes the prompts you take to the platform yourself. Not affiliated with or endorsed by Higgsfield or OSideMedia. The catalogue below is a release-time snapshot of the upstream skill set, not a live feed. ## The free part The checker needs no account, spends no credits, and runs entirely in your browser. Paste or write a prompt and it reports: - **Stacked moves - the One-Move Rule.** More than one primary move in a single shot. Named upstream as the single biggest cause of jitter, unwanted rotation and failed generations. Two moves are legal only as one of four sanctioned combinations, or as phases with explicit timing. - **Contradictory moves.** A push and a pull, a rise and a fall. The camera cannot do both. - **A move that cannot reach its framing.** A stated 10cm travel with a wide-to-extreme-close-up framing change is internally impossible; the model renders one side and improvises the other. - **A duration outside its shot type band**, including the one people get wrong: a flash establishing shot is 0.3-0.5s, not a full second. - **Zoom written for a physical move.** `zoom` is a lens change; a travelling camera is a dolly, track, push-in or pull-out. Crash Zoom and Dolly Zoom are catalogue presets and are exempt. - **A slow move with no stated distance**, or a distance with no stated time - either gets oversold by the model. - **FACS problems**: an action unit outside the reference (which renders as nothing at all), more than the three-to-four expression ceiling, beats that do not sum to the duration, a beat schedule under more than one camera move, and codes with no scene around them. ## The move catalogue | Move | Group | What it does | Best for | Prompt phrase | | --- | --- | --- | --- | --- | | Dolly In | Dolly | Smooth linear move toward subject | Intimacy, revelation, tension build | `Camera Dolly In toward her face` | | Dolly Out | Dolly | Smooth linear move away from subject | Isolation, departure, widening context | `Camera Dolly Out revealing the empty square` | | Dolly Left | Dolly | Lateral track to the left | Following horizontal movement | `Camera Dolly Left tracking alongside the runner` | | Dolly Right | Dolly | Lateral track to the right | Following horizontal movement | `Camera Dolly Right as the car accelerates` | | Dolly Zoom In | Dolly | Dolly forward plus zoom out at once | Vertigo, shock, realisation | `Dolly Zoom In - subject stays size as background rushes away` | | Dolly Zoom Out | Dolly | Dolly back plus zoom in at once | Overwhelm, isolation, world closing in | `Dolly Zoom Out - city swallows the figure` | | Super Dolly In | Dolly | Exaggerated fast rush toward subject | Sudden shock, urgent revelation | `Super Dolly In on the handprint on the window` | | Super Dolly Out | Dolly | Exaggerated fast pull back | Dramatic reveal of scale | `Super Dolly Out to reveal the entire burning city` | | Crane Up | Crane | Camera rises from subject level upward | Reveal scope, intimate to grand | `Crane Up from the soldier's hands to the landscape` | | Crane Down | Crane | Camera descends from a high position | Introduce a location from above, then personalise | `Crane Down from the skyline to the lone figure` | | Crane Over The Head | Crane | Overhead perspective, directly above | Vulnerability, surveillance, choreography | `Crane Over The Head - top-down view of the crowd` | | Levitation | Crane | Smooth upward float, dreamlike | Mystical, transcendence, out-of-body | `Camera Levitates from her feet to her serene face` | | 360 Orbit | Orbit | Full circle around the subject | Emotional isolation, dramatic emphasis | `360 Orbit around the boxer in the ring` | | Arc | Orbit | Semi-circular sweep around the subject | Revelations, emotional turning points | `Camera Arcs slowly around the two detectives` | | Lazy Susan | Orbit | Slow turntable rotation, subject centred | Product shots, character intros, costume reveal | `Lazy Susan around the antique watch` | | Robo Arm | Orbit | Precision mechanical arc on a complex path | Choreographed scenes, product reveals | `Robo Arm sweeps from headlights over the roof` | | Crash Zoom In | Zoom | Rapid sudden zoom toward the subject | Shock, realisation, emphasis on a detail | `Crash Zoom In on the bloody handprint` | | Crash Zoom Out | Zoom | Rapid sudden zoom away from the subject | Disconnection, sudden wider context | `Crash Zoom Out revealing the battlefield` | | FPV Drone | Follow | Fast agile drone-like weaving motion | Chase sequences, aerial action | `FPV Drone chasing the motorcycle through the warehouse` | | Action Run | Follow | Low follow shot behind a running subject | Chase, escape, pursuit | `Action Run - camera low behind him, matching his sprint` | | Handheld | Follow | Organic shaky hand-held feel | Documentary realism, intimacy, chaos | `Handheld camera jostling with the crowd` | | Head Tracking | Follow | Camera locked to the character's head movement | First-person intensity, disorientation | `Head Tracking as the boxer staggers` | | Snorricam | Follow | Camera mounted on the actor, background sways | Stress, drunkenness, heightened emotion | `Snorricam locked on her face as the room spins` | | Bullet Time | Specialty | Subject frozen or slow-motion, camera sweeps around | Action climax, impact moments | `Bullet Time around the leaping assassin` | | Dutch Angle | Specialty | Camera tilted diagonally | Psychological tension, instability, dread | `Dutch Angle as the conspirators whisper` | | Fisheye | Specialty | Wide lens distortion, curved perspective | Surreal, experimental | `Fisheye lens capturing the skateboarder's trick` | | Whip Pan | Specialty | Fast lateral blur pan | Dynamic transitions, following rapid action | `Whip Pan from the thief to the officer` | | Overhead | Specialty | Direct top-down bird's-eye | Choreography, spatial relationships | `Overhead shot of the dancers forming patterns` | ### Sanctioned simultaneous combinations These four, and no others: | Combination | Effect | Typical use | | --- | --- | --- | | Dolly In + Dutch Angle | Closing tension plus instability | Villain reveal | | Crane Up + 360 Orbit | Epic reveal of scale plus isolation | Final battle end | | FPV Drone + Crash Zoom In | Kinetic energy plus sudden focus | Chase climax | | Handheld + Action Run | Raw realism plus pursuit urgency | Escape sequence | ### Contradictions - **Dolly In with Dolly Out** - the camera cannot do both; the model picks one. - **Crane Up with Crane Down** - the camera cannot do both; the model picks one. - **Dolly Left with Dolly Right** - the camera cannot do both; the model picks one. - **Crash Zoom In with Crash Zoom Out** - the camera cannot do both; the model picks one. - **Super Dolly In with Super Dolly Out** - the camera cannot do both; the model picks one. - **Dolly Zoom In with Dolly Zoom Out** - the camera cannot do both; the model picks one. ### Duration by shot type | Shot type | Duration | Note | | --- | --- | --- | | flash establishing | 0.3-0.5s | a fraction of a second, NOT a full second | | insert | 0.3-2s | insert, wide or freeze | | dialogue | 3-7s | one mid-length dialogue line | | reaction | 5-10s | wordless reaction with an emotional arc | | emotional close-up | 8-15s | a full 5-7 beat arc | ### FACS action units | Group | Action units | | --- | --- | | Brow | AU1 Inner Brow Raiser, AU2 Outer Brow Raiser, AU4 Brow Lowerer, AU71 Brow Furrow, AU72 Brow Bulge | | Eye and lid | AU5 Upper Lid Raiser, AU7 Lid Tightener, AU41 Lid Droop, AU42 Slit Eyes, AU43 Eyes Closed, AU44 Squint, AU45 Blink, AU46 Wink | | Nose and cheek | AU6 Cheek Raiser, AU9 Nose Wrinkler, AU11 Nasolabial Deepener, AU82 Nostril Dilator, AU83 Nostril Compressor | | Lip and mouth | AU10 Upper Lip Raiser, AU12 Lip Corner Puller, AU13 Sharp Lip Puller, AU14 Dimpler, AU15 Lip Corner Depressor, AU16 Lower Lip Depressor, AU17 Chin Raiser, AU18 Lip Pucker, AU20 Lip Stretcher, AU22 Lip Funneler, AU23 Lip Tightener, AU24 Lip Pressor, AU25 Lips Part, AU26 Jaw Drop, AU27 Mouth Stretch, AU28 Lip Suck | | Head | AU51 Head Turn Left, AU52 Head Turn Right, AU53 Head Up, AU54 Head Down, AU55 Head Tilt Left, AU56 Head Tilt Right, AU57 Head Forward, AU58 Head Back | | Eye direction | AU61 Eyes Left, AU62 Eyes Right, AU63 Eyes Up, AU64 Eyes Down | ## The five lanes | Lane | `task` | What it produces | | --- | --- | --- | | Move selection | `pick` | A shortlist with the exact prompt phrases, the moves ruled out and why, one chosen move, a duration plan | | Shot prompt | `shot` | A move plan, the prompt, and the framing check run in both directions | | Performance schedule | `face` | A FACS beat schedule, the prompt, and the limits check | | Shot list | `list` | A shot list whose durations respect the bands and sum to the envelope | | Take triage | `fix` | One of five verdicts, the cause, one variable to change, and a revised prompt | ## Sources Lanes are derived from https://github.com/OSideMedia/higgsfield-ai-prompt-skill, an open-source MIT skill set of 34 sub-skills: higgsfield-camera, higgsfield-facs, higgsfield-troubleshoot, higgsfield-shotlist-director and higgsfield-motion. ## API Full docs with worked examples in eight languages: https://camera-move-desk.skillsafe.ai/api.html Base URL `https://api.skillsafe.ai/v1/app-api`. Bearer token from https://camera-move-desk.skillsafe.ai/tokens.html. Every run body must carry a `task` field naming the lane; the body **is** the input object and must not be wrapped in `{"input": ...}`. `GET /me` and `POST /estimate` are free; `POST /run` and `POST /run-stream` are metered. `move` must be a catalogue name spelled exactly. `shot_type` is what turns the duration band from a guess into a check. ## Pricing Runs are metered and priced per model - `gpt-5.6-luna`, `gpt-5.6-terra` (default) or `gpt-5.6-sol`. `POST /estimate` returns the worst-case reservation for free before anything is spent. The checker and every lane worked example cost nothing.