@nodaro/prompts 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/index.cjs +9861 -1414
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +209 -10
  4. package/dist/index.d.ts +209 -10
  5. package/dist/index.js +9199 -765
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/adult-only-ratchet.test.ts +18 -1
  9. package/src/__tests__/assemble-suno-input.test.ts +14 -1
  10. package/src/__tests__/character-motion-docs-example.test.ts +26 -0
  11. package/src/__tests__/character-motion-timing-catalogs.test.ts +76 -0
  12. package/src/__tests__/character-motion.test.ts +207 -0
  13. package/src/__tests__/fixtures/parameter-hint-golden.json +137 -1
  14. package/src/__tests__/hint-join.test.ts +57 -0
  15. package/src/__tests__/parameter-hint-mode.test.ts +28 -0
  16. package/src/__tests__/parameter-prompt-hint.test.ts +159 -0
  17. package/src/__tests__/parameter-registry-sync.test.ts +2 -0
  18. package/src/__tests__/picker-analyzer-registry.test.ts +1 -1
  19. package/src/__tests__/sound-aggregator.test.ts +1 -1
  20. package/src/__tests__/transition-timing-catalogs.test.ts +1 -1
  21. package/src/__tests__/video-reference-features.test.ts +10 -1
  22. package/src/age-floor.ts +1 -1
  23. package/src/assemble-suno-input.ts +3 -2
  24. package/src/camera-motions.ts +44 -42
  25. package/src/character-motion/animals-pets.ts +89 -0
  26. package/src/character-motion/athletic-stunts.ts +218 -0
  27. package/src/character-motion/camera-interaction.ts +137 -0
  28. package/src/character-motion/combat-weapons.ts +206 -0
  29. package/src/character-motion/dance.ts +173 -0
  30. package/src/character-motion/entrances-exits.ts +113 -0
  31. package/src/character-motion/evasive-falls.ts +134 -0
  32. package/src/character-motion/everyday-actions.ts +278 -0
  33. package/src/character-motion/face-expression.ts +182 -0
  34. package/src/character-motion/gestures.ts +308 -0
  35. package/src/character-motion/head-gestures.ts +98 -0
  36. package/src/character-motion/idle-ambient.ts +128 -0
  37. package/src/character-motion/posture-shifts.ts +143 -0
  38. package/src/character-motion/runway.ts +101 -0
  39. package/src/character-motion/stage-performance.ts +131 -0
  40. package/src/character-motion/turns-looks.ts +116 -0
  41. package/src/character-motion/two-person.ts +233 -0
  42. package/src/character-motion/types.ts +42 -0
  43. package/src/character-motion/unnatural-horror.ts +95 -0
  44. package/src/character-motion/vehicles-mounts.ts +101 -0
  45. package/src/character-motion/walks-runs.ts +125 -0
  46. package/src/character-motion.ts +286 -0
  47. package/src/factory-presets/music.ts +35 -35
  48. package/src/hint-join.ts +26 -0
  49. package/src/index.ts +2 -0
  50. package/src/parameter-prompt-hint.ts +67 -1
  51. package/src/picker-analyzer-registry.ts +9 -5
  52. package/src/picker-catalogs.ts +24 -0
  53. package/src/picker-wiring.ts +2 -0
  54. package/src/prompt-wizard-categories.ts +9 -5
  55. package/src/provider-prompt-doctrine.ts +1 -1
  56. package/src/sound-aggregator.ts +1 -1
