voxel-walk: one person, one continuous walk, every role
Where the kit lives: run every command in this skill from the
reels-makerfolder (the clone of github.com/thativanng/reels-maker that holdstemplate/andtools/). If the project has none, set it up first by following that repo's SETUP.md.
Start from template/film.html + template/career.json. The template is a complete three-chapter film (a café, a warehouse, a night desk with an AI buddy) for a made-up person. Replace the chapters with the person's own; keep the systems.
1 · Interview first (reel-intake, then references/intake.md)
reel-intake runs the interview: purpose, format, the journey block (every role and hat, name/describe/hide, claims), the look references and the guardrails. This skill's references/intake.md adds only what the voxel style needs. The template is 4:5 only (its cameras are keyed for it): for a 9:16 brief, re-key the cameras and re-run every gate, or pick another look. Before a single block is placed, have from the person, in their words:
- Each role: the year, company, title, and the one thing that role taught or proved (the "moat").
- The scene that shows the work, not the job title. A planner isn't a person at a desk; it's trucks leaving a dock for the right depots. A barista is cups handed over a counter.
- The outfit for each chapter, what they actually wore.
- What must NOT appear: numbers they can't publish, an employer they'd rather not name, claims their current colleagues would question.
- The end card: name, tagline, three strengths, one closing line.
Their words outrank yours. You may proofread their lines (grammar, flow); you may not rewrite their meaning.
2 · The house rules (references/house-rules.md has the reasons)
- One continuous walk. The hero never vanishes. They walk from scene to scene; the outfit changes mid-walk with a light ring sweeping head to toe.
- Scenes rise and sink. The next chapter rises out of the floor ahead of the hero and the last one sinks behind, so a walk between chapters takes 2–4 s, not 20. Moving things rise after the buildings and leave before them.
- The picture tells the story; the subtitle carries the meaning. No labels on objects (a forklift doesn't need a "FORKLIFT" tag). Label only a concept the picture can't say. Subtitles are one line of story per beat, never a repeat of the banner.
- Screen time follows importance, not real scale. The hero's moments get holds; vehicles are quick supporting players.
- Colour: warm grey ground, white objects, dark roofs and roads, ONE accent colour for the UI and the key props. Strong key light plus ambient occlusion. White on white is dull.
- The banner changes when the scene is on screen, not when its code starts.
- No number you can't defend in front of your current employer. Years on the banner are fine; KPIs usually aren't.
- Every frame passes film-audit.
3 · How the template is built (find these sections in film.html)
- CHARACTERS: a character is a list of rects
[x, y, w, h, colour, part, frontOffset, depth], extruded to boxes and grouped into parts (legs, torso, arms, head, hair) with pivots.career.json → looksgives one outfit per chapter.makeMini()makes the cast;buddyVox()makes the robot. - The outfit wipe: each outfit is a separate voxel body clipped by a moving plane;
WIPES = [[t, from, to]]. - WALK:
IK = [[t, x, z, ryWhenStopped]]waypoints, trapezoid speed, leg phase from distance.SITS = [[from, to]]for desks. - ZONES:
zoneG(tIn, tOut)makes a chapter that rises and sinks; anything that moves goes inwrap(zone). - CAMERA:
CK = [[t, A(...) | F(...)]]. - OVERLAYS: all text comes from
career.json. - AUDIT:
AUD_S(solids),AUD_M(movers),HELD(contacts that are meant to happen),window._dbg(what probes can measure).
4 · Adding a chapter
- Pick a strip of street (x range) next to the last chapter. The walking lane is z ≈ 2.6–3.4, props stand behind it (z < 0), a desk sits in front (z ≈ 5.4) with its chair behind.
- Build the set in a
zoneG(tIn, tOut); put movers inwrap(zone). - Add IK waypoints for the walk in and the stop, a
WIPESentry for the outfit, andCKkeys (follow while walking, an absolute hold on the beat). - Add the era to
career.jsonat the moment the set is up and the outfit is on. Add the subtitles. - Register every solid in AUD_S and every mover in AUD_M. Add the audio cues in
template/audio.py. - Run the gates (stills sheet →
node tools/collide.mjs→ probes), then an independent auditor.
5 · Common traps in this style
- A prop behind the head (shelves, screens, caps on a production line) reads as a hat or a halo. Probe it. Fix it with camera height, a sidestep, or a later move.
- Pairs of people standing one behind the other fuse into a two-headed figure. Space them a body-width apart in x.
- Things handed between people must stay at chest height and never cross a face. Route them through the hero's desk if they'd cross the room.
- The hero walking sideways sweeps their shoulders across things beside the lane. Keep 1.3 units of clearance.