Dancefight: turning a dance-battle idea into granted IP

Dancefight: turning a dance-battle idea into granted IP

As CTO of Dancefight, I built synced dual-video playback, an HLS pipeline and instant voting, now co-inventor on US Patent 11,582,523, with 60K users.

Dancefight: turning a dance-battle idea into granted IP

Client: Virtual Arts Inc. · Role: CTO · When: 2018–2023 · Outcome: US Patent 11,582,523, granted February 2023

The challenge

Short-form video apps are built for one clip at a time. Dancefight needed the opposite: two or more people, possibly on different continents, dancing to the same track, shown side by side so viewers could pick a winner.

That raises problems a normal feed never meets. Clips recorded on different phones, at different times, have to play back as if they were filmed together. Voting has to feel instant and fun, not like filling in a form. And every competition has to be easy to start and spread.

What we built

  • Video pipeline. Uploaded MP4 and MOV clips are encoded to HLS, so battles stream smoothly on any connection instead of waiting on full downloads.
  • Synchronised dual playback. Two clips play side by side in independent players, both carrying the same soundtrack, with one clip's audio acting as the master clock so every dancer hits the same beat on screen.
  • Voting mechanic. Viewers vote with a swipe or double-tap against a countdown. The losing clip stops and leaves the screen, and votes are tallied into results and leaderboards.
  • Audio-first creation flow. Creators pick a song, choose the section they want from a visual waveform, and record against it.
  • Built-in growth loops. Users challenge friends, join open battles, and run tournaments, all from the app.

The hard part

Keeping two strangers in step. Each battle pairs two clips recorded independently, on different devices, then streamed to the viewer at different rates. Any drift between them and the illusion of a head-to-head battle falls apart. We went through several iterations before settling on an approach: embed the same soundtrack in both clips, but play audio from only one. That clip becomes the master clock and the other follows it. Before playback starts, both streams must be sufficiently buffered, and both are monitored throughout so the follower stays locked to the master.

Encoding that is accurate and affordable. HLS was essential for smooth streaming, but getting it right was harder than expected. We trialled several third-party encoding services. Some didn't follow the HLS spec closely enough for reliable synced playback; others were too expensive at our volumes. We moved to AWS Video on Demand, which was fast and cost-effective, and gave us full control to tune the output to exactly what the player needed.

Votes that feel instant. Waiting on the server to confirm a vote would kill the moment. So the app front-loads the current standings with each battle and applies the user's vote locally the instant they cast it, showing the leader straight away. In most cases this matches the true result. The authoritative tally is calculated asynchronously on the server, and the app updates if the leader has changed.

My role

I led all of the technical work on the platform. That covered:

  • the MP4/MOV-to-HLS encoding pipeline
  • the design and implementation of dual video playback synchronised to a shared audio track
  • the design and implementation of the voting mechanic

The synchronised playback and voting I built form the core of the granted patent claims.

The result

The core idea — synchronised multi-clip playback with a shared soundtrack, plus in-feed voting — was granted as US Patent 11,582,523 in February 2023, with me as a named co-inventor. Dancefight launched in early 2020, brought forward as the first lockdowns began. At its peak, around 5,000 creators were regularly uploading battles, with roughly 40,000 videos on the platform and almost 60,000 registered users.