Leading Zero

Rapty — a dance battle played with your body

Two phone screens on black: on the left a dark stage with an avatar in a white hoodie and sunglasses, the large words “Let’s dance!”, a yellow “122” score badge and a row of “Thriller” cards at the bottom; on the right a yellow dance card with an avatar in a red dragon costume, “rare” and “iconic” tags, the caption “Mask” and “Close” and “Unlock” buttons

A mobile game where you don’t press buttons, you dance: the phone camera watches the player, and their moves decide the outcome of a dance battle between avatars.

  • A dance battle for iOS: the player assembles up to four move cards, places a bet and battles an opponent matched by the server.
  • 15 dance cards with rarity, an unlock price and a usage price — from Thriller to Ice Ice Baby.
  • Ready Player Me 3D avatars for the player and the opponent, loaded at runtime.
  • Sign in with Apple, profile, card collection, preparation, battle, results and a leaderboard.
  • A QTE editor: frame-by-frame scrubbing through a dance clip and placing the moments where the player has to repeat a move.
  • Real-time body pose estimation right on the phone: BlazePose through NatML, 13 joints, mirrored for the front camera.
  • Move scoring: a joint has to travel a set distance in the direction of an arrow, scoring 1 to 4 points, while the animation waits for the player.
  • QTE events are injected into animation clips at runtime, and clips are swapped on the fly.
  • A Cinemachine camera follows the joint the player has to move.

An alpha build for iOS (v0.3), 2023.

Unity 2021, URP, NatML (BlazePose), VideoKit, Ready Player Me, Cinemachine, PHP API

Four battle screens in a row: an avatar in a white hoodie stands on a lit stage, a yellow “122” score badge above and a progress bar and “Thriller” cards belowFour yellow dance cards in a row: two with an avatar in a red dragon costume captioned “Mask”, two with an avatar in a white shirt and black trousers captioned “Pulp Fiction”, each with a “rare” tag and “Close” and “Unlock” buttons