# Reusable LEGO Office loading-scene prompt

## Required inputs

- Scene ID: `{SCENE_ID}`
- Scene description: `{SCENE_DESCRIPTION}`
- Static elements: `{STATIC_ELEMENTS}`
- Moving elements: `{MOVING_ELEMENTS}`
- Moving-layer anchor positions: `{LAYER_ANCHORS}`
- Master canvas: `{CANVAS_WIDTH} × {CANVAS_HEIGHT}` pixels
- Asset role for this generation: `{BASE_OR_NAMED_MOTION_LAYER}`

## Prompt

Use case: illustration-story.
Asset type: one layer of a small image-loading scene for an engineering blog.
Subject: LEGO Ideas The Office 21336 minifigures and LEGO office props.
Scene: {SCENE_DESCRIPTION}
Style: monochrome graphite pencil sketch, fine gray pencil strokes, restrained crosshatching, no colored areas, no paper rectangle, no vignette, no glow, genuinely transparent empty areas. Do not bake loading copy, captions or UI into the artwork. Authentic prop markings required for identity, such as LIEBERTHAL 7, are permitted. The site supplies its accessible loading status separately.

Keep normal positive tonal values in both site themes: dark pencil outlines and shadows, light faces and paper, dark hair. Never invert the whole illustration for dark mode. If the sketch needs contrast against a dark page, place it on a soft light paper surface or prepare a separately art-directed positive-tone variant. No photographic-negative treatment.

Transparent empty areas must contain no detached scraps, cropped neighboring frames, stray triangles, noise specks, white fringes or gray halos. Inspect the exported layer on both a light and a dark background, including all corners outside the scene.

### MANDATORY: ONE STATIC MASTER, SEPARATE MOVING LAYERS

Create ONE stationary base/master scene. Do not create a sprite atlas or a set of independently redrawn whole-scene animation frames.

Static elements: {STATIC_ELEMENTS}. Their geometry, scale, camera, perspective, coordinates, proportions and outlines are locked. The desk, character body and all non-moving desk props must remain in exactly the same place. Do not add camera shake, zoom, panning, parallax of the whole scene or incidental movement of the desk.

Moving elements: {MOVING_ELEMENTS}. Supply them as separate transparent layers. The runtime will animate only these existing layers, for example vapor rising from a pot, a paper tile sliding along a printer tray, a phone light blinking, visual ringing waves expanding, a rotor spinning about its axle, or a toy moving on its visible hinge/spring. Do not redraw the entire scene to depict these motions.

Use the exact same master canvas width, height, aspect ratio and coordinate system for all registered scene layers. Keep the camera and viewpoint identical. Never stretch layers independently. Every moving layer must retain its specified anchor: {LAYER_ANCHORS}. The build pipeline may export a cropped transparent layer together with its fixed anchor metadata; this must not change its scale or placement relative to the master.

In this generation output only: {BASE_OR_NAMED_MOTION_LAYER}. If producing the base, leave moving effects such as vapor or ringing waves out of it. If producing a motion layer, do not include the desk, character or other static scenery again. Do not bake a moving effect into both the static base and the moving layer.

### MANDATORY: ACTUAL LEGO ANATOMY AND CONNECTIONS

A standard LEGO minifigure arm is ONE rigid molded part with a constant factory shape. It does NOT have an articulated elbow. Never bend, stretch, soften, lengthen or morph the arm or forearm between states.

The only permitted arm movements are rotation about the shoulder axle and rotation of the entire rigid hand about its wrist stem. The default pose for these loaders keeps the main figures' arms still.

Each hand is the SPECIFIC FACTORY-MOLDED LEGO MINIFIGURE HAND in the supplied approved reference, not a generic object shaped like a letter C. There are NO individual fingers, NO thumb, NO knuckles, NO fingertips and NO human pinching or typing gestures. Preserve the identity and dimensions of that actual molded part in every view.

Before generation, load `references/lego-hand-983-user.png` and `references/lego-hand-983-3d-side.png` as mandatory geometry references. The actual part is BrickLink 983 / LEGO 3820. Also load `references/rejected-coaxial-wrists.png` as a NEGATIVE angle example and `references/rejected-rounded-hooks.png` as a NEGATIVE shape example. Exact physical part identity takes precedence over a verbal letter-shape description.

