---
title: "POV AR Retail — first-person hands + holographic product UI in a supermarket aisle"
tier: hero
format: short-form-video
theme: retail | ar | commerce | product | tech-demo
persona: retail marketer, CPG brand, in-store innovation lead, AR prototype team, DTC growth
duration: "1 SKU → 20–35s vertical POV reel in ~8–14 min"
budget_usd: "$1.20–$3.80 (product lock + aisle atmosphere + AR overlay + POV i2v motion)"
caps: ["place_subject", "kontext-edit", "nano-banana", "gpt-image", "flux-dev", "hyperframes-render", "pixverse-i2v", "seedance-mini-i2v", "ffmpeg-mux", "music"]
skills: ["short-form-video", "hyperframes-overlays", "commercial"]
showcases: ["/chapters/pov-ar-retail-example.html"]
status: "live (2026-08-03) — Wave 1 showcase rendered E2E via MCP. See /chapters/pov-ar-retail-example.html"
reliability: 3.9 # first E2E showcase; curated (≥4.0) deferred until a second successful run
---

# POV AR Retail — first-person hands + holographic product UI

Point this at a real product SKU — a cereal box, a skincare bottle, a beverage can — and Livepeer Agent builds a **first-person supermarket POV reel**: your hands reach for the product on a shelf, lift it, and **holographic AR UI** blooms around the locked pack — price, promo badge, nutrition highlights, a "Add to list" chip. The aisle carries the realism; the HTML layer carries the commerce data AI video can never render legibly.

This is a **tech-demo format** for in-store AR prototypes, retailer pitch decks, and social "future of shopping" cuts — not a literal AR app recording.

## What you'll get

- **A locked product asset** — the exact SKU shape, label, and color held across every frame via edit-not-regenerate placement
- **A supermarket atmosphere still** — blurred aisle depth, fluorescent-warm lighting, shelf context
- **A holographic AR UI layer** — price, promo, nutrition callouts, CTA chip — pixel-perfect HTML composited over the footage
- **POV hand motion** — first-person reach, grab, lift via fast image-to-video on the composed frame
- **A 20–35s vertical 9:16 MP4** — ready for LinkedIn, Instagram Reels, or a retailer pitch deck embed

## Fill in your BRIEF

```yaml
product_name:          # e.g. "Oatly Barista Edition 1L"
brand_name:            # e.g. "Oatly"
product_photo_url:     # REQUIRED — real packshot URL for product lock
price:                 # e.g. "$4.99" — renders in HTML, never in pixels
promo_badge:           # e.g. "BOGO this week" — blank to omit
nutrition_highlights:  # 2–4 chips, e.g. "7g protein" / "No added sugar" / "Barista blend"
cta_label:             # e.g. "Add to list" — default "Add to list"
aisle_context:         # e.g. "dairy-alternatives aisle, eye-level shelf, soft bokeh background"
hand_action:           # reach-grab-lift (DEFAULT) | rotate-inspect | scan-barcode
aspect_ratio: 9:16
duration_seconds: 25   # 20–35
launch_slug:           # kebab-case, e.g. oatly-barista-pov-ar
```

## CONVENTIONS

1. **HITL gates:** at every STOP, ask exactly one specific question with concrete options. Never proceed without an answer. Never bundle multiple decisions into one STOP.
2. **Cost ceiling:** total < $10. After each stage, print running cost. If approaching $10 cumulatively, halt and ask "approaching $10. continue / stop?".
3. **Output paths:** write HTML to `public/launches/{launch_slug}-pov-ar.html`. Print full absolute paths at end.
4. **Brand stickiness:** register a brand kit from the product's palette + brand_name in Stage 1, then `set_active_brand_kit`.
5. **MCP envelope gaps:** `ffmpeg-concat` and `ffmpeg-mux` with array params need direct SDK POST when the MCP envelope drops them.
6. **On capability failure:** retry once after 5s. On second failure, ask "<step> failed: <error>. retry / skip / abort?".
7. **Polling:** poll `get_create_media` every 8–15s until `done` or `failed`.
8. **Bearer token:** in cowork, the MCP host injects it. For SDK curl, read `~/.daydream/credentials`.

## The cap chain (PROVEN recipe)

```
product_photo_url + aisle_context
  → LOCK the product                       # save hero packshot URL — never re-generate the SKU
  → place_subject | kontext-edit           # place the locked product into the aisle atmosphere
       "keep this exact product identical — restage only the shelf scene, POV angle"
  → hyperframes-render                       # THE AR UI LAYER over the composed still:
       • holographic price chip + promo_badge
       • nutrition_highlights as floating glass cards
       • cta_label button with subtle pulse
       • cyan/violet AR glow aesthetic (CSS box-shadow + backdrop-filter)
  → create_media action:"animate"            # POV motion on the AR-composited frame
       pixverse-i2v (fast) | seedance-mini-i2v (balanced)
       prompt: "first-person POV hands reaching for product, gentle lift, subtle camera sway,
                supermarket aisle, keep product label sharp"
  → music                                    # subtle tech-demo bed, instrumental, no vocals
  → ffmpeg-mux audio_fill:"loop"             # bed under full duration
```

