Skip to content

Thought bubble cycling behavior #302

Description

@williamthorsen

Problem

Thought bubbles currently display static text. The design calls for cycling content — multiple texts rotating every 4-6 seconds, staggered across agents — plus freeze-on-hover interaction.

Context

The ThoughtBubbleConfig type (introduced in #295 / #299) already supports cycling: it has a texts: ThoughtBubbleText[] array and a staggerOffsetMs field. The data model is ready. What's missing is the cycling behavior in the rendering layer.

The LogicalSceneState mapper (from #299) populates thought bubble content with multiple text items per agent. This ticket covers the presentation-layer behavior that consumes that data.

Related: #299 (logical scene state), #295 (visualization workstreams)

Solution

Implement cycling behavior in the tilemap scene (or as a shared utility if applicable to other visualizations):

  • Rotate through texts[] at a configurable interval (4-6 seconds)
  • Apply staggerOffsetMs so bubbles don't all change simultaneously
  • Freeze cycling on hover (resume on mouse leave)
  • Smooth fade transition between text items

Acceptance criteria

  • Thought bubbles cycle through their texts[] array
  • Cycling is staggered across agents using staggerOffsetMs
  • Hovering a thought bubble freezes its cycling
  • Transitions between text items are visually smooth

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureAdded or improved external functionalityscope:factory

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions