Skip to content

M1: Configurator link — premium 3D PDP replacement (Gatorade-pattern customizer, supersedes #31 shopper scope) #33

Description

@ninan-versioning

The Configurator link (customer surface)

Build shoploop.studio/{slug} — the premium 3D configurator that replaces the static product page. For shoppers.

"Replaces static product pages with premium 3D configurators that keep customers engaged, increase trust, and justify your premium price."

Reference behavior: Gatorade's Adobe Firefly customizable squeeze bottles on gatorade.com — Gatorade shoppers type prompts, pick vibes/colors, and buy their generated bottle for $34.99. Same "customer as designer" pattern, shipped URL-paste, browser-native, OpenUSD-first, on NVIDIA Omniverse.

Relationship to Issue #31

Issue #31 originally scoped this as the sole customer-facing surface. This issue supersedes #31's shopper scope and re-scopes #31 to the shared infrastructure (Kit-App-Template + Omniverse App Streaming + page parser). Close #31 as folded into this + Issue #TBD (Operator link) once both are landed.

Scope (M1)

  • apps/configurator (Next.js on Vercel) — dynamic route /[slug]/page.tsx with SSR shell + client-side Kit stream.
  • Kit stream mount — Omniverse App Streaming API iframe pointed at AWS g5.xlarge spot pool via packages/embed.
  • Multi-camera rig — shopper can toggle:
    • Hero-shot (editorial 3/4)
    • 45° orbit (default)
    • Top-down (flat-lay for wellness-pack composition)
    • Macro (label + ingredient + MolecularNodes overlay)
  • Variant swap panel — reads variant sets from Pimcore, drives USD variant switching without re-render.
  • Customizer surface (Gatorade pattern):
    • Text prompt input (Firefly-style)
    • Emoji + vibe + color pickers
    • Style / material presets pulled from brand_rules.json allowed axes
    • "Save design" persists to Pimcore against a shopper cookie/session
  • Wellness-pack composer — top-down camera mode, drag multiple SKUs onto shared surface, single ATC.
  • ATC posts back to the pasted URL's checkout (customer's own domain). No middleman.
  • PostHog auto-instrumentation — session recording, funnel events (view / spin / swap / customize / ATC / abandon).
  • Embed mode<shoploop-configurator src="…" /> custom element for customers who want to keep their own PDP shell.
  • Trilingual UI (hi/en/mr) — Noto Serif Devanagari + IBM Plex Serif.
  • Guest mode — no login required to view or customize. Save prompts for login.

Architecture

Shopper opens shoploop.studio/{slug}
  → Next.js SSR shell renders instantly (Vercel edge)
  → Client-side <ShoploopConfigurator> mounts
  → WebRTC handshake → Omniverse App Streaming API (AWS g5.xlarge)
  → Kit application streams from container (twin loaded from Pimcore + S3)
  → User interacts: spin, swap, customize, compose pack
  → Every event → PostHog + Pimcore session record
  → ATC → customer's own checkout (URL of the pasted product page)

Frontend on Vercel. Streaming, Kit containers, Pimcore, PostHog all on AWS. Session pool: ≥3 concurrent streams per g5.xlarge spot instance.

Success criteria

  1. Paste https://kapiva.in/products/ashwagandha-gold (or one of 5 seed URLs) into shoploop.studio, land on shoploop.studio/{slug}, see the product streamed as an interactive 3D configurator within 30s cold, <5s warm.
  2. Multi-camera rig switch < 200ms.
  3. Variant swap < 500ms (no re-render).
  4. Customizer generates a valid brand_rules-constrained design in ≤4s (Adobe Firefly Services or self-hosted equivalent — see cost note).
  5. Wellness-pack composer: shopper can drag 3 SKUs onto top-down camera and check out to a single URL.
  6. Twin PBR fidelity ≥ 0.85 per Validation Agent (LOOP_SPEC Loop 4).
  7. Session cost ≤ $0.10 per 30s at warm cache.
  8. <shoploop-configurator src="…" /> renders correctly when embedded on a third-party PDP.

Customizer implementation options

The Gatorade pattern uses Adobe Firefly Services enterprise APIs. We won't gate on Adobe — pick one of:

  • A (fast, external): Adobe Firefly Services API — enterprise pricing, unknown quotas. Trial first.
  • B (self-hosted, preferred long-term): SDXL + IP-Adapter + ControlNet on the same g5.xlarge pool that runs Kit. Constrain outputs to brand_rules.allowed_palette + allowed_typography.
  • C (variant-only for M1): No generative surface, only variant swap + color/material pickers. Ship first, add A or B in v0.2.

Default M1: Option C. Add customizer prompt input as a stub that queues a request handled in v0.2 (Issue #TBD).

Cost envelope

  • Streaming: AWS g5.xlarge spot ≈ $0.40/hr. Pool → ~$0.13/session-hour at 3 concurrent.
  • Cold twin build (URL → USD): ≤ $0.20 per URL, cached indefinitely.
  • Page parser LLM fallback (self-hosted Codestral): ≤ $0.005 per URL.
  • Vercel edge SSR: negligible.
  • Loaded target: ≤$0.10 per 30s shopper session at warm cache; ≤$50/mo per active customer at Loop 4 cap.

Decision-gate answers

  1. Varitea dogfood critical path? Yes — Varitea is one of the 5 seed URLs.
  2. Deepens moat? Yes — no OSS competitor ships a URL-paste, browser-native, Omniverse-streamed configurator.
  3. Mistral cheaper? Page parser + prompt-to-design routes to self-hosted Codestral where possible.
  4. Ships in ≤2 weeks solo? Option C scope (no customizer) — yes. Options A/B — follow-up.
  5. Monthly cost? ≤$50/mo per active customer. Infra baseline ≈ $150/mo idle (1 warm g5.xlarge spot).
  6. Non-URL intake? None — every configurator instance is slug-scoped to a pasted URL.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical path — ships v0.1 or blocks releasearchitectureSystem design / cross-repo contractcost:gpuGPU/render COGS sensitiverev:acquisitionDrives new merchant or new customer signalthreatCompetitive response requiredwedge2D→lifestyle wedge / dogfood critical path

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions