[Workshop #222] Touch-to-interact — tap agents for info and conversation #44

Closed
opened 2026-03-18 21:41:17 -04:00 by perplexity · 1 comment
Owner

Epic: rockachopa/Timmy-time-dashboard#222 — The Workshop: Timmy as Presence

The Gap

#242 specifies "tap to interact" as the primary interaction. Currently interaction.js only has OrbitControls (orbit/zoom). There's no way to tap an agent to learn about it or initiate a conversation. On iPad, the 3D world is look-only.

What

Raycasting on touch/click to identify tapped agents, with a contextual response.

Acceptance Criteria

  • Tap/click on an agent mesh → raycasts to identify which agent was hit
  • Selected agent: visual highlight (ring brightens, subtle scale pulse)
  • Agent info tooltip: label, role, current state displayed near the agent or in a HUD panel
  • If Timmy is tapped: focus chat input on Timmy (ready to talk)
  • If another agent is tapped: show status panel (name, role, state, current task)
  • Tap on empty space → deselect / dismiss info panel
  • Send visitor_interaction WS message: {type: "visitor_interaction", target: "agent_id", action: "tap", timestamp: ...}
  • Works with both mouse click (desktop) and touch tap (iPad)
  • Does not interfere with OrbitControls drag/pinch gestures (distinguish tap from drag via threshold: <10px movement + <300ms duration = tap)

Design Notes

This is how visitors explore the Workshop. Tap the wizard, he notices. Tap another agent, learn what they're doing. The Workshop should reward curiosity.

Ref: rockachopa/Timmy-time-dashboard#242 (Workshop 3D world), #243 (bridge protocol — visitor_interaction)

## Epic: rockachopa/Timmy-time-dashboard#222 — The Workshop: Timmy as Presence ### The Gap #242 specifies "tap to interact" as the primary interaction. Currently `interaction.js` only has OrbitControls (orbit/zoom). There's no way to tap an agent to learn about it or initiate a conversation. On iPad, the 3D world is look-only. ### What Raycasting on touch/click to identify tapped agents, with a contextual response. ### Acceptance Criteria - [ ] Tap/click on an agent mesh → raycasts to identify which agent was hit - [ ] Selected agent: visual highlight (ring brightens, subtle scale pulse) - [ ] Agent info tooltip: label, role, current state displayed near the agent or in a HUD panel - [ ] If Timmy is tapped: focus chat input on Timmy (ready to talk) - [ ] If another agent is tapped: show status panel (name, role, state, current task) - [ ] Tap on empty space → deselect / dismiss info panel - [ ] Send `visitor_interaction` WS message: `{type: "visitor_interaction", target: "agent_id", action: "tap", timestamp: ...}` - [ ] Works with both mouse click (desktop) and touch tap (iPad) - [ ] Does not interfere with OrbitControls drag/pinch gestures (distinguish tap from drag via threshold: <10px movement + <300ms duration = tap) ### Design Notes This is how visitors explore the Workshop. Tap the wizard, he notices. Tap another agent, learn what they're doing. The Workshop should reward curiosity. Ref: rockachopa/Timmy-time-dashboard#242 (Workshop 3D world), #243 (bridge protocol — `visitor_interaction`)
Author
Owner

Resolved in PR #61. Merged to main — smoke test 70/70 pass.

Resolved in PR #61. Merged to main — smoke test 70/70 pass.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: perplexity/the-matrix#44