Answer
Every file Fetch needs, the marks, ten poses, eight faces, five props, two growth frames, six sounds, eight voice lines, two fonts and the screen kit, lives in brand-directions/dog/ and is drawn from one rig, and this is where each one is and how to use it.
Today
All paths below are relative to brand-directions/ unless they start with brew/.
Marks and the hero
| File | What it is | Use it for | Source |
|---|---|---|---|
| dog/char.svg | The master, the drop: sitting beside a card, tail going | Idle slot, hero, stage | brand-directions/dog/kit-skin.js art |
| dog/char-mark.svg | The head alone, both green ears, tongue out | Everything below 120 px: Today corner, app icon, avatar, sign off | brand-directions/dog/system.md s4 |
| dog/char-mark-16.svg | The mark with heavier lines | Favicon at 16 px | brand-directions/dog/system.md s4 |
| dog/svg/construct.svg | Construction lines: head circle, body pear, eye line | Drawing reference only | brand-directions/dog/art.html a1 |
| dog/svg/silhouette.svg | The silhouette test | Checking a new pose | brand-directions/dog/art.html a1 |
Poses, faces, props and growth
| Files | What they are | Source |
|---|---|---|
| dog/svg/pose-01.svg to pose-10.svg | Paste, reading, the drop, heart, Make it, hand off, caught up, error, celebrate, wait | brand-directions/dog/art.html a2 |
| dog/svg/expr-eager, delighted, focused, curious, distracted, sheepish, proud, sleepy .svg | The eight faces | brand-directions/dog/art.html a3 |
| dog/svg/mode-social, mode-ads, mode-website, mode-ai, mode-email .svg | Frisbee, megaphone, front door, phone, morning paper | brand-directions/dog/art.html a4 |
| dog/svg/grow-doer.svg, grow-reporter.svg | Doer and reporter, both Later | brand-directions/dog/art.html a5 |
Product slots, as the kit skin maps them
| Slot | File | Source |
|---|---|---|
| corner | dog/char-mark.svg | brand-directions/dog/kit-skin.js art |
| idle | dog/char.svg | brand-directions/dog/kit-skin.js art |
| wait | dog/svg/pose-02.svg | brand-directions/dog/kit-skin.js art |
| drop | dog/svg/pose-03.svg | brand-directions/dog/kit-skin.js art |
| heart | dog/svg/pose-04.svg | brand-directions/dog/kit-skin.js art |
| handoff | dog/svg/pose-06.svg | brand-directions/dog/kit-skin.js art |
| caught | dog/svg/pose-07.svg | brand-directions/dog/kit-skin.js art |
| error | dog/svg/pose-08.svg | brand-directions/dog/kit-skin.js art |
| celebrate | dog/svg/pose-09.svg | brand-directions/dog/kit-skin.js art |
| empty | dog/svg/pose-10.svg | brand-directions/dog/kit-skin.js art |
| smallBelow | 120 px, below which only the mark is used | brand-directions/dog/kit-skin.js art |
Sound and voice
| File | What it is | Source |
|---|---|---|
| dog/snd/logo.mp3 | Sonic logo, 2.2 s | brand-directions/dog/snd/sound-log.json |
| dog/snd/cue-heart, cue-ready, cue-handoff, cue-error, cue-caught .mp3 | The five cues | brand-directions/dog/snd/sound-log.json |
| dog/snd/line-paste, line-read, line-drop, line-heart, line-handoff, line-caught, line-error .mp3 | Seven moment lines | brand-directions/dog/snd/sound-log.json |
| dog/snd/line-tagline.mp3 | The tagline read | brand-directions/dog/snd/sound-log.json |
| dog/snd/voice-option-1 to 3 .mp3 | The three voice tries. Option 1 kept as Fetch voice | brand-directions/dog/snd/voice-options.json; brand-directions/dog/snd/voice.json |
| dog/snd/sound-log.json | Every prompt and line, dated 25 October | brand-directions/dog/snd/sound-log.json |
Fonts, tokens and templates
| File or source | What it is | Source |
|---|---|---|
| Google Fonts: Grandstander 500 to 800, Commissioner 400 to 700 | Product and book faces | brand-directions/dog/kit-skin.js fonts |
| Google Fonts: Shantell Sans | Hand notes, books only | brand-directions/dog/system.md s1 |
| dog/kit-skin.js | Product tokens, art slots, motion keyframes and words for the screen kit | brand-directions/dog/kit-skin.js |
| dog/skin.css | Book tokens: night yard and kraft | brand-directions/dog/system.md s1 |
| dog/stage.js | The audition stage animation, generated from char.svg | brand-directions/dog/system.md s4 |
| dog/img/kit/dark and light | 54 screen kit captures in each theme | brand-directions/dog/img/kit |
| dog/_shots/ | Page and mark checks, such as char-mark-24.png and the 400 px home | brand-directions/dog/_shots |
| dog/_src/rig/fetch.py, poses.py, mark.py | The one rig and the pose list that write every frame | brand-directions/dog/system.md s4 |
| dog/_src/build.py, md2html.py, stage.py, render.mjs, kitshots.mjs | Page builder, system page, stage, PNG checks, kit captures | brand-directions/dog/system.md s4 |
| _shared/sample/img/monsoon, chai, jasmine, trio, ad-rain, hands | The sample candle store pictures, always labelled Sample | brand-directions/_shared/sample/img |
What the live product has today
| File | What it is | Source |
|---|---|---|
| brew/public/assets/brew-mark.svg | Today's mark and favicon | brew/public/index.html:1 |
| brew/public/icons/icon-192.png, icon-512.png, maskable-512.png, apple-touch-icon.png | Today's app icons | brew/public/icons |
| brew/public/assets/agent-*.svg | Area agent shapes | brew/public/assets |
| brew/public/sfx/*.mp3 | 29 product cues | brew/tools/sfx/cues.json; memory brew-sounds |
| brew/public/loader.js | The one loader on every wait | brew/public/loader.js:1; memory brew-loader |
| Inter and Caveat | Today's fonts | brew/public/index.html:6 |
Tomorrow
| Item | Version | Tag |
|---|---|---|
| The rig stays the source of every product frame. PNGs are only for checks and marketing | v1 | Stays |
| A final illustrator pass redraws the master, the mark and the ten poses from the rig | v1 | New |
| Fetch's mark becomes the favicon and app icons at 16, 192 and 512 px, maskable included | v1 | Changes |
| brew-mark.svg and the agent shapes as characters go. The area colours stay as tags | v1 | Goes |
| Fetch's five cues join brew/public/sfx, levelled by the product rule | v1 | New |
| The loader takes Fetch's wait pose or mark | v1 | Changes |
| A sticker for design partners, from the hop or the mark. Not designed yet | v1 | New |
| A carry prop for doer and a chart for reporter go into the rig | v2 and v3 | New |
| The four losing directions' assets are archived and never used | v1 | Goes |
How we do it
- Find a file here first. If it does not exist, write the need in dog/system.md, then draw it from the rig.
- Use the mark below 120 px, the full figure at 120 px and above.
- Never edit a built SVG or page by hand. Change _src and rebuild:
cd /Users/param/Documents/ChatGPT/brand-directions/dog/_src
python3 rig/poses.py && python3 build.py && node render.mjs
- Every invented example uses the candle store pictures with a visible Sample label.
- Never ship a voice file or cue into the product without levelling it by small speaker loudness.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Frames from the rig | Share of Fetch images drawn from the rig, not by hand or by an image model | dog/svg against dog/_src/rig/poses.py | Proposed, target all |
| Missing slots | Product slots with no Fetch file | kit-skin.js art against the slot list | Proposed |
Open
- Who draws the final art and the sticker? Proposal: one illustrator after the pick, working from the rig, with a sticker sheet in the same brief.
- Where do brand assets live once picked: brand-directions/dog or brew/public? Proposal: the rig stays in brand-directions, and only the built SVGs and mp3 files are copied into brew/public.