AHEADance

Dances to what
it hears.

A humanoid robot that improvises its dance as the music plays, in the music's own style.

PDF arXiv soon YouTube Code soon Try it live

A Unitree G1 dancing to eight songs in seven styles, each played from an audio file. One model for all of them; it is never told the style.

How it works

Listen. Improvise. Dance.

One model, listening as the song plays. Nobody tells it the style or the tempo: it hears them in the music and dances them. Every performance is improvised, so the same song becomes a new dance each time.

  1. 1 · Listen

    It hears the style.

    AHEADance listens to the music as it plays, from a file or through a microphone, and hears its style, rhythm and energy for itself.

  2. 2 · Improvise

    A new dance every time.

    From what it hears, it creates the robot's next moves for all 29 joints, thirty times a second, even for songs it has never heard.

  3. 3 · Dance

    On a real humanoid.

    The robot dances while the music plays. When the music stops, it settles back to standing; when the music returns, it dances again.

Real Unitree G1

Music in the room. A robot that listens.

A loudspeaker plays the music and a microphone picks it up. The robot dances to whatever it hears, in the style of that music.

Microphone · two songs

From Dai folk to Locking.

Dai folk music, a short silence, then Locking. The dance changes with the music.

Microphone · unseen music

A song it never trained on.

Swoop, a Popping track from the test set, through the same loudspeaker and microphone.

Real Unitree G1 · eight songs

One model. Many styles.

Eight runs on the real robot, one per song or set of songs. The model is never told the style; the dance follows what it hears.

One song

Miao

miaozufengcai

3 songs in a row

Dai → Locking → Hip-hop

shuiyueliang → Runaway Baby → Peaches

One song

Chinese

juelian

One song

K-pop

LOCO

One song

Urban

suffer

One song

Choreography

tebiederen

3 songs in a row

Hip-hop → Hip-hop → Breaking

GoCrazy → Ikarus → Just Begun

One song

K-pop

UhOH

In these runs the music file streams to the model as it plays, and a loudspeaker plays the same music in the room. Style names are the FineDance music labels.

The same eight runs, lined up at the moment their music stops.

Live

Bring your own music.

Play any song from your device, or play it on your phone and let the page listen through the microphone. Our model on a cloud GPU listens as it plays, and the robot dances to it as on the real robot. Every session is a new dance.

  • Any songa music file, or your phone through the microphone (beta)
  • 1 minuteper session
  • 2 sessionsa day for each email
  • About a minuteto start the GPU if no one has used it for a while
Go live

Web demo

Play it in your browser.

Pick a dance from the list. The music plays here, and a model of the robot replays what the model generated for exactly that audio, with the same timing as on the real robot. Under Same song, one song is danced three times; under Live, play your own music file and the model dances to it as it plays.

Drag to turn

—

0:00 / 0:00

Take a closer look

Music in. Motion out.

The dance loaded in the web demo, or your live session as it happens, on one timeline: what the robot heard, and how much it moved.

Loaded dance

MusicRobot activity (mean joint speed)
Music
Robot

Your song

Send us 30 seconds.

We put 2 s of silence before your music and 4 s after it, so the robot starts and ends standing. Then we run the same model on it on a cloud GPU, and the dance appears in your web demo under Your song. Only you and our lab see your songs.

Sign in with your email to send songs and to go live.

Each email can send 2 songs and go live twice a day. The code is sent from AHEADance <aheadance@gmail.com>; please also check your junk email. We use your email only to send the code and keep your songs; only our lab sees it.