POSITIVE EXAMPLE — a SHORT SLOTTED HOLLOW CYLINDER with a straight cylindrical wall, flat annular end faces and two FLAT-CUT jaw ends. The thin wrist peg enters the SIDE WALL of this cylinder. Its axis is PERPENDICULAR (90 degrees) to the gripping bore axis: a side-entry T-junction, never a coaxial open robot cuff. At the desk, the forearm points approximately forward while the bore points UP. From the elevated camera show the oval TOP opening and short solid FRONT barrel wall. The hand rotates as one factory part around the wrist peg; the rigid arm and molded elbow do not deform. The mug hand clips its actual handle while the mug base remains on the table. Reproduce the precise silhouette and proportions in the supplied 3D reference.

NEGATIVE EXAMPLES — do not draw a torus/donut ring, rounded pirate hook, broad flat horseshoe/U, long curved prongs, robot tube continuing straight along the forearm, exposed fingers/thumbs or oversized cuffs. A geometrically cylindrical clip is STILL WRONG if its hole points straight forward along the forearm. Compare BOTH shape AND orientation to the reference. Keep the original sleeve and arm pose when correcting only a hand.

404-SCENE POSE: use both complete rigid molded arms relaxed DOWN beside the hips, with actual factory hands visible and separated from the head and torso. No head scratching or chin touching. In this standing pose the wrist peg enters the sleeve UPWARD, while the gripping cylinder's bore runs roughly HORIZONTALLY front-to-back, perpendicular to the wrist. Show the short barrel depth, flat annular end and actual open side slot, with two short flat-cut tips. This is the same reference part rotated as a whole, not a new tube grown along the forearm. A plain closed cylindrical cuff is not a hand. The arm has no separate elbow joint. Compare enlarged hand crops before accepting a scene.

A standard minifigure head turns about its vertical stud axis; it does not bend or tilt at a human neck. A desk bobblehead may move only about its actual short neck connection; this is a separate mechanism, not a flexible minifigure neck. The Lieberthal collectible has a short concealed attachment, not a tall exposed spring.

Every prop must be visibly supported by the desktop, floor, tray or a physically valid LEGO connection. A mug either rests with its base touching the table or has its handle visibly connected to the C-shaped hand. Never draw a hovering mug, floating paper tile, detached spoon, unsupported machine or impossible grip. The current Michael scene keeps its mug on the tabletop at all times.

Physical props must share the SAME camera, scale, lighting, pencil texture and surface perspective as the scene. A fan or toy foot lies flush in the tabletop plane, with a clear support/contact point. Integrate stationary stands, cases, cages and feet into the master illustration; do not paste an entire unrelated generic prop or CSS icon into the scene. Isolate only the component that actually moves. A fan rotor's exported canvas must be registered to its axle, not to the asymmetric outer bounds of the three blades, so spinning does not wobble.

### MANDATORY: RELATIVE SCALE, SUPPORT AND OCCLUSION

Judge a prop inside the COMPOSED scene, never only in its isolated source image. Match its dimensions to the minifigure, nearby mug, monitor and tabletop. A desktop trinket must read as a small object, not a second full-size minifigure or an oversized pedestal. Set the relative scale in the scene recipe before generation; do not enlarge an isolated layer merely to make its motion more obvious.

Draw the stationary foot or plinth DIRECTLY into the same master as the table. Its underside touches the tabletop with no air gap; its top and side edges follow that surface's perspective and its contact shadow lies immediately on the supporting surface. A prop must fit within the available tabletop area. Never conceal an incorrect support by overlapping an unrelated paper stack. Use consistent foreground/background occlusion: do not paint a rear object over a foreground hand, tray, monitor or desk edge. Do not use an unrelated generic raster or CSS silhouette as a substitute for the integrated stationary drawing.

CURRENT DWIGHT-TOY REQUIREMENT: use the actual Mike Lieberthal Scranton Red Barons baseball bobblehead from The Office, based on `references/lieberthal-series-frame.png`. No generic smiley LEGO head on a tall spring. Show the small baseball collectible in rear/three-quarter rear view: backwards baseball cap, pinstripe jersey marked LIEBERTHAL and 7, dark undersleeves/belt, low oval base, short concealed neck attachment. The collectible is a miniature of the actual prop, not a second full-size LEGO character. Its base and body are drawn directly into the desktop master with consistent camera, pencil texture, contact shadow and supported footprint. Only its separate registered head/cap sways slightly about the neck pivot. The base, body, desk and Dwight remain fixed; no floating head, duplicate head, long exposed spring or uniform scaling to exaggerate motion. The clock scene keeps the same identifiable collectible fully assembled and stationary.

