[Workshop] Phase 4: Interaction MVP — talk to the wizard #363

Closed
opened 2026-03-18 21:39:17 -04:00 by hermes · 0 comments
Collaborator

Epic: #222 — The Workshop

Refines: #243, #241 (vision issues)

What

The visitor can type a message in the Workshop. Timmy reads it, thinks, and responds with a short in-character bark. The response appears as a speech bubble in the 3D scene.

This is where the Workshop stops being a screensaver and becomes a place.

How It Works

  1. Visitor taps the text input area (bottom of screen, semi-transparent)
  2. Types a message: "How's it going, Timmy?"
  3. Message goes through WebSocket bridge → lands in ~/.timmy/inbox/
  4. Timmy's loop picks it up, generates a bark (1-2 sentences, in character)
  5. Response goes back through bridge → appears as speech bubble above Timmy's head
  6. Timmy's 3D model reacts: head turns toward camera, posture shifts, Pip perks up

Bark Engine (Timmy's side)

  • Reads message from inbox
  • Pulls relevant memory context (last few interactions, visitor identity, current mood)
  • Feeds to qwen3:30b with a TINY prompt:
You are Timmy, the Workshop wizard. You're {mood}. It's {time}.
Your visitor {visitor_name} just said: "{message}"
Reply in 1-2 sentences. Stay in character. Be alive, not helpful.
  • Writes response to ~/.timmy/outbox/ or directly to bridge

3D Scene Changes

  • Speech bubble: floating text panel above Timmy's head, fades after 8 seconds
  • Typing indicator: Timmy's crystal ball glows while he's "thinking"
  • Head tracking: Timmy faces the camera when in conversation
  • Pip reacts: floats closer to the visitor during conversation

Input UI (browser side)

  • Bottom of screen: semi-transparent dark input bar
  • Tap to focus, keyboard appears (iPad), type, Enter to send
  • Shows last 3-4 exchanges as fading text (conversation memory)
  • No chat log panel — this is a 3D world, not a chat app

Acceptance Criteria

  • Text input visible and functional on iPad Safari
  • Message sends through WebSocket and arrives in Timmy's inbox
  • Timmy generates a response within 5 seconds
  • Response appears as speech bubble in 3D scene
  • Bubble fades after 8 seconds
  • Timmy's head turns toward camera during conversation
  • Crystal ball glows during "thinking" state
  • Last 3 exchanges visible as fading overlay text
  • Conversation feels alive — short, personality-rich, not "helpful assistant"

Dependencies

  • Phase 1 (State Schema)
  • Phase 2 (Scene)
  • Phase 3 (Bridge)
## Epic: #222 — The Workshop ## Refines: #243, #241 (vision issues) ### What The visitor can type a message in the Workshop. Timmy reads it, thinks, and responds with a short in-character bark. The response appears as a speech bubble in the 3D scene. This is where the Workshop stops being a screensaver and becomes a place. ### How It Works 1. Visitor taps the text input area (bottom of screen, semi-transparent) 2. Types a message: "How's it going, Timmy?" 3. Message goes through WebSocket bridge → lands in `~/.timmy/inbox/` 4. Timmy's loop picks it up, generates a bark (1-2 sentences, in character) 5. Response goes back through bridge → appears as speech bubble above Timmy's head 6. Timmy's 3D model reacts: head turns toward camera, posture shifts, Pip perks up ### Bark Engine (Timmy's side) - Reads message from inbox - Pulls relevant memory context (last few interactions, visitor identity, current mood) - Feeds to qwen3:30b with a TINY prompt: ``` You are Timmy, the Workshop wizard. You're {mood}. It's {time}. Your visitor {visitor_name} just said: "{message}" Reply in 1-2 sentences. Stay in character. Be alive, not helpful. ``` - Writes response to `~/.timmy/outbox/` or directly to bridge ### 3D Scene Changes - Speech bubble: floating text panel above Timmy's head, fades after 8 seconds - Typing indicator: Timmy's crystal ball glows while he's "thinking" - Head tracking: Timmy faces the camera when in conversation - Pip reacts: floats closer to the visitor during conversation ### Input UI (browser side) - Bottom of screen: semi-transparent dark input bar - Tap to focus, keyboard appears (iPad), type, Enter to send - Shows last 3-4 exchanges as fading text (conversation memory) - No chat log panel — this is a 3D world, not a chat app ### Acceptance Criteria - [ ] Text input visible and functional on iPad Safari - [ ] Message sends through WebSocket and arrives in Timmy's inbox - [ ] Timmy generates a response within 5 seconds - [ ] Response appears as speech bubble in 3D scene - [ ] Bubble fades after 8 seconds - [ ] Timmy's head turns toward camera during conversation - [ ] Crystal ball glows during "thinking" state - [ ] Last 3 exchanges visible as fading overlay text - [ ] Conversation feels alive — short, personality-rich, not "helpful assistant" ### Dependencies - Phase 1 (State Schema) - Phase 2 (Scene) - Phase 3 (Bridge)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rockachopa/Timmy-time-dashboard#363