Lock nearby dancers to one beat #175

Open
opened 2026-10-25 02:38:33 +00:00 by sermuns · 0 comments
Owner

Emotes start when each client first sees them, so a group dance is a pile of different phases. The fix is a shared beat: when two or more players emote within earshot, snap the performances to a common phase and let the music director pick a take at that tempo. A flash mob becomes possible without anyone organising it.

How it fits. The emote already travels in the pose; what is missing is a shared clock. The server can publish a beat epoch in the welcome, or include one in the event state, so every client quantizes to the same grid. The avatar animation already runs from a local phase in liuverse-world::avatar; snapping that phase is a local change. The director can hear "crowd dancing" as a mood, the same way it hears a vehicle.

Scope.

  • A server-owned beat epoch, carried once and re-synced like the event clock.
  • Quantize an emote's start to the next beat when another emote is already running nearby.
  • A crowd mood for the music director, with a matching tempo.
  • Keep solo emotes loose; only nearby groups snap.
  • No new per-frame wire traffic.

Related. #168 (busking), #204 (karaoke), #205 (greetings).

Emotes start when each client first sees them, so a group dance is a pile of different phases. The fix is a shared beat: when two or more players emote within earshot, snap the performances to a common phase and let the music director pick a take at that tempo. A flash mob becomes possible without anyone organising it. **How it fits.** The emote already travels in the pose; what is missing is a shared clock. The server can publish a beat epoch in the welcome, or include one in the event state, so every client quantizes to the same grid. The avatar animation already runs from a local phase in `liuverse-world::avatar`; snapping that phase is a local change. The director can hear "crowd dancing" as a mood, the same way it hears a vehicle. **Scope.** - A server-owned beat epoch, carried once and re-synced like the event clock. - Quantize an emote's start to the next beat when another emote is already running nearby. - A crowd mood for the music director, with a matching tempo. - Keep solo emotes loose; only nearby groups snap. - No new per-frame wire traffic. **Related.** #168 (busking), #204 (karaoke), #205 (greetings).
Sign in to join this conversation.
No description provided.