Inspiration
Rail Rush started with my wife.
After giving birth, she wanted to become active again, but going back to a crowded gym wasn't something she felt comfortable doing. There was childcare to think about, the cost of the gym, finding the time to go, and simply wanting some privacy while getting back into exercise.
The funny thing was, we already had almost everything she needed at home: a phone, a television and some space to move.
Around the same time, I kept seeing those viral "Subway Surfers cardio" workouts on TikTok and YouTube. Someone would put gameplay on a screen and tell you when to run, jump, duck or move sideways.
They looked fun.
But they were still just videos.
You could stop exercising completely and the character would keep running. The video didn't know whether you jumped. It didn't know whether you moved. And when it ended, it couldn't tell you anything about the workout you had just completed.
That got me thinking:
What if your body actually controlled the game?
What if instead of following the character, you became the character?
That question became Rail Rush.
What Rail Rush Does
Rail Rush is a body-controlled 3D cardio game.
You place your iPhone where the camera can see your body and mirror the game to a television.
From there, something interesting happens.
Your body becomes the controller.
Run in place and your character runs forward.
Move left or right and it changes lanes.
Jump and your character jumps over an obstacle.
Bend down and it ducks.
Once the workout begins, you don't need to keep touching your phone. You just move.
Before starting, Rail Rush guides you through a short calibration so it can understand your neutral position and make sure it can see the parts of your body needed for tracking. Spoken instructions guide you through the movements and then a hands-free countdown starts the workout.
You can choose a 5, 10, 15 or 20-minute session.
The workout moves through six stages: Warm Up, Build, Cardio, Challenge, Peak and Cool Down.
It starts gently, gets progressively more challenging, and eventually slows down to give you time to recover.
One decision I'm particularly happy with is what happens when you make a mistake.
In a normal endless runner, hitting an obstacle can mean game over.
But this isn't just a game. Someone is actually exercising.
Imagine finally convincing yourself to work out, getting three minutes into it, missing one jump and seeing GAME OVER.
That felt completely wrong.
So Rail Rush doesn't end your workout when you miss an obstacle. It gives you feedback, clears the obstacle and lets you continue.
The goal isn't to punish you. The goal is to keep you moving.
Rail Rush also measures active movement rather than simply letting a timer run. If you stop running, your workout progress pauses until you begin moving again.
How I Built It
I built Rail Rush using React, Three.js and Capacitor.
React handles the app experience and workout interface. Three.js powers the 3D worlds, characters, obstacles and animations. Capacitor allowed me to package everything as a mobile application and work with native device features.
For body tracking, I use MediaPipe Pose Landmarker.
It detects landmarks such as the shoulders, hips, knees and ankles, and Rail Rush translates those positions into actions the game understands.
Importantly, this happens locally on the device.
I didn't want someone's workout footage being uploaded somewhere just because they wanted to exercise in their living room. Rail Rush needs to understand how you're moving, not what you look like or what your home looks like.
RevenueCat powers Rail Rush Pro and handles subscriptions, purchases, restoration and premium access. That meant I didn't have to build an entire subscription infrastructure myself and could spend more time working on the actual workout experience.
The Part That Nearly Broke Me
The 3D side of Rail Rush was probably the biggest learning curve.
Before starting this project, I had never built or animated a 3D character.
Suddenly I was learning about rigging, skeletons, animation clips, coordinate systems, collision boxes and animation blending.
And things went wrong constantly.
At one point the character faced the wrong direction.
Then it was the wrong size.
Then it floated above the railway.
I'd fix the running animation and break the jump.
Sometimes everything looked perfect visually, but the collision happened too early. Other times the character moved at the correct speed but looked like it was sliding across the track instead of actually running.
This was where AI became genuinely useful to me.
I used it as a learning partner. When I encountered something I didn't understand, I'd ask questions, get an explanation, test it, discover another problem and go back again.
But AI didn't magically build Rail Rush for me.
I still had to put the game on an actual phone, stand in front of it, jump around my room, discover something wasn't working and figure out why.
Again and again.
AI was less like pressing a button that built the product and more like having a very patient technical tutor sitting beside me while I learned something completely new.
Making Movement Actually Work
Getting a computer to detect a body is one thing.
Getting it to understand how different people move is much harder.
One person bends slightly. Another bends much lower.
One person jumps high. Another barely leaves the ground.
Then you have different heights, body proportions, lighting conditions, clothing, camera positions and living-room sizes.
I quickly realised I couldn't use one fixed number and expect it to work for everyone.
So Rail Rush first learns the player's neutral position and uses that as the starting point for interpreting their movement.
I also made feet optional during basic body readiness. Someone exercising in a smaller room can stand closer to the phone while Rail Rush still tracks the head, shoulders, hips and knees it needs for the main controls.
Building a Fitness Game, Not Just a Game
Another lesson came from treating Rail Rush too much like a traditional endless runner.
At first, I thought like a game developer:
Make it harder.
Make obstacles faster.
Punish mistakes.
Then I actually exercised with it.
That's when I realised the definition of success needed to be different.
A fitness game should challenge you, but it shouldn't constantly interrupt your workout.
Obstacles need enough warning for someone to react safely. Mistakes need to be recoverable. Difficulty needs to increase gradually.
And because the game can be mirrored to a television, I also had to account for something I hadn't originally thought much about: delay.
There is a small amount of time between you moving, the camera seeing it, Rail Rush processing it and the result appearing on the television.
A technically correct obstacle can still feel completely unfair if the player doesn't have enough time to react.
So I started designing obstacle spacing around the whole human experience rather than only the game engine.
Designing for Two Screens
Rail Rush also forced me to think differently about interface design because the phone and television are doing completely different jobs.
When you're setting up the workout, you're standing close to your phone.
Once you start exercising, you might be several metres away looking at a television.
Something that looks perfectly readable on an iPhone can become useless from across a living room.
So TV Cardio switches into a landscape experience with large text, strong contrast and simple instructions that can be understood without walking back to the phone.
The best outcome is actually for the phone to almost disappear.
Put it down.
Look at the television.
Move.
What I Learned
The biggest thing Rail Rush taught me is that building a fitness game isn't about putting exercise instructions inside a game.
You have to understand the person exercising.
People get tired.
They move out of frame.
They pause to catch their breath.
They don't all jump the same way.
And sometimes they miss an obstacle.
The technology has to handle those imperfect moments instead of expecting perfect behaviour.
I also learned that good technology often becomes invisible.
Someone using Rail Rush shouldn't need to understand pose landmarks, calibration thresholds, animation blending or any of the things I spent countless hours worrying about.
They should only experience one simple moment:
I moved, and the game moved with me.
What's Next: Cardio Replay
The next feature I want to build is Cardio Replay.
This came from going back to the same workout videos that originally inspired Rail Rush.
When those videos finish, the creator still owns the story.
The person who actually completed the workout doesn't really have anything personal to keep.
My first thought was to record the workout.
But then I thought about my wife exercising at home.
Would she really want a video showing her face, clothes and living room saved and potentially shared online?
Probably not.
So I'm exploring a different approach.
Rail Rush can use anonymous body-landmark information from the beginning and end of a workout to recreate movement as a stylised Body Silhouette.
No face.
No clothes.
No living-room background.
The idea is to let players see a Start vs Finish comparison, movement scores, jumps, dodges, workout duration and a small personal insight.
Something like:
Your lower body powered today's run. 14 minutes · 52 jumps · 38 dodges · Best combo 26
Eventually, I'd like players to turn that into a short vertical replay they can share.
Not a recording of themselves.
A story of what they accomplished.
The Bigger Goal
Rail Rush started because one person I care about wanted a more comfortable way to exercise.
But while building it, I realised the same barriers exist for many other people.
Parents who can't easily leave home.
People who feel uncomfortable in gyms.
People who don't have expensive fitness equipment.
People who are busy.
And people who simply find traditional cardio boring.
I'm not trying to replace gyms, trainers or fitness communities.
I want Rail Rush to offer another option.
Something you can start with what you already have.
Place your phone down. Look at the TV. Start moving.
If someone can do that for five minutes today, enjoy themselves enough to come back tomorrow, and eventually build a habit around movement, then Rail Rush is doing what I built it to do.
Log in or sign up for Devpost to join the conversation.