For EVERY motion layer record its fixed canvas anchor, intended dimensions, physical pivot and whether it goes behind or in front of each nearby object. Inspect both motion extremes and the resting state. Exporting, cropping or trimming transparency must preserve that registration. Keep all props at the same scale throughout playback; the animation may not change the camera, aspect ratio or scene bounds.

The printer's “paper” is a rigid light LEGO tile with visible thickness, matching the current scene's pencil-drawn reference and exact tray perspective. Keep hard straight edges and molded plastic material. It slides along the supported output tray; it does not curl, flap, bend or float. Supply the drawn tile as its own layer; do not replace it with a generic flat CSS paper rectangle or add simulated writing lines.

Use each named minifigure once within a scene. Use only the named characters and props; no invented extra limbs, duplicated figures or unrelated sets.

Faces must look like real factory pad-printed LEGO faces: simple solid black printed eyes, restrained eyebrow lines and a small printed mouth; printed glasses when the character needs them. No anime pupil highlights, cute rounded cheeks, blush, fleshy facial anatomy or exaggerated cartoon expressions. Do not turn the character into a new cartoon mascot.

CURRENT RAIN-SCENE REQUIREMENT: Phyllis remains COMPLETELY STILL, including her head. Do not split out, turn, tilt, stretch or animate any part of her. No reaction to lightning. Use one complete fixed minifigure in the master. Only rain and a natural lightning layer animate behind the window. Lightning is a slender irregular branching electrical channel with its full lower tail and endpoint visible, like the supplied photographic reference; never substitute a geometric zap icon. Keep the entire discharge within the unobstructed window area without clipping its lower tip or side branches. Rain must visibly move across the dark glass. Lightning uses sparse single flashes, never rapid strobing. Reduced-motion mode disables flashes and movement. This requirement supersedes the earlier experimental head-reaction prototype.

### Interaction and loading semantics

The scene contains a real ongoing action even without cursor movement. Cursor, touch or keyboard input can add a reaction to the moving prop; a head following the mouse is not the scene's sole animation.

### MANDATORY: PHYSICAL DIRECTION AND CONTINUOUS MOTION

Rain always travels DOWN the window, never upward. Steam always rises OUT OF the pot, never descends or gets sucked back into it. A working clock advances CLOCKWISE, never rewinds. Cursor/touch reaction may change only a bounded positive playback speed or a slight lateral drift; it must never reverse physical direction, jump the motion phase or reset a visible effect halfway through its travel. Do not bind cursor position to animation timeline/currentTime, use negative playback rates, change animation-direction, or change a running CSS animation-duration in a way that reinterprets elapsed time and causes apparent backward motion. Keep the timeline continuous when changing speed, for example with a strictly positive Web Animations updatePlaybackRate. Reset looping particles only while invisible at emission/exit boundaries. Check direction while sweeping the cursor rapidly left/right and while leaving the scene, including restoration to normal speed. Cursor motion must cause a clearly visible response even near the center of the scene: use a bounded positive speed increase, a stronger but plausible upper-toy lean, or a noticeable lateral steam/rain drift. Never compensate for an imperceptible response by moving the entire figure, desk or stationary prop support. Check the visible difference at actual phone/desktop display size, not only at full source resolution.

### MANDATORY: INTEGRATED CLOCK AND COUPLED HANDS

The clock housing, dial, hour ticks, upright, low brick foot and contact shadow belong in the SAME graphite master as the desk. Replace the rejected clean generic CSS/vector clock; do not paste a separate shiny circular icon above a paper stack. Its low foot rests directly on the desktop in that surface's perspective. Preserve normal accessory scale and the scene's exact pencil texture, light and occlusion. Use `references/rejected-pasted-clock.png` as a NEGATIVE example of the earlier floating unrelated object. Leave the dial without baked-in hands; only the two moving needles are separate runtime elements registered to the generated dial's exact center.

