Neo Rock ’Em Sock ’Em Robots

Tabletop robot boxing with shared-space and remote multiplayer. Second place at Ctrl+Space.
I rebuilt a childhood robot-boxing idea as a tabletop AR fighter. Place an arena on a real surface, choose solo or multiplayer, and control a robot with movement, attacks, defense, and a deliberately playful finishing uppercut. The game placed second in the Expo × ReactVision Ctrl+Space hackathon. The work spans adapting 3D assets for ViroReact, implementing combat and collision behavior, making touch controls usable in landscape, and coordinating two players. The source repository and TestFlight build are shared. Neo Rock ’Em Sock ’Em Robots was first started during the Expo × ReactVision Ctrl+Space hackathon, where it was incubated alongside Medimagen and Guess the Qubit within a shared AR prototyping workspace. While they originated together under a shared experimental codebase during the hackathon, each experience was crafted around its own unique mechanics and architecture, with plans to publish each individually.

Skills Used:

View the shared AR prototype sourceTry the prototype on TestFlightWatch the robot boxing demoView the second-place entry

Adapt the assets to the runtime

Preparing the ring, robot model, and animation setup for ReactVision.
I prepared the arena and robot assets for the Viro scene, worked through materials and animation clips, and connected them to the combat presentation. I used the Viro ReactVision Studio to test the models out and after several iterations on altering the materials and properties, the robot appeared as expected and was ready to use in the app code. The studio really came in handy for this. This Radical Mike Robot asset was perfect and ready with it's own animations and different colors although I did author a couple of animations with the help of AI.

Make the controls part of the game

The arena menu introduces solo and two-player play.
The combat implementation tracks health, contact, movement, attacks, and defensive actions, with a CPU opponent for solo play. The landscape interface keeps the combat controls near the hands, and audio and reaction animation help communicate contact and the outcome of a round.

Share one arena across two phones

Second place, Ctrl+Space — Expo × ReactVision AR/VR hackathon.
The shared tabletop arena shown in the Ctrl+Space demo.
Same-table play uses ReactVision cloud anchors and ViroSharedFrame to align both phones to the same arena. A relay supports remote play, and QR invitations help connect players. Placement, tracking, and connection state are handled separately from the fight so the interface can explain what is still needed. The music and sound effects are handled uniquely when the two players are in the same space which I think adds to the immersion while not playing overlapping audio which is often a problem when playing the same game in the same room. The music and round announcements comes from the host's phone while the punching sound effects are played from the player's phone who was hit, and the win/lose announcement is played on both phones accurately.

The challenges

Good combat takes iteration
Getting the combat right was hard and it's still not perfect. Ensuring that the punch was recieved was especially difficult when I added the ability to spin around the arena. At first the robots started in the middle and only went back and forth but it felt like a wast of the AR space. I chose to make the robot circle around their opponent when going left and right which when paired with the jump back button, can open up the arena. I think I need to tweak the timing to make blocking easier and movement more fluid as well as making the uppercut easier to execute. I'm still learning and seeking to improve my combat-building abilities.

Related Projects:

Explore Medimagen →Explore Guess the Qubit →See the MDS tools used to prototype these AR apps →
⏷
⏷
index
⏷
⏷
portfolio
⏷
⏷
public-facing
⏷
⏷
contact
⏷
⏷
services
Getting things ready for you...