@@ -0,0 +1,89 @@
1
+ import type { CharacterMotion } from "./types.js"
2
+
3
+ /** Animals & Pets — 28 entries. Category id `animals-pets`. */
4
+ export const ANIMALS_PETS_MOTIONS: ReadonlyArray<CharacterMotion> = [
5
+ { id: "pet-a-dog", label: "Pet a Dog", category: "animals-pets", description: "Flat hand strokes over the dog's skull and neck",
6
+ promptHint: "the subject lowers an open hand onto a dog's head, draws the flat palm back over the skull to the base of the neck, lifts the hand away and repeats the stroke",
7
+ term: "pets a dog on the head" },
8
+ { id: "scratch-behind-ears", label: "Scratch Behind Ears", category: "animals-pets", description: "Fingertips work in small circles behind an ear",
9
+ promptHint: "the subject reaches to the side of an animal's head and works curled fingertips in small circles behind one ear, the wrist rocking, the other hand resting under the muzzle",
10
+ term: "scratches behind the ears" },
11
+ { id: "ruffle-dog-fur", label: "Ruffle Dog Fur", category: "animals-pets", description: "Fingers scrub through the thick fur at the neck",
12
+ promptHint: "the subject sinks the fingers deep into the thick fur at a dog's neck and scrubs them briskly back and forth through the coat, elbows pumping, then opens the fingers and lifts the hands away",
13
+ term: "ruffles a dog's fur with both hands" },
14
+ { id: "scoop-up-pet", label: "Scoop Up Pet", category: "animals-pets", description: "Bends, slides both hands under, lifts to the chest",
15
+ promptHint: "the subject bends at the knees, slides one hand under a small pet's chest and the other under its hindquarters, and straightens upright, drawing the animal in against the subject's chest",
16
+ term: "scoops up a small pet" },
17
+ { id: "offer-hand-to-sniff", label: "Offer Hand to Sniff", category: "animals-pets", description: "Arm extends, knuckles down, hand held still",
18
+ promptHint: "the subject extends one arm forward at waist height with the fingers curled and the knuckles down, stops the hand short of the animal and holds it motionless, shoulders loose",
19
+ term: "holds out a hand to be sniffed" },
20
+ { id: "offer-a-treat", label: "Offer a Treat", category: "animals-pets", description: "Flat open palm held out at arm length",
21
+ promptHint: "the subject brings a treat out of a pocket, flattens the palm with the fingers pressed straight, extends the arm forward at waist height and holds the hand steady while a dog lips the treat off the open palm",
22
+ term: "offers a treat on an open palm" },
23
+ { id: "get-pulled-by-leash", label: "Get Pulled by Leash", category: "animals-pets", description: "Leash snaps taut and drags the arm forward",
24
+ promptHint: "the subject is yanked forward as the leash snaps taut and stumbles a step with one shoulder dragged ahead of the torso, then leans the weight back and digs the heels in",
25
+ term: "gets pulled along by the leash" },
26
+ { id: "reel-in-leash", label: "Reel In Leash", category: "animals-pets", description: "Hand over hand shortens the leash",
27
+ promptHint: "the subject gathers the leash hand over hand, each fist closing on the line and drawing it back to the hip until the slack is gone, the elbow tucked tight against the ribs",
28
+ term: "reels in the leash hand over hand" },
29
+ { id: "throw-ball-for-dog", label: "Throw Ball for Dog", category: "animals-pets", description: "Overhand wind-up, release, follow-through",
30
+ promptHint: "the subject cocks the throwing arm back past the shoulder, steps onto the front foot, whips the arm forward and releases a ball, the hand following through down across the opposite hip",
31
+ term: "throws a ball for a dog" },
32
+ { id: "kneel-to-greet", label: "Kneel to Greet", category: "animals-pets", description: "Drops to one knee and opens both arms",
33
+ promptHint: "the subject drops onto one knee, spreads both arms wide and leans the chest forward, closing both hands around a dog's shoulders and rocking back slightly under the weight",
34
+ term: "kneels down to greet a dog" },
35
+ { id: "signal-dog-to-sit", label: "Signal Dog to Sit", category: "animals-pets", description: "Flat palm raised, then pressed down and held",
36
+ promptHint: "the subject raises one flat palm to chest height, holds it still for a beat, and presses the hand down toward the ground in a firm level push, freezing it there",
37
+ term: "signals a dog to sit" },
38
+ { id: "call-dog-over", label: "Call Dog Over", category: "animals-pets", description: "Slaps thighs, whistles, crouches with arms open",
39
+ promptHint: "the subject slaps both palms against the thighs twice, cups one hand beside the mouth to whistle, and drops into a crouch with the arms spread open and waiting",
40
+ term: "calls a dog over" },
41
+ { id: "cuddle-pet-on-lap", label: "Cuddle Pet on Lap", category: "animals-pets", description: "Curls over a pet on the lap and strokes its back",
42
+ promptHint: "the subject curls the shoulders forward over a pet settled across the lap, runs one hand in long strokes down its back and lets the chin drop toward it",
43
+ term: "cuddles a pet on the lap" },
44
+ { id: "hold-cat-to-chest", label: "Hold Cat to Chest", category: "animals-pets", description: "Gathers a cat up against the sternum",
45
+ promptHint: "the subject gathers a cat up against the chest, one forearm braced under its hindquarters and the other hand flat along its back, and lowers the chin toward its head",
46
+ term: "holds a cat against the chest" },
47
+ { id: "lift-cat-up", label: "Lift Cat Up", category: "animals-pets", description: "Chest and hindquarters supported, lifted to eye level",
48
+ promptHint: "the subject slides one hand under a cat's chest just behind the front legs and the other under its hindquarters, lifts it up to eye level as the arms extend, holds it there a beat before drawing it back in against the chest",
49
+ term: "lifts a cat up to eye level" },
50
+ { id: "lift-puppy-to-face", label: "Lift Puppy to Face", category: "animals-pets", description: "Raises a puppy up nose to nose",
51
+ promptHint: "the subject raises a puppy in both hands from lap height up to eye level, lifts the chin and leans in until the two are nose to nose, then lowers the puppy back down against the subject's chest",
52
+ term: "holds a puppy up to the face" },
53
+ { id: "let-bird-perch", label: "Let Bird Perch", category: "animals-pets", description: "Index finger held out level and steady",
54
+ promptHint: "the subject holds one index finger out level in front of the chest and locks the elbow against the ribs to keep the hand from shaking, lifting the whole arm upward as a bird steps onto the finger",
55
+ term: "holds out a finger for a bird" },
56
+ { id: "feed-the-ducks", label: "Feed the Ducks", category: "animals-pets", description: "Breaks off pieces and tosses them underhand",
57
+ promptHint: "the subject reaches into a bag, pinches off small pieces and flicks them out underhand one after another with a loose wrist, stepping back a pace between tosses",
58
+ term: "feeds the ducks" },
59
+ { id: "stroke-horse-neck", label: "Stroke Horse Neck", category: "animals-pets", description: "Long flat-palm sweeps down the neck",
60
+ promptHint: "the subject lays a flat palm high on a horse's neck and sweeps it down the length of the crest in long full strokes, the other hand resting at the horse's shoulder",
61
+ term: "strokes a horse's neck" },
62
+ { id: "brush-the-horse", label: "Brush the Horse", category: "animals-pets", description: "Long brush strokes along the lie of the coat",
63
+ promptHint: "the subject presses a brush to a horse's flank and pulls it in long strokes along the lie of the coat, the free hand steadying the horse ahead of each pass, the shoulder swinging with the motion",
64
+ term: "brushes a horse's coat" },
65
+ { id: "pat-horse-flank", label: "Pat Horse Flank", category: "animals-pets", description: "Two firm open-palm pats, then rests the hand",
66
+ promptHint: "the subject brings a flat hand in to pat a horse's flank twice with a firm open palm, then leaves the hand resting there and leans a little weight onto it",
67
+ term: "pats a horse on the flank" },
68
+ { id: "mount-the-horse", label: "Mount the Horse", category: "animals-pets", description: "Foot in the stirrup, swings the leg over",
69
+ promptHint: "the subject sets one foot into the stirrup, grips the saddle with both hands, springs off the ground and swings the trailing leg over, then settles down and finds the other stirrup",
70
+ term: "mounts a horse" },
71
+ { id: "back-away-slowly", label: "Back Away Slowly", category: "animals-pets", description: "Small heel-first steps back, palms raised",
72
+ promptHint: "the subject shifts the weight onto the back foot and takes small heel-first steps backward, palms raised open at chest height, the torso staying square and the gaze fixed forward",
73
+ term: "backs away slowly from an animal" },
74
+ { id: "let-it-approach", label: "Let It Approach", category: "animals-pets", description: "Goes completely still and waits it out",
75
+ promptHint: "the subject stops mid-step and goes completely still, arms hanging loose at the sides, the breathing shallow so the chest barely moves, only the eyes tracking the animal",
76
+ term: "freezes as an animal comes near" },
77
+ { id: "crouch-to-photograph", label: "Crouch to Photograph", category: "animals-pets", description: "Drops low and frames the animal with a phone",
78
+ promptHint: "the subject drops into a low crouch, braces the elbows on the knees and lifts a phone in both hands up in front of the face, holding dead still before tapping the screen with a thumb",
79
+ term: "crouches to photograph an animal" },
80
+ { id: "tug-the-toy", label: "Tug the Toy", category: "animals-pets", description: "Both fists on a rope toy, leaning back and pulling",
81
+ promptHint: "the subject grips a rope toy in both fists, leans the torso back against the pull and swings the toy side to side in short jerks before stepping in to let the tension go slack",
82
+ term: "tugs back and forth on a rope toy" },
83
+ { id: "wipe-muddy-paws", label: "Wipe Muddy Paws", category: "animals-pets", description: "Kneels and towels one paw at a time",
84
+ promptHint: "the subject kneels on one knee, lifts a dog's paw into a cupped hand, wraps a towel around it and rubs it clean, sets it back down and reaches for the next one",
85
+ term: "wipes a dog's muddy paws" },
86
+ { id: "brace-for-jump", label: "Brace for Jump", category: "animals-pets", description: "Plants the back foot to absorb a dog jumping up",
87
+ promptHint: "the subject plants the back foot and drops the pelvis to take a dog's weight against the chest, both hands rising to catch its shoulders, the torso rocking back then steadying",
88
+ term: "braces as a dog jumps up" },
89
+ ]
@@ -0,0 +1,218 @@
1
+ import type { CharacterMotion } from "./types.js"
2
+
3
+ /** Athletic & Stunts — 71 entries. Category id `athletic-stunts`. */
4
+ export const ATHLETIC_STUNTS_MOTIONS: ReadonlyArray<CharacterMotion> = [
5
+ { id: "vertical-jump", label: "Vertical Jump", category: "athletic-stunts", description: "Crouch, drive straight up, land soft on bent knees",
6
+ promptHint: "the subject sinks into a quarter squat with arms swung back, drives straight up off both feet with arms reaching overhead, then lands softly on bent knees",
7
+ term: "jump straight up and land" },
8
+ { id: "leap-across-gap", label: "Leap Across Gap", category: "athletic-stunts", description: "Running takeoff, legs split in flight, far-side landing",
9
+ promptHint: "the subject takes running strides toward an edge, plants one foot at the lip and drives off it, sails forward with legs split and arms reaching, then lands on the far side and absorbs on bent knees",
10
+ term: "leap across a gap" },
11
+ { id: "box-jump", label: "Box Jump", category: "athletic-stunts", description: "Two-foot jump up onto a box, stand tall on top",
12
+ promptHint: "the subject faces a box, dips into a half squat with arms back, jumps from both feet swinging the arms forward, lands flat-footed on top with soft knees, then stands tall",
13
+ term: "jump up onto a box" },
14
+ { id: "precision-jump", label: "Precision Jump", category: "athletic-stunts", description: "Standing jump landing balanced on a narrow rail",
15
+ promptHint: "the subject stands with toes at an edge, swings both arms back and jumps from both feet, draws the knees up in flight, then lands on the balls of the feet on a narrow rail and holds balance",
16
+ term: "precision-jump onto a narrow rail" },
17
+ { id: "backflip", label: "Backflip", category: "athletic-stunts", description: "Standing backward flip, tucked, landed on both feet",
18
+ promptHint: "the subject swings the arms up and jumps straight off both feet, tucks the knees to the chest while rotating backward through a full flip, then opens up and lands on both feet",
19
+ term: "backflip from standing" },
20
+ { id: "front-flip", label: "Front Flip", category: "athletic-stunts", description: "Two-step punch into a forward flip, landed",
21
+ promptHint: "the subject takes two steps, punches off both feet, tucks the chin and knees while rotating forward through a full flip, then extends and lands on both feet with knees bent",
22
+ term: "front-flip from a two-step run" },
23
+ { id: "cartwheel", label: "Cartwheel", category: "athletic-stunts", description: "Hand-hand-foot-foot sideways wheel",
24
+ promptHint: "the subject lunges sideways, plants one hand then the other on the ground with arms locked, swings the legs over the top in a straight line like a wheel, and lands one foot then the other",
25
+ term: "cartwheel sideways" },
26
+ { id: "round-off", label: "Round-off", category: "athletic-stunts", description: "Cartwheel that snaps both feet down, facing back",
27
+ promptHint: "the subject takes a hurdle step into a cartwheel, plants both hands, snaps the legs together at the top of the rotation, and punches both feet down together to land facing back the way they came",
28
+ term: "hurdle into a round-off and snap down" },
29
+ { id: "vault-over-obstacle", label: "Vault Over Obstacle", category: "athletic-stunts", description: "Parkour speed vault, one hand on top, legs swung over",
30
+ promptHint: "the subject runs at a waist-high obstacle, plants one hand on top and swings both legs over to the side of the planted arm, clears the top, then lands on the far side and keeps running",
31
+ term: "vault over an obstacle" },
32
+ { id: "wall-run", label: "Wall Run", category: "athletic-stunts", description: "Two or three driving steps up a wall, then push off",
33
+ promptHint: "the subject sprints at a wall at an angle, plants one foot high on the surface and drives up it for two or three steps leaning into the wall, then pushes off and drops back down",
34
+ term: "run up a wall and push off" },
35
+ { id: "baseball-slide", label: "Baseball Slide", category: "athletic-stunts", description: "Sprint, drop onto a hip, feet-first slide to the base",
36
+ promptHint: "the subject sprints toward a base, drops onto one hip with the lead leg extended and the other knee bent under it, slides feet first with the arms raised, and stops with the lead foot against the base",
37
+ term: "slide feet-first into a base" },
38
+ { id: "dive-roll", label: "Dive Roll", category: "athletic-stunts", description: "Dive over a low obstacle into a roll, come up running",
39
+ promptHint: "the subject runs at a low obstacle, dives headlong over it with arms stretched forward, tucks the chin and takes the landing on the hands and upper back, rolls forward along the spine, and comes up onto the feet running",
40
+ term: "dive over an obstacle into a roll" },
41
+ { id: "superhero-landing", label: "Superhero Landing", category: "athletic-stunts", description: "Drop into a knee-and-fist three-point crouch, then rise",
42
+ promptHint: "the subject drops from height and lands in a deep crouch with one knee and one fist striking the ground, the other arm flung out to the side and head down, then lifts the head and rises to standing",
43
+ term: "land in a three-point superhero crouch" },
44
+ { id: "sprint-start", label: "Sprint Start", category: "athletic-stunts", description: "Set in the blocks, drive out low, open into full stride",
45
+ promptHint: "the subject crouches in starting blocks with fingertips on the line, raises the pelvis into the set position, then drives forward off the front foot in a low lean and accelerates into full stride",
46
+ term: "drive out of the starting blocks" },
47
+ { id: "skid-to-stop", label: "Skid to a Stop", category: "athletic-stunts", description: "Full run braked into a heel-skid dead stop",
48
+ promptHint: "the subject arrives at a full run, plants the feet wide and drops the pelvis while leaning back, skids forward with heels braking and arms out for balance, then settles to a dead stop upright",
49
+ term: "skid to a stop" },
50
+ { id: "hurdle-jump", label: "Hurdle Jump", category: "athletic-stunts", description: "Clear a hurdle mid-sprint, lead leg over, trail leg flat",
51
+ promptHint: "the subject sprints toward a hurdle, drives the lead knee up and extends that leg over the bar while the trail leg folds flat out to the side, snaps the lead foot down, and continues sprinting",
52
+ term: "hurdle a barrier mid-sprint" },
53
+ { id: "lean-across-finish-line", label: "Lean Across Finish Line", category: "athletic-stunts", description: "Final strides, chest thrown forward through the tape",
54
+ promptHint: "the subject sprints the final strides toward a finish line, throws the chest forward and drops the head with the arms swept back behind the body to break the tape, then straightens up and slows to a jog",
55
+ term: "lean across the finish line" },
56
+ { id: "run-celebrating-arms-out", label: "Run Celebrating Arms Out", category: "athletic-stunts", description: "Goal celebration run, arms spread wide, head back",
57
+ promptHint: "the subject breaks into a run with both arms spread wide like wings, head tilted back and mouth open in a shout, then slides to a stop on the knees with the arms still outstretched",
58
+ term: "run celebrating with arms spread wide" },
59
+ { id: "soccer-dribble", label: "Soccer Dribble", category: "athletic-stunts", description: "Close-control dribble, feints, and a cut inside",
60
+ promptHint: "the subject jogs forward tapping a soccer ball ahead with the inside of alternating feet, drops the shoulder in a feint one way, then cuts the ball the other way with the outside of the foot and accelerates after it",
61
+ term: "dribble a soccer ball with a feint" },
62
+ { id: "kick-ball", label: "Kick a Ball", category: "athletic-stunts", description: "Plant, swing through, strike with the instep, follow through",
63
+ promptHint: "the subject takes two approach steps to a ball on the ground, plants the support foot beside it, swings the kicking leg through with the pelvis rotating, strikes with the instep, and follows through with the leg rising",
64
+ term: "kick a ball with the instep" },
65
+ { id: "header", label: "Header", category: "athletic-stunts", description: "Jump, arch back, snap the forehead through the ball",
66
+ promptHint: "the subject tracks a ball in the air, jumps off one foot with the arms driving up, arches the back and pulls the head behind the shoulders, then snaps the torso forward to strike the ball with the forehead",
67
+ term: "head the ball with the forehead" },
68
+ { id: "bicycle-kick", label: "Bicycle Kick", category: "athletic-stunts", description: "Airborne overhead scissor kick, landing on the back",
69
+ promptHint: "the subject faces away from the goal, leaps backward off one leg and swings the other leg up, then scissors the takeoff leg up and over it to strike the ball overhead, and lands on the back and shoulders",
70
+ term: "bicycle-kick the ball overhead" },
71
+ { id: "goalkeeper-dive-save", label: "Goalkeeper Dive Save", category: "athletic-stunts", description: "Set stance, explode sideways, full-length dive, ball held",
72
+ promptHint: "the subject sets in a ready crouch with hands out, pushes off the near foot into a full-length sideways dive, stretches both arms to catch the ball in both hands, and lands on the side clutching it to the chest",
73
+ term: "dive full-length for a save" },
74
+ { id: "throw-ball", label: "Throw a Ball", category: "athletic-stunts", description: "Overhand throw with stride, hip turn, and follow-through",
75
+ promptHint: "the subject steps back with the ball cocked behind the head, strides onto the front foot, rotates the pelvis and shoulders, whips the arm through and releases the ball, and follows through across the body",
76
+ term: "throw a ball overhand" },
77
+ { id: "catch-ball", label: "Catch a Ball", category: "athletic-stunts", description: "Track, reach with both hands, absorb into the chest",
78
+ promptHint: "the subject tracks an incoming ball with the eyes, steps toward it with both hands raised and fingers spread, absorbs the ball by pulling the hands to the chest, then holds it secure",
79
+ term: "catch a ball two-handed" },
80
+ { id: "baseball-pitch", label: "Baseball Pitch", category: "athletic-stunts", description: "Wind-up, high leg kick, stride, whip the arm through",
81
+ promptHint: "the subject stands side-on with the ball in the glove, lifts the front knee high in a wind-up, strides toward the plate, whips the throwing arm over the top to release, and follows through with the back leg swinging around",
82
+ term: "wind up and pitch a baseball" },
83
+ { id: "swing-bat", label: "Swing a Bat", category: "athletic-stunts", description: "Side-on stride, hip rotation, bat through the zone",
84
+ promptHint: "the subject stands side-on with the bat cocked over the back shoulder, strides onto the front foot, rotates the pelvis then the shoulders, whips the bat through the strike zone, and follows through over the shoulder",
85
+ term: "swing a baseball bat" },
86
+ { id: "golf-swing", label: "Golf Swing", category: "athletic-stunts", description: "Backswing over the shoulder, unwind, high finish",
87
+ promptHint: "the subject addresses the ball in a bent-over stance, draws the club back in a wide arc over the shoulder, unwinds the pelvis and swings down through the ball, and finishes with the chest facing the target, club high",
88
+ term: "swing a golf club through the ball" },
89
+ { id: "tennis-serve", label: "Tennis Serve", category: "athletic-stunts", description: "Toss, knee bend, spring up, snap the racket over",
90
+ promptHint: "the subject tosses the ball up with the front arm while drawing the racket back, bends the knees, springs upward, snaps the racket over the top of the ball, and lands forward on the front foot",
91
+ term: "serve a tennis ball" },
92
+ { id: "tennis-forehand", label: "Tennis Forehand", category: "athletic-stunts", description: "Split step, racket back, swing low to high, follow through",
93
+ promptHint: "the subject split-steps and turns the shoulders sideways with the racket drawn back, steps into the ball with the front foot, swings the racket low to high through contact, and follows through with the racket finishing over the opposite shoulder",
94
+ term: "hit a tennis forehand" },
95
+ { id: "volleyball-spike", label: "Volleyball Spike", category: "athletic-stunts", description: "Three-step approach, two-foot jump, arm swing over the net",
96
+ promptHint: "the subject takes a three-step approach to the net with arms swinging back, jumps off both feet with both arms driving up, draws the hitting elbow back high, and snaps the open hand down over the ball at the peak",
97
+ term: "spike a volleyball over the net" },
98
+ { id: "basketball-dribble", label: "Basketball Dribble", category: "athletic-stunts", description: "Low dribble with a crossover while stepping sideways",
99
+ promptHint: "the subject crouches low with knees bent, bounces a basketball with one hand at hip height, crosses it over to the other hand in front of the body, and keeps dribbling while stepping sideways",
100
+ term: "dribble a basketball with a crossover" },
101
+ { id: "layup", label: "Layup", category: "athletic-stunts", description: "Two-step drive and one-hand lay off the backboard",
102
+ promptHint: "the subject dribbles toward the basket, gathers the ball in both hands, takes two long steps, drives up off the inside foot with the opposite knee lifting, and lays the ball off the backboard with one hand",
103
+ term: "drive in for a layup" },
104
+ { id: "slam-dunk", label: "Slam Dunk", category: "athletic-stunts", description: "Two-foot rise and slam through the hoop, hang, drop",
105
+ promptHint: "the subject drives toward the rim with the ball, jumps off both feet, rises with the ball raised above the head, slams it down through the hoop, and hangs on the rim before dropping to the floor",
106
+ term: "slam dunk the ball" },
107
+ { id: "free-throw", label: "Free Throw", category: "athletic-stunts", description: "Set at the line, dip, extend, wrist-flick release",
108
+ promptHint: "the subject stands at the line holding the ball at the waist, bends the knees, raises the ball to the forehead with the elbow under it, extends the legs and arm together, and flicks the wrist to release",
109
+ term: "shoot a free throw" },
110
+ { id: "shadowbox", label: "Shadowbox", category: "athletic-stunts", description: "Bounce on the toes, throw combos at the air, slip and weave",
111
+ promptHint: "the subject bounces on the balls of the feet in a boxing guard, throws a jab-cross-hook combination at the air with the pelvis turning into each punch, slips the head to one side, and resets with a short shuffle step",
112
+ term: "shadowbox with combos and slips" },
113
+ { id: "punch-heavy-bag", label: "Punch Heavy Bag", category: "athletic-stunts", description: "Guard up, jab-cross into the bag, hook, step around",
114
+ promptHint: "the subject squares up to a heavy bag in a boxing guard, fires a jab and a cross into it with the rear hip turning through, digs a hook into its side as it swings back, and resets",
115
+ term: "punch a heavy bag" },
116
+ { id: "push-up", label: "Push-up", category: "athletic-stunts", description: "Plank, chest to the floor, press back to lockout",
117
+ promptHint: "the subject starts in a straight-arm plank with hands under the shoulders, lowers the chest toward the floor by bending the elbows while keeping the body rigid, then presses back up to full extension",
118
+ term: "lower into a push-up and press back up" },
119
+ { id: "plank", label: "Plank", category: "athletic-stunts", description: "Drop to the forearms, body rigid, hold, then rest",
120
+ promptHint: "the subject drops from kneeling onto the forearms with elbows under the shoulders, extends both legs back onto the toes so the body forms one rigid line, holds the position with the pelvis level, then lowers the knees to rest",
121
+ term: "drop into a plank and hold" },
122
+ { id: "sit-up-crunch", label: "Sit-up", category: "athletic-stunts", description: "Lie back, curl the torso up to the knees, lower down",
123
+ promptHint: "the subject lies on the back with knees bent and feet flat, hands behind the head, curls the torso up until the chest nears the knees, then lowers back down one vertebra at a time and repeats",
124
+ term: "do sit-ups" },
125
+ { id: "bodyweight-squat", label: "Bodyweight Squat", category: "athletic-stunts", description: "Hips back and down to parallel, drive through the heels",
126
+ promptHint: "the subject stands with feet shoulder-width apart and arms out front, sits the pelvis back and down until the thighs are parallel to the floor with the chest up, then drives through the heels to stand",
127
+ term: "squat down and drive back up" },
128
+ { id: "lunge", label: "Forward Lunge", category: "athletic-stunts", description: "Long step forward, both knees to ninety, push back up",
129
+ promptHint: "the subject steps one foot far forward and lowers straight down until both knees bend to ninety degrees with the back knee just off the floor, then pushes off the front heel to step back to standing and switches legs",
130
+ term: "step into a forward lunge" },
131
+ { id: "deadlift", label: "Deadlift", category: "athletic-stunts", description: "Hinge, grip the bar, pull to lockout, lower it down",
132
+ promptHint: "the subject stands over a loaded barbell, hinges at the waist to grip the bar with a flat back, drives through the legs to pull the bar up the shins to hip lockout, then lowers it to the floor",
133
+ term: "deadlift a barbell" },
134
+ { id: "bench-press", label: "Bench Press", category: "athletic-stunts", description: "Unrack, lower the bar to the chest, press to lockout",
135
+ promptHint: "the subject lies on a flat bench, unracks a barbell with straight arms above the chest, lowers it under control until it touches the chest, then presses it back up to lockout and racks it",
136
+ term: "bench-press a barbell" },
137
+ { id: "dumbbell-curl", label: "Dumbbell Curl", category: "athletic-stunts", description: "Elbows pinned, curl to the shoulders, lower slow",
138
+ promptHint: "the subject stands holding a dumbbell in each hand with arms hanging straight, curls both weights up to the shoulders by bending the elbows while keeping them pinned at the sides, then lowers them back down under control",
139
+ term: "curl a pair of dumbbells" },
140
+ { id: "burpee", label: "Burpee", category: "athletic-stunts", description: "Drop, kick back to plank, snap in, jump up",
141
+ promptHint: "the subject drops from standing into a crouch with hands on the floor, kicks both feet back into a plank, snaps the feet back in under the body, and jumps straight up with arms overhead",
142
+ term: "drop into a burpee and jump" },
143
+ { id: "jumping-jacks", label: "Jumping Jacks", category: "athletic-stunts", description: "Feet apart and arms overhead, back together, repeat",
144
+ promptHint: "the subject stands with feet together and arms at the sides, hops the feet apart while swinging the arms overhead until the hands nearly meet, hops back to the start, and repeats in a continuous rhythm",
145
+ term: "do jumping jacks" },
146
+ { id: "jump-rope", label: "Jump Rope", category: "athletic-stunts", description: "Wrist-driven rope swing, hops on the balls of the feet",
147
+ promptHint: "the subject holds a jump rope handle in each hand, swings the rope overhead with the wrists, and hops over it on the balls of the feet in a continuous rhythm with elbows tucked at the sides",
148
+ term: "jump rope on the spot" },
149
+ { id: "sun-salutation", label: "Sun Salutation", category: "athletic-stunts", description: "Full yoga flow from standing through the floor and back",
150
+ promptHint: "the subject stands with palms together, sweeps the arms overhead, folds forward over the legs, steps back into a plank and lowers down, arches into upward dog, pushes back into downward dog, then steps forward and rises to standing",
151
+ term: "flow through a sun salutation" },
152
+ { id: "tai-chi-flow", label: "Tai Chi Flow", category: "athletic-stunts", description: "Weight shifts and circling arms in one continuous flow",
153
+ promptHint: "the subject shifts the weight onto one soft-kneed leg as both arms rise and circle before the chest, steps the other foot out and turns the waist to sweep the arms across, then sinks back as the arms lower",
154
+ term: "flow through tai chi" },
155
+ { id: "hamstring-stretch", label: "Hamstring Stretch", category: "athletic-stunts", description: "Heel propped up, flat-back reach to the toes, switch legs",
156
+ promptHint: "the subject props one heel on a raised surface with the leg straight, hinges forward at the waist with a flat back and reaches both hands toward the toes, holds the stretch, then rises and switches legs",
157
+ term: "stretch the hamstring on a raised heel" },
158
+ { id: "freestyle-swim", label: "Freestyle Swim", category: "athletic-stunts", description: "Alternating overhead strokes, flutter kick, side breath",
159
+ promptHint: "the subject swims freestyle with the body long and flat at the surface, arms pulling in alternating overhead strokes as the legs flutter-kick, the head rolling to one side to breathe between strokes",
160
+ term: "swim freestyle" },
161
+ { id: "dive-into-water", label: "Dive Into Water", category: "athletic-stunts", description: "Spring from the edge into a head-first arc",
162
+ promptHint: "the subject stands at the edge with toes curled over it, bends the knees and swings the arms forward, springs outward in an arc with the arms extended together past the ears, and enters the water head first",
163
+ term: "dive head-first into water" },
164
+ { id: "cannonball-into-water", label: "Cannonball", category: "athletic-stunts", description: "Run, jump, hug the knees, splash down seat-first",
165
+ promptHint: "the subject runs to the edge and jumps out over the water, pulls both knees to the chest and wraps the arms around the shins in a tight ball, then drops seat first into the water with a big splash",
166
+ term: "cannonball into the water" },
167
+ { id: "surface-and-flick-hair", label: "Surface & Flick Hair", category: "athletic-stunts", description: "Break the surface, whip the head back, hair throws an arc",
168
+ promptHint: "the subject rises up through the water and breaks the surface face first, whips the head back so the wet hair throws an arc of spray behind it, then wipes the water from the eyes with both hands",
169
+ term: "surface and flick the hair back" },
170
+ { id: "pour-water-over-head", label: "Pour Water Over Head", category: "athletic-stunts", description: "Bottle raised, water cascades over the head, shake it off",
171
+ promptHint: "the subject raises a water bottle above the head, tips it so the water cascades over the hair and face and runs down the neck, then drops the bottle and shakes the head to throw off the drops",
172
+ term: "pour water over the head" },
173
+ { id: "skateboard-push", label: "Skateboard Push", category: "athletic-stunts", description: "Two pushes off the ground, back foot to the tail, roll",
174
+ promptHint: "the subject stands on a skateboard with the front foot over the front bolts, pushes off the ground with the back foot in two long strokes, then sets the back foot on the tail and rolls in a bent-knee stance",
175
+ term: "push off on a skateboard" },
176
+ { id: "surf-pop-up", label: "Surf Pop-up", category: "athletic-stunts", description: "Paddle prone, press up, feet under, riding stance",
177
+ promptHint: "the subject lies prone on a surfboard paddling with alternating arms, plants both hands under the chest, pushes up and swings the feet under the body in one motion, and rises into a crouched side-on riding stance",
178
+ term: "pop up on a surfboard" },
179
+ { id: "ski-carve-turn", label: "Ski Carve Turn", category: "athletic-stunts", description: "Roll the edges into a carved turn, then the next",
180
+ promptHint: "the subject skis downhill with knees bent and poles trailing, rolls both knees and edges into the slope to carve a turn with the upper body facing down the hill, then rolls the edges over into the next turn",
181
+ term: "carve a ski turn" },
182
+ { id: "rope-climb", label: "Rope Climb", category: "athletic-stunts", description: "Foot clamp, arm pull, re-clamp higher, repeat upward",
183
+ promptHint: "the subject grips a hanging rope overhead, clamps it between the feet, pulls with the arms while pushing up through the legs, re-clamps the feet higher, and repeats the reach and pull to climb upward",
184
+ term: "climb a hanging rope" },
185
+ { id: "rope-swing-across", label: "Rope Swing Across", category: "athletic-stunts", description: "Run, swing across a gap on a rope, release and land",
186
+ promptHint: "the subject grabs a hanging rope with both hands, runs and lifts the feet to swing in a long arc across a gap, releases at the far end of the swing, and lands on both feet",
187
+ term: "swing across a gap on a rope" },
188
+ { id: "pull-up", label: "Pull-up", category: "athletic-stunts", description: "Dead hang, chin over the bar, lower under control",
189
+ promptHint: "the subject hangs from a bar with straight arms and an overhand grip, pulls the body up by driving the elbows down until the chin clears the bar, then lowers under control to a dead hang",
190
+ term: "pull up until the chin clears the bar" },
191
+ { id: "climb-wall", label: "Climb a Wall", category: "athletic-stunts", description: "Jump to the top edge, walk the feet up, mantle over",
192
+ promptHint: "the subject runs at a high wall, jumps and catches the top edge with both hands, walks the feet up the face, pulls the chest over the edge and hooks one leg, then mantles up onto the top",
193
+ term: "climb a wall and mantle over" },
194
+ { id: "climb-ladder", label: "Climb a Ladder", category: "athletic-stunts", description: "Hand over hand up the rungs, step off at the top",
195
+ promptHint: "the subject grips a ladder at chest height, steps onto the bottom rung and climbs hand over hand with the opposite foot following each hand, then reaches the top and steps off onto the ledge",
196
+ term: "climb a ladder" },
197
+ { id: "drop-and-roll", label: "Drop and Roll", category: "athletic-stunts", description: "Drop from a ledge, soft landing into a shoulder roll",
198
+ promptHint: "the subject drops from a ledge, lands on the balls of the feet with knees bending deep, immediately tips forward into a shoulder roll to bleed off the impact, and comes up running",
199
+ term: "drop from a ledge into a roll" },
200
+ { id: "balance-on-beam", label: "Balance on a Beam", category: "athletic-stunts", description: "Heel-to-toe along a narrow beam, arms out, step down",
201
+ promptHint: "the subject steps onto a narrow beam and walks heel to toe along it with arms extended out to the sides, wobbling and correcting with the arms, then reaches the end and steps down",
202
+ term: "walk along a balance beam" },
203
+ { id: "handstand", label: "Handstand", category: "athletic-stunts", description: "Lunge, kick up to vertical, hold, step down",
204
+ promptHint: "the subject steps forward into a lunge, plants both hands on the ground shoulder-width apart, kicks the legs up overhead one after the other into a straight vertical line, holds the balance, then lowers one leg and steps down",
205
+ term: "kick up into a handstand" },
206
+ { id: "kip-up", label: "Kip-up", category: "athletic-stunts", description: "From flat on the back, snap the pelvis and spring up",
207
+ promptHint: "the subject lies flat on the back, rocks the legs up and over the head, then snaps the pelvis forward and pushes off the hands to spring up onto both feet in one motion",
208
+ term: "kip up from lying on the back" },
209
+ { id: "jump-in-puddle", label: "Jump in a Puddle", category: "athletic-stunts", description: "Run up, two-foot stomp into a puddle, splash, hop out",
210
+ promptHint: "the subject runs up to a puddle, jumps and stomps down into it with both feet together and arms flung up as the water splashes out around the legs, then hops out laughing",
211
+ term: "jump into a puddle with both feet" },
212
+ { id: "bounce-on-bed", label: "Bounce on a Bed", category: "athletic-stunts", description: "Climb onto a bed, bounce higher and higher, flop down",
213
+ promptHint: "the subject climbs onto a bed, starts bouncing on both feet with the knees soft and arms pumping, springs higher with each bounce, then drops onto the back and lets the mattress catch the fall",
214
+ term: "bounce on a bed and flop down" },
215
+ { id: "swing-on-swing", label: "Swing on a Swing", category: "athletic-stunts", description: "Pump the legs on a swing, higher each pass, lean back",
216
+ promptHint: "the subject sits on a swing gripping the chains, pumps the legs forward and tucks them back to build height with each pass, and leans back with the arms straight at the top of the forward swing",
217
+ term: "swing on a playground swing" },
218
+ ]
@@ -0,0 +1,137 @@
1
+ import type { CharacterMotion } from "./types.js"
2
+
3
+ /** Camera Interaction — 44 entries. Category id `camera-interaction`. */
4
+ export const CAMERA_INTERACTION_MOTIONS: ReadonlyArray<CharacterMotion> = [
5
+ { id: "look-into-lens", label: "Look Into Lens", category: "camera-interaction", description: "Eyes find the lens and lock on the viewer",
6
+ promptHint: "the subject lifts their gaze from off-frame and locks eyes straight into the lens, head squaring toward the camera, holding the look steady on the viewer",
7
+ term: "looks straight into the lens" },
8
+ { id: "hold-then-look-away", label: "Hold Gaze Then Look Away", category: "camera-interaction", description: "Direct eye contact, then the gaze breaks aside",
9
+ promptHint: "the subject holds direct eye contact with the lens, then lets the gaze drop and the head turn aside, breaking the connection with the viewer",
10
+ term: "holds eye contact then looks away" },
11
+ { id: "approach-camera", label: "Approach Camera", category: "camera-interaction", description: "Walks straight up to the lens",
12
+ promptHint: "the subject walks straight toward the lens from mid-distance, each stride bringing the face larger in frame, stopping close with the eyes fixed on the viewer",
13
+ term: "walks straight up to the lens" },
14
+ { id: "lean-into-lens", label: "Lean Into Lens", category: "camera-interaction", description: "Leans in until the face fills the frame",
15
+ promptHint: "the subject leans in toward the lens from the waist, the face closing the distance until it fills the frame, eyes fixed on the viewer, then settles there",
16
+ term: "leans in close to the lens" },
17
+ { id: "walk-past-camera", label: "Walk Past Camera", category: "camera-interaction", description: "Passes close by the lens and exits behind it",
18
+ promptHint: "the subject walks toward the lens and passes close on one side, the body sweeping across the frame and exiting behind the camera position without looking back",
19
+ term: "walks past the camera and out of frame" },
20
+ { id: "point-at-camera", label: "Point at Camera", category: "camera-interaction", description: "Arm swings up and locks out pointing at the viewer",
21
+ promptHint: "the subject swings one arm up from the side and locks it out straight at the lens with the index finger extended, eyes fixing on the viewer as the point lands, then lowers the hand",
22
+ term: "raises an arm to point at the camera" },
23
+ { id: "show-object-to-lens", label: "Show Object to Lens", category: "camera-interaction", description: "Holds an object up close for the viewer to see",
24
+ promptHint: "the subject lifts an object in one hand and brings it up close to the lens, holding it steady beside the face for the viewer to inspect, then draws it back down",
25
+ term: "holds an object up to the lens" },
26
+ { id: "cover-the-lens", label: "Cover the Lens", category: "camera-interaction", description: "Palm presses over the lens, then pulls away",
27
+ promptHint: "the subject reaches a hand toward the lens and presses the palm over it, fingers spreading until the hand fills the frame, then pulls the hand away to reveal the face again",
28
+ term: "covers the lens with a palm" },
29
+ { id: "step-back-from-camera", label: "Step Back", category: "camera-interaction", description: "Backs away from the lens to mid-distance",
30
+ promptHint: "the subject steps backward away from the lens, weight shifting onto the rear foot with each step, the body shrinking in frame until standing at mid-distance",
31
+ term: "steps back from the camera" },
32
+ { id: "talk-to-camera", label: "Talk to Camera", category: "camera-interaction", description: "Vlog-style delivery straight to the viewer",
33
+ promptHint: "the subject speaks directly into the lens like a vlogger, mouth moving with natural conversational hand gestures, eyebrows lifting on emphasis, eye contact held throughout",
34
+ term: "talks to camera vlog-style" },
35
+ { id: "react-off-screen", label: "React Off-Screen", category: "camera-interaction", description: "Reacts to something off-frame, then back to lens",
36
+ promptHint: "the subject turns the head toward something off-screen and reacts with a visible change of expression, then swings the gaze back to the lens to share the reaction with the viewer",
37
+ term: "reacts to something off-frame then back to lens" },
38
+ { id: "wink-at-camera", label: "Wink at Camera", category: "camera-interaction", description: "A deliberate one-eyed wink to the viewer",
39
+ promptHint: "the subject looks into the lens and closes one eye in a deliberate wink, the corner of the mouth lifting on the same side, then opens the eye and holds the look",
40
+ term: "winks at the camera" },
41
+ { id: "beckon-camera-closer", label: "Beckon Closer", category: "camera-interaction", description: "Come-here gesture aimed at the lens",
42
+ promptHint: "the subject looks into the lens and curls the fingers of one raised hand toward the chest in a come-here gesture, repeating the beckon as the head tilts encouragingly",
43
+ term: "beckons the camera closer" },
44
+ { id: "push-camera-away", label: "Push Camera Away", category: "camera-interaction", description: "Open palm shoves the lens back in refusal",
45
+ promptHint: "the subject extends an open palm toward the lens and pushes it away, the arm straightening as the hand grows large in frame, the face turning aside in refusal",
46
+ term: "pushes the camera away with a palm" },
47
+ { id: "wave-at-camera", label: "Wave at Camera", category: "camera-interaction", description: "Open-palm wave and a smile to the viewer",
48
+ promptHint: "the subject raises one hand to shoulder height and waves at the lens, palm open and fingers swinging side to side, a smile breaking as the eyes meet the viewer",
49
+ term: "waves at the camera" },
50
+ { id: "blow-kiss-to-lens", label: "Blow Kiss to Lens", category: "camera-interaction", description: "Kisses the fingertips and sends it to the lens",
51
+ promptHint: "the subject brings the fingertips to the lips, kisses them, and extends the hand toward the lens with a soft exhale, the palm opening to send the kiss to the viewer",
52
+ term: "blows a kiss to the camera" },
53
+ { id: "tap-the-lens", label: "Tap the Lens", category: "camera-interaction", description: "Fingertip taps the glass, then peers in",
54
+ promptHint: "the subject reaches toward the lens and taps it with a fingertip, the finger growing huge in frame on contact, then withdraws the hand and peers in as if checking the camera works",
55
+ term: "taps the lens with a fingertip" },
56
+ { id: "whisper-to-camera", label: "Whisper to Camera", category: "camera-interaction", description: "Leans in, cupped hand, conspiratorial whisper",
57
+ promptHint: "the subject leans in close to the lens, raises a cupped hand beside the mouth, and whispers toward the viewer with a conspiratorial glance to the side, then eases back",
58
+ term: "whispers to camera behind a cupped hand" },
59
+ { id: "grab-the-camera", label: "Grab the Camera", category: "camera-interaction", description: "Lunges to seize the lens and haul it in",
60
+ promptHint: "the subject lunges one hand at the lens as if seizing the camera, fingers wrapping around the edges of the glass, the arm pulling as if to drag it in toward the face",
61
+ term: "grabs at the camera with one hand" },
62
+ { id: "extend-selfie-arm", label: "Extend Selfie Arm", category: "camera-interaction", description: "Arm out as if holding the camera, finds the angle",
63
+ promptHint: "the subject extends one arm straight toward the lens as if holding the camera at arm's length, tilts the head and angles the face to find the flattering side, then settles into the pose",
64
+ term: "extends a selfie arm toward the lens" },
65
+ { id: "break-fourth-wall", label: "Break the Fourth Wall", category: "camera-interaction", description: "A knowing glance to the viewer mid-action",
66
+ promptHint: "the subject continues an action within the scene and flicks the eyes to the lens for a knowing glance at the viewer without turning the head, then returns attention to the scene",
67
+ term: "flicks a knowing glance to the lens mid-action" },
68
+ { id: "nod-at-camera", label: "Nod at Camera", category: "camera-interaction", description: "Single deliberate nod of acknowledgment",
69
+ promptHint: "the subject looks into the lens and gives a single deliberate nod, the chin dipping and lifting, eyes holding the viewer's throughout as an acknowledgment",
70
+ term: "nods at the camera" },
71
+ { id: "shake-head-at-camera", label: "Shake Head at Camera", category: "camera-interaction", description: "Head shakes side to side, eyes on the viewer",
72
+ promptHint: "the subject looks into the lens and shakes the head side to side in a clear no, lips pressed together, the eyes staying on the viewer the whole time",
73
+ term: "shakes head no at the camera" },
74
+ { id: "shush-the-viewer", label: "Shush the Viewer", category: "camera-interaction", description: "Finger to lips, a hush aimed at the lens",
75
+ promptHint: "the subject raises an index finger to the lips and holds it there while looking into the lens, brows lifting in a hush, then lowers the finger and keeps the gaze",
76
+ term: "shushes the viewer with a finger to lips" },
77
+ { id: "double-take-to-camera", label: "Double Take to Camera", category: "camera-interaction", description: "Glances past, looks away, then snaps back to lens",
78
+ promptHint: "the subject glances past the lens, looks away, then snaps the head back to stare straight into the camera in a comic double take, the eyes widening",
79
+ term: "does a comic double take to camera" },
80
+ { id: "thumbs-up-to-camera", label: "Thumbs Up to Camera", category: "camera-interaction", description: "Pops a thumbs up at the lens with a grin",
81
+ promptHint: "the subject raises one fist to chest height and pops the thumb up toward the lens, holding it with a grin at the viewer, then lowers the hand",
82
+ term: "gives a thumbs up to the camera" },
83
+ { id: "reach-toward-lens", label: "Reach for the Lens", category: "camera-interaction", description: "Open hand reaches out as if to touch the viewer",
84
+ promptHint: "the subject extends an open hand toward the lens, fingers spreading as the hand grows to fill the frame, the arm reaching as if to touch the viewer, then draws back",
85
+ term: "reaches out toward the lens" },
86
+ { id: "look-back-over-shoulder", label: "Look Back at Lens", category: "camera-interaction", description: "Walks away, then glances back over the shoulder",
87
+ promptHint: "the subject walks away from the lens, then pauses and turns the head back over one shoulder to look straight into the camera, holding the glance before continuing on",
88
+ term: "looks back over the shoulder at the lens" },
89
+ { id: "notice-the-camera", label: "Notice the Camera", category: "camera-interaction", description: "Caught-on-camera moment, realizes being filmed",
90
+ promptHint: "the subject carries on with the scene's action, then catches sight of the lens with a small start, the eyes widening and the body straightening on realizing they are being filmed",
91
+ term: "notices the camera mid-scene" },
92
+ { id: "stare-down-the-lens", label: "Stare Down the Lens", category: "camera-interaction", description: "Chin lowers, hard unblinking stare at the viewer",
93
+ promptHint: "the subject lowers the chin and stares hard into the lens, the eyes narrowing and unblinking, shoulders squaring as the intimidating look is held on the viewer",
94
+ term: "stares hard down the lens" },
95
+ { id: "bow-to-camera", label: "Bow to Camera", category: "camera-interaction", description: "Formal bow from the waist toward the lens",
96
+ promptHint: "the subject faces the lens, folds forward from the waist in a formal bow with the hands at the sides, holds at the bottom, then straightens up with the eyes returning to the viewer",
97
+ term: "bows to the camera" },
98
+ { id: "shield-face-from-camera", label: "Shield Face", category: "camera-interaction", description: "Camera-shy, forearm blocks the face and turns away",
99
+ promptHint: "the subject raises a forearm to block the face from the lens, turning the head away and hunching one shoulder, then lowers the arm a little and peeks out over it at the viewer",
100
+ term: "shields the face from the camera" },
101
+ { id: "smolder-at-camera", label: "Smolder at Camera", category: "camera-interaction", description: "Looks up through the lashes with a sensual half-smile",
102
+ promptHint: "the subject tilts the chin down and looks up into the lens through lowered lashes, lips parting, a sensual half-smile forming as the gaze holds the viewer",
103
+ term: "smolders into the lens", adultOnly: true },
104
+ { id: "sing-to-camera", label: "Sing to Camera", category: "camera-interaction", description: "Lip-synced singing straight to the viewer",
105
+ promptHint: "the subject sings straight into the lens, the lips shaping each lyric in sync, the head rocking to the beat and the brows lifting on the big notes, eyes on the viewer throughout",
106
+ term: "lip-syncs a song to camera" },
107
+ { id: "point-up-at-caption", label: "Point Up at Caption", category: "camera-interaction", description: "Points above the head at an on-screen caption",
108
+ promptHint: "the subject looks into the lens, raises one arm and points the index finger straight up above the head at the space where a caption sits, holds the point, then lowers the arm",
109
+ term: "points up above the head at a caption" },
110
+ { id: "punch-at-camera", label: "Punch at Camera", category: "camera-interaction", description: "Fist drives straight at the lens and fills the frame",
111
+ promptHint: "the subject sets the feet, draws one fist back to the shoulder and drives it straight at the lens, the knuckles growing to fill the frame, then pulls the fist back to guard",
112
+ term: "throws a punch straight at the lens" },
113
+ { id: "lunge-at-camera", label: "Lunge at Camera", category: "camera-interaction", description: "Whole body springs at the lens, face rushing in",
114
+ promptHint: "the subject drops into a crouch, then springs forward at the lens with the whole body, arms flung wide and the face rushing to fill the frame, then checks the momentum just short of it",
115
+ term: "lunges at the lens" },
116
+ { id: "toss-object-to-camera", label: "Toss Object to Camera", category: "camera-interaction", description: "Flips an object underhand toward the lens",
117
+ promptHint: "the subject holds an object at chest height, then flips it underhand toward the lens, the arm following through as the object arcs up and grows large in frame, the eyes tracking it to the viewer",
118
+ term: "tosses an object at the lens" },
119
+ { id: "kiss-the-lens", label: "Kiss the Lens", category: "camera-interaction", description: "Leans in and plants a playful kiss on the glass",
120
+ promptHint: "the subject leans in until the face fills the frame, puckers the lips and presses a playful kiss onto the lens, the eyes closing on contact, then eases back with a grin",
121
+ term: "kisses the lens" },
122
+ { id: "mouth-silent-words", label: "Mouth Silent Words", category: "camera-interaction", description: "Mouths a phrase to the viewer without a sound",
123
+ promptHint: "the subject looks into the lens and mouths a short phrase without sound, the lips shaping each word deliberately as the eyes hold the viewer, then closes the mouth and keeps the look",
124
+ term: "mouths silent words to camera" },
125
+ { id: "reach-to-tap-record", label: "Reach to Tap Record", category: "camera-interaction", description: "Reaches to hit record, then settles back into frame",
126
+ promptHint: "the subject reaches one hand straight toward the lens as if to tap the record button just below it, the hand filling the frame, then withdraws it and settles back into place facing the viewer",
127
+ term: "reaches to tap record then settles back" },
128
+ { id: "prop-phone-on-surface", label: "Prop Phone on Surface", category: "camera-interaction", description: "Leans in to prop the phone up, then lets go",
129
+ promptHint: "the subject cradles the phone in both hands and leans down close to prop it against a surface, the fingers adjusting it until it sits steady, then lets go and straightens up into frame",
130
+ term: "props the phone on a surface" },
131
+ { id: "turn-wrist-to-show-watch", label: "Show the Watch", category: "camera-interaction", description: "Wrist rotates to present the watch face to the lens",
132
+ promptHint: "the subject raises one forearm toward the lens and rotates the wrist so the watch face turns square to the viewer, holding it steady close to the lens, then lowers the arm",
133
+ term: "turns the wrist to show the watch" },
134
+ { id: "splash-water-at-lens", label: "Splash Water at Lens", category: "camera-interaction", description: "Scoops and flings water at the viewer with a laugh",
135
+ promptHint: "the subject scoops water with both hands and flings it at the lens, the arms sweeping up and forward as the spray flies toward the viewer, then shakes out the wet hands with a laugh",
136
+ term: "splashes water at the lens" },
137
+ ]