**Alternative path (baked still + motion):** composite AR UI onto the still first, animate that single frame — avoids product drift between placement and motion.

## STAGE 0 — Confirm the brief (~0 min, $0)

Restate product, price, promo, and the POV action. Confirm `product_photo_url` is a public https URL. One line: "25s 9:16 POV AR retail reel for {product_name}, locked SKU + holographic UI, ~$1.20–$3.80, ~8–14 min."

**STOP:** "Brief looks right? (approve / edit [field] [new value])"

## STAGE 1 — Lock the product (~1 min, ~$0.05–$0.12)

Upscale or clean the packshot if needed. Save the URL as the **locked reference** — every downstream step uses this exact asset. Register a brand kit from the pack's dominant colors + brand_name.

Show the locked product on a neutral background.

**STOP:** "Product lock looks correct? (approve / use-different-photo [URL])"

## STAGE 2 — Build the aisle scene (~2 min, ~$0.15–$0.30)

Place the locked product into a supermarket shelf scene matching `aisle_context`. POV angle: slightly below eye level, product at center-right, aisle depth blurring behind. The product's label, shape, and color must match the lock exactly.

Show the composed still before any AR UI or motion spend.

**STOP:** "Aisle scene + product placement OK? (approve / redo-scene [direction])"

## STAGE 3 — Preview AR UI copy (~30s, $0)

Show the holographic UI as a text mock — price, promo badge, nutrition chips, CTA — before rendering. Commerce data MUST come from the brief; never invent prices.

**STOP:** "AR UI copy correct? (approve / fix [field] [value])"

## STAGE 4 — Composite the AR overlay (~1–2 min, ~$0.20–$0.40)

Render the holographic UI layer over the aisle still. Glass-morphism cards, cyan/violet glow, floating price chip, nutrition highlights, pulsing CTA. Show a static preview frame.

**STOP:** "Approve the AR overlay, or tweak UI? (approve / tweak [element])"

## STAGE 5 — POV motion pass (~3–5 min, ~$0.50–$1.50)

Animate the AR-composited frame with first-person hand motion — reach, grab, lift. Use the fast i2v tier; keep duration 5–8s. If hands deform the product label, fall back to a subtle camera-push Ken-Burns on the still+overlay.

**STOP:** "Approve the POV clip, or keep the AR still? (approve / keep-still / redo-motion [direction])"

## STAGE 6 — Music + package (~1 min, ~$0.10–$0.20)

Mux a subtle tech-demo instrumental bed under the clip. Write the showcase HTML to `public/launches/{launch_slug}-pov-ar.html` with the embedded reel, product details, and AR UI spec.

**STOP:** "Ship the reel? (approve / add-second-angle [hand_action variant])"

## Quality bar (definition of done)

- ✅ The product label is **identical** to the locked packshot — no drifted logo, no melted barcode.
- ✅ Price, promo, and nutrition data live in the **HTML AR layer** — none baked into generated pixels.
- ✅ POV framing reads as first-person supermarket — hands enter from bottom, product lifts naturally.
- ✅ AR UI feels holographic (glow, glass cards) without obscuring the product face.
- ✅ 9:16 vertical, 20–35s, music bed covers the full clip.

## Watch-outs

- **Never re-generate the product.** Lock once, place via edit-not-regenerate. Drifted packaging kills retailer trust instantly.
- **Hands are the highest-drift element.** If i2v warps fingers or smears the label, use Ken-Burns camera push on the AR still instead — the format still reads.
- **Price in HTML only.** Same rule as e-commerce lookbook — a melted "$4.99" destroys the demo.
- **This is a concept reel, not a live AR capture.** Include an honesty line in the showcase: "Illustrative AR prototype — AI-generated POV, not a device recording."

## FINAL OUTPUT

```
✅ POV AR retail reel: public/launches/{launch_slug}-pov-ar.html
✅ Final MP4 (9:16): <URL>
✅ Locked product verified against placement: yes/no
✅ AR UI: price · promo · {N} nutrition chips · CTA

Total spent: $X.XX
Total wall-clock: MM:SS
```

## AFTERCARE

1. **Second SKU, same aisle** — swap `product_photo_url` and commerce data; reuse the aisle atmosphere still.
2. **Landscape pitch cut** — re-export the AR overlay at 16:9 for a retailer deck slide.
3. **Comparison mode** — two locked SKUs side-by-side with dual AR price chips (run placement twice, grid composite).
4. **Real AR handoff** — export the AR UI spec (chip positions, copy, colors) as a JSON appendix for an engineering prototype.

---

## Notes for the agent (only read if a step fails)

**Product placement:** `place_subject` fans out one call; `kontext-edit` gives finer POV control. Always instruct: "keep this exact product perfectly identical."

**i2v chain:** pixverse-i2v (fast, ~50s p95) → seedance-mini-i2v (balanced) → Ken-Burns on AR still (deterministic fallback).

**Hyperframes >15s:** call compositor directly with `duration:N` when the reel exceeds 15s.
