---
id: "3.11"
title: "Character usage, Ocho"
dept: design
status: draft
owner: Param
branded: true
direction: octopus
last_verified: 2026-10-26
sources:
  - "brand-directions/octopus/kit-skin.js"
  - "brand-directions/octopus/system.md"
  - "brand-directions/docs2/data/dirs.json"
  - "brand-directions/_shared/product-model.md:129-142, 207"
  - "brand-directions/_shared/kit-contract.md:19-27"
  - "brand-directions/_shared/ia.md:83-131"
  - "brand-directions/_shared/no-ai-look.md:7-18, 52-58"
  - "brand-directions/_kit/render.js:47-54"
  - "brand-directions/_kit/screens.js:83-536"
  - "brand-directions/BRIEF.md:241-276"
  - "brand-directions/_shared/surface-map.md:463, 473, 475"
  - "memory: brand-directions-2026-10-25, brew-sounds"
---

# Character usage, Ocho

## Answer

Ocho, an overcommitted hot pink octopus doing eight things at once for your store, is Brew's one character in this direction, and it lives only in seven fixed slots, narrating the week around the brand's work and never sitting on a control, a card or a brand photo.

## Today

Checked 26 October 2026.

| Fact | Source |
|---|---|
| The live product has no character. It shows five agent faces and colours, which go; only the area dots stay | [src: brand-directions/_shared/surface-map.md:463] |
| Logo stickers sit in the feed today and go from view | [src: brand-directions/_shared/surface-map.md:475] |
| The live app plays sound unless switched off, with 8 synthesized and 29 recorded cues | [src: brand-directions/_shared/surface-map.md:473] |
| Five directions are in audition; Param picks one and everything is redone around it | [src: memory brand-directions-2026-10-25] |
| Ocho's art: every frame is drawn as vector from one rig, octopus/_src/rig/ocho.py, by poses.py | [src: brand-directions/octopus/system.md:90-111] |
| Owned colour hot pink #ff4fa3 with belly #ffd1e6 and ink outline #1a1218; matte, no other colour on Ocho | [src: brand-directions/octopus/system.md:90-111] |
| Anatomy that never changes. One body, a calm face that changes by swapping rig poses, hot pink with a belly of #ffd1e6 and an ink outline. | [src: brand-directions/octopus/system.md:90-111] |
| Signature. The signature face: left brow down, right cheek puffed, lips pursed, blowing steam. | [src: brand-directions/docs2/data/dirs.json] |
| Illustration treatment, books and marketing only: the sucker print: two inks on draft paper, the belly pink plate printed 5 px right and 4 px down, and a halftone of sucker dots fading in from one corner | [src: brand-directions/octopus/system.md:33-35] |
| The kit gives Ocho these poses: corner octopus/char-mark.svg, idle octopus/char.svg, wait octopus/img/v/pose-02.svg, celebrate octopus/img/v/pose-celebrate.svg, error octopus/img/v/pose-10.svg, empty octopus/img/v/pose-08.svg, caught octopus/img/v/pose-09.svg, handoff octopus/img/v/pose-07.svg, drop octopus/img/v/pose-03.svg, heart octopus/img/v/pose-04.svg | [src: brand-directions/octopus/kit-skin.js:19-30] |
| Below 120 px the kit swaps any pose for the small mark, octopus/char-mark.svg, the puffed cheek and pursed lips, a coffee held up and the steam puff; octopus/char-mark-16.svg, the head alone, at 16 px | [src: brand-directions/_kit/render.js:52-54] |
| No raw generated image may appear; every character image is a flat traced SVG in the direction's palette | [src: brand-directions/_shared/no-ai-look.md:52-58] |

## Tomorrow

Ocho arrives in v1 as an add on layer behind its own off switch. Remove it and every control still works. [src: brand-directions/_shared/product-model.md:131, 152] v1, New.

### The slots

| Slot | Model size | Kit size | Pose | File drawn | Screens | Words |
|---|---|---|---|---|---|---|
| Today header corner | 40 to 56 px | 44 px phone, 56 px laptop | corner | octopus/char-mark.svg | t1, d1 | "Monday. Arms full. Five picks for your store, drafted." on Monday, "Morning. Arms still full. Still on one coffee." other days |
| Sign in corner | small corner | 48 px | corner | octopus/char-mark.svg | f2 | "Your work email keeps your store with your own team." |
| Reading your store | 120 to 180 px | 140 px | wait | octopus/img/v/pose-02.svg | f4 | "Eight arms reading your store. About 3 to 4 minutes." |
| The reveal | 160 px | 160 px | celebrate | octopus/img/v/pose-celebrate.svg | f7 | "Found this one with arm four. Proud of it." |
| Empty states | 96 px | 96 px | empty | octopus/char-mark.svg | w2, f6 | "Nothing in the works yet. My arms are suspiciously free." |
| Celebrations | 120 px | 120 px | celebrate or caught | octopus/img/v/pose-celebrate.svg; caught up octopus/img/v/pose-09.svg | h2, t5 | "Arms free. That is the week." |
| A heart | celebration, small | 40 px in the toast | celebrate | octopus/char-mark.svg | t6 | "Stuck it. More like it, coming up." |
| Errors and cap reached | 96 px | 96 px; 56 px inside Make it | error | octopus/char-mark.svg | f3, f5, m5, x1 | "Smudged it. Your earlier versions are safe. Try again." |
| Long waits | wait pose | 64 px making, 96 px offline | wait | octopus/char-mark.svg | m2, x2 | "Ink drying. You can leave, I will keep it." |
| Your store header | idle | 56 px | idle | octopus/char-mark.svg | y1 | "What customers, rivals and AI answers say about your store." |
| Brief page sign off | 32 px | 32 px | corner | octopus/char-mark.svg | h3 | "Drafted by Ocho. Over to you." |
| Monday email sign off | small | 28 px | corner | octopus/char-mark.svg | e1 | "Morning. Five picks for your store, drafted and waiting." |