BOTH hour and minute hands move continuously CLOCKWISE from ONE shared monotonically increasing simulated time. Their angular-speed ratio is exactly 12:1: when the minute hand makes one full 360-degree revolution, the hour hand advances 30 degrees. On initialization and each demo restart, read the user's LOCAL system time with new Date(). Set m = (hours % 12)*60 + minutes + seconds/60 + milliseconds/60000. Use minute angle = 6*m; hour angle = 0.5*m. Both start at the real system time. The prototype subsequently accelerates shared simulated time; production defaults to real clock speed. Thus 60 simulated minutes produce 360 degrees of minute-hand travel and 30 degrees of hour-hand travel. The short hour hand must never be stationary while the minute hand moves. Cursor acceleration changes their single shared time rate and preserves their phase and 12:1 relationship; never drive them with unrelated timers, mismatched pivots or independent speed changes. Both needles share the same center/pivot and stop together for reduced motion, hidden state and completion. Check both hands at rest, in normal motion and after cursor acceleration, and verify an observed pair of angle changes has ratio 12:1.

Do NOT show a loading caption below the picture or reserve a caption row. This explicit user correction supersedes the previous visible-status requirement. Retain only a visually hidden, accessible status and aria-busy; the scene and subtle indeterminate track inside the reserved image area communicate activity. No invented percentages. Reduced motion keeps the static illustration and accessible status. Stop scene motion when the image is ready or inactive. Offer six transition prototypes separately; do not prescribe a chosen transition yet. Never add an artificial production delay.

## Reject and regenerate if

- any finger, thumb, flexible elbow or deformed arm appears;
- a visible hand matches the rejected flat-U example rather than the approved molded-part reference, even if the generator calls it a C-shaped LEGO hand;
- a prop has no support or a valid connection;
- a desk ornament is oversized relative to the minifigure or its base floats, intersects a paper stack, has the wrong tabletop perspective, or lacks convincing surface contact;
- an independently pasted prop has a different pencil texture, camera, lighting, outline weight or scale from its surrounding scene;
- a fixed stand/plinth/cage moves with the animated component, or a moving part detaches from its support at any point;
- an animation pivot follows a cropped asset's bounding box instead of the actual physical joint/axle;
- desk/camera/body/scale changes between states;
- a moving effect is baked into the stationary base;
- rain rises, steam enters the pot, a clock rewinds, or a cursor-speed change jumps a visible object backward even though the nominal playback rate is positive;
- a clock housing/foot looks pasted in, floats above its support, or only one hand moves; the hands lose their shared center, clockwise direction or exact 12:1 speed relationship;
- output is a whole-scene flipbook instead of independently animated layers;
- registered layers use different canvas ratios or shift the scene during playback;
- a dark theme reverses faces, hair and paper into a photographic negative;
- a detached artifact, stray crop, fringe or halo appears outside the intended scene;
- a visible loading caption appears below the picture, a blank caption row remains, or the accessible status is missing.

## REQUIRED COMPOSED-PREVIEW CHECK BEFORE DELIVERY

Check the actual assembled prototype, not just the generated PNG. Review it in BOTH light and dark themes, at desktop size and at a narrow phone width. Run the animation through a full cycle and inspect its resting position and both extremes. Verify the table, character, prop foot and camera remain fixed; relative size and contact shadows are credible; overlays respect occlusion; the moving part stays attached; no borders, scraps, halos, negative tones or clipped lightning tips appear. Confirm that rain/steam/telephone/toy motion is visible without moving the pointer, with no visible caption below the picture and a working visually hidden accessible status. Confirm reduced motion retains the illustration and status, and completion/hidden state stops the animation. Do not call an asset finished if only its standalone generation looks correct.

## Prototype selection policy (runtime, not painted artwork)

Keep the existing image slot's dimensions and aspect ratio reserved from the start, so image appearance does not shift the article while scrolling. The actual image becoming ready ends the loader; prototype demo timers must never become artificial production delays. Choose ONE scene per article page and reuse it for all images. The planned default is daily rotation in a configured time zone, with explicit global fixed-scene and article overrides; never draw that choice or a fake progress percentage into the asset. Daily rotation and Hugo integration remain separate work until explicitly implemented.

Recorded from the user's explicit requirements on 2026-10-21; integrated-clock and coupled-hand correction added on 2026-10-22.
