Lessons I Learned from Making a VR App for Treadmills
Why should you read this ?
When I was building a VR app for general purpose treadmills, I discovered some shortcomings. This post may help validate your idea someday.
What is the app all about?
The idea behind the app is to give runners a VR experience when running on a treadmill — he or she can run in different landscapes through VR. The visuals in VR will move at the same speed as the treadmill.
Did I have any other ideas while sitting at my office desk? You bet! With that said, I discarded most of my ideas after realizing they're all quite unrealistic...until I came up with this one.
When this idea popped up, I Googled to see if anyone is doing something similar or if anyone would want something like this.
Turns out, someone on this Reddit thread was complaining about the fact that this was not a thing yet desperately wanted a VR app for his treadmill.
I thought to myself, "well... thats a start." Triumphing over my procrastination tendencies (sort of) , I started to build a prototype.
Here were some of my ideas:
- Users can choose a new track everyday
- They can run inside a Harry Potter or Game of Thrones castle
- Runners can see their performance somewhere inside their visuals or a virtual coach, etc.
Of course, without a VR headset, none of these ideas would come true. So I ordered one first!
In order to do what I wanted to do, I quickly learnt Unity and GoogleCardboard SDK along with it.
After several weeks and more than 100 tries, I finally created the prototype I wanted 🎉:
- The headset itself is a problem. It is not possible to wear the headset for a long time, unless you have something immersive inside it.
The experience is even worse when we are sweaty from running.
- To make the visuals look like a forest, I added many trees, mountains, and other natural landscapes. It's not worth the effort — Android staggers if you put
much visuals in VR mode.
- The treadmill and the app do not communicate, which means I have to manually input the spead of the treadmill into the app.
I tried to use device accelerometer to change the visuals accordingly, but it did'nt work.
- I had a tough time figuring out the math between treadmill kilometers and the terrain I developed in the visuals. I eventually gave up.
Very important shortcoming: It is important for runners to stay balanced when they're in motion. If you have a VR headset on while you're running, you may lose your balance. This could cause terrible accidents!
Biggest take away
In my opinion, VR apps only work when the user is stationary and not in motion. If the VR app wants the user to be in motion, it may risk the well being of user.
Although VR may provide a good gaming experience, you'd essentially just be sitting on a chair and looking around in circles.
Crossing the hurdles
I started looking for alternate headsets that are good enough for someone to wear them for an extended period of time. Here's what I had in mind,
Unfortunately, It was a disappointment — I couldn't find anything like this.
I arrived at that conclusion that the ideal headset would have the right balance between immersiveness and awareness about the user's physcial environment (this is basically an informal definition of 'Mixed Reality' stated by me ).
In my verdict, Mixed Reality is the future and there is one clear winner when it comes to this category, MagicLeap .
Their technology is truly revolutionary and once their headset becomes ubiquitous, the survival of laptops will be in question. To understand more about MagicLeap, I have signed up for their developer edition headset and I've started researching about what else they are doing and then this happened
Here's a disappointing and regrettable thing that I found: "Magic leap patents"
This is basically my treadmill idea, but instead of treadmill, they are using a bike that is attached to the ground. I was a bit disappointed and discouraged when I found out about this
I guess for now, I'll put this idea on the shelf — maybe it will fly one day, but sadly, today is not the day.
This post was originally published by the author here. This version has been edited for clarity and may appear different from the original post.