Ocho appears in 18 of the 45 screens. [src: brand-directions/_shared/ia.md:131] [src: brand-directions/_kit/screens.js:83-536] [src: brand-directions/octopus/kit-skin.js:42-84]

### Never

- On buttons, inside the thing being made, on tables of numbers, in Need your yes decisions, over a brand's own photos. [src: brand-directions/_shared/product-model.md:142]
- On a card. Cards belong to the brand; Ocho speaks around them. [src: brand-directions/_shared/product-model.md:207]
- As a second character. No team of octopuses. Frantic motion is for marketing and the stage; in the product Ocho does one thing at a time.
- In money, privacy, apologies or anything a person must sign.

### How Ocho behaves

- Errors tie Ocho in a knot. The ink puff is small and to one side, for oops only, never a threat.
- Full poses carry a hard offset print shadow, 4 px right and 3 px down in pink at 30 percent; the corner mark does not.
- One motion at a time in the product, at real moments only, all inside the reduced motion check.
- Voice: Fact first, joke second. One joke per line at most. Short clauses, many full stops, talks like someone holding six things and still answering properly. First person about itself, second person to you.

| Pose | Motion in the product |
|---|---|
| idle | bob, 3.2 s loop |
| wait | rock, 1.2 s loop |
| celebrate | hop, 0.95 s, once |
| error | knot shake, 2.4 s, once |

[src: brand-directions/octopus/kit-skin.js:31-41]

### Lines Ocho may say and never says

| May say | Never says |
|---|---|
| Arms full. Five picks, drafted, still warm. | I posted it for you. |
| Eight arms reading. About 3 to 4 minutes. | Scheduled for 9am. |
| You stuck it. More like it, coming up. | Your sales went up after my picks. |
| Fresh ink. The old one is still in the stack. | You missed a week. |
| Brief copied, link ready. You pass it on, and I get an arm back. | Don't lose your streak. |
| One arm up. This one needs your yes. | Only two hours left to claim your read. |
| Arms free. New picks Monday. | Works for any store. |
| Ah. I tied myself in a knot. Your work is safe. Try again in a second. | Your rival is crushing you. |
| Out of arms for now. Reads are capped while we build v0. Ask us for one. | Trust me. |
| I'm not sure of this number. Confirm it before you use it. | I'm stressed because of you. |

[src: brand-directions/docs2/data/dirs.json]

### Areas as props

| Area | Ocho's prop |
|---|---|
| Social posts | the paintbrush |
| Ads | the megaphone |
| Website | the shopping bag |
| AI search | the phone |
| Email and WhatsApp | the scroll |

Ocho's own three arms hold the coffee, the calendar and the clipboard. Files: octopus/img/v/mode-brush.svg, mode-megaphone.svg, mode-bag.svg, mode-phone.svg, mode-scroll.svg. Props show in marketing, the reveal and celebrations; in the product the area is a small dot and a word. [src: brand-directions/octopus/system.md:77]

### Growing with the product

| Version | What Ocho gains | File | Tag |
|---|---|---|---|
| v1 | the slots above, as adviser | octopus/char.svg | New |
| v2 | a clock and an approve stamp | octopus/img/v/grow-doer.svg | New |
| v3 | a scorecard and a magnifier | octopus/img/v/grow-reporter.svg | New |
| v4 | running within rules: no prop defined yet | not drawn | New |

New abilities arrive as new props or poses, never a new character. [src: brand-directions/BRIEF.md:241-249]

### Sound

Six cues, off on a first visit, one switch in Settings: logo octopus/snd/logo.mp3, heart octopus/snd/cue-heart.mp3, ready octopus/snd/cue-ready.mp3, handoff octopus/snd/cue-handoff.mp3, error octopus/snd/cue-error.mp3, caught octopus/snd/cue-caught.mp3. The longer line files are for books, the site and marketing and never play in the product. [src: brand-directions/octopus/kit-skin.js:86-89]

## How we do it

1. Need a new moment? Add the prop, pose or line to brand-directions/octopus/system.md first.
2. Draw it from the one source: every frame is drawn as vector from one rig, octopus/_src/rig/ocho.py, by poses.py. Never redraw the body by hand, never use a raw generated image.
3. Add the file to the art key in brand-directions/octopus/kit-skin.js and any words to the words key, 12 words at most.
4. Place it only in a named slot from the table above, at its size.
5. Check it at the slot size; under 120 px it must read as the small mark.
6. Switch the character layer off and check the screen still works.
7. Turn on reduced motion and check Ocho holds still.

## Numbers

| Number | Definition | Today | Where measured | Status |
|---|---|---|---|---|
| Screens with Ocho | of 45 kit screens | 18 | _kit/screens.js | Measured |
| Slots | named places Ocho may sit | 7 in the model, 12 placements in the kit | product model, kit | Measured |
| Ocho over a control | instances where Ocho covers a control | not measured | headless audit with the layer on and off | Proposed |
| Character switch off rate | share of people who turn the layer off | not measured | product event | Proposed |

## Open

1. The print shadow on full poses is a drop shadow filter. Does it pass the no soft shadow rule? Proposal: Yes, it has no blur; keep it.
2. Ocho's main button label is 6.0 to 1 on pink. Darker pink for light theme? Proposal: Keep #ff4fa3 in both themes; the label passes.
3. The model puts the first heart in a 120 px celebration; the kit draws it at 40 px inside the toast. Which? Proposal: The first heart at 120 px once, later hearts in the toast.
4. Should the character layer start on or off for a new brand? Proposal: On, with sound off, since the slots never block a control.
