New 3D Trainer Program w/pics (ANT+, MAC/PC)

Being in SoCal I don’t get to use my trainer that much, but when I do it sucks. Over the last 2 winters I spent a little time writing a 3d program to make training less dull, and I’ve logged quite a few hours on it over the last 2 winters. I figured it’d be worth showing, since it’s kinda neat and I think this crowd would get a kick out of it.

First, the overview: Its fully ANT+ Compatible (reads heartrate, cadence, powertap), it saves out standard Garmin .FIT files for WKO+/TrainingPeaks/Whatever, if you don’t have a powermeter it’ll save out a fit file with power by estimating your watts using standard trainer speed->power equations, it runs on MAC or PC, and PC has full 5.1 surround sound support. There are AI racers of various speeds you can try to pass, there are special interval modes (you program in a whole workout, or just ride around the scenery, or both) with voice prompts telling you when to start/stop the interval, and I built a from-scratch PC/MAC joystick for the front wheel to sit on so you can steer around the world. It also has a video playback mode where it plays most non-DRM’d videos but still has the interval prompts and graph overlays, but that is a bit flaky at the moment and its PC only (no MAC video yet).

Anyway, here’s some screens of it in action (All screens taken at 1920x1080 with 4xAA)
http://jmtc.ls1howto.com/pics/800/afternoon.jpg
http://jmtc.ls1howto.com/pics/800/night.jpg
http://jmtc.ls1howto.com/pics/800/sideshot.jpg

Older screenshots (which show off how the workouts work)
http://jmtc.ls1howto.com/pics/800/sshot0201.jpg

Summary screen when you stop pedaling:
http://jmtc.ls1howto.com/pics/800/sshot0246.jpg

I should probably turn this thing into a product, but for now, it’s just used by me. There’s some more details on the webpage I made for it a while back: http://jmtc.ls1howto.com/

Lemme know what you guys think, and suggestions for things you’d like to see would be interesting to hear too.

what you made that?!

Awesome, when can i buy it? :slight_smile:

shut up and take my money
.

Wow! This is really cool!

He was gonna give it away, now you went and put a price on it,
.

Now if we could race each other every wedsday night online, that would be really cool
.

This is leagues ahead of what’s available commercially, bravo. I’d gladly pay for a licence if you ever decide to sell it. I’m not sure if you’ve modeled drafting, but I think that the steering element opens up some options in drafting strategy.

As a digital systems designer, I’m also curious about your hardware setup. Do you pull your ANT+ data through the regular USB stick or through your hardware? How many updates/second do you see for the different sensors? Do you do any smoothing or just report instantaneous data? What kind of board and controller? What does your wireless setup look like? Software side, what did you write it in? Does it feel smooth at the ~30-40fps, and does it affect your cycling when the graphics start to chug?

Pardon the post full of questions.

any chance we could get a beta version to test out?

This is leagues ahead of what’s available commercially, bravo. I’d gladly pay for a licence if you ever decide to sell it. I’m not sure if you’ve modeled drafting, but I think that the steering element opens up some options in drafting strategy.

As a digital systems designer, I’m also curious about your hardware setup. Do you pull your ANT+ data through the regular USB stick or through your hardware? How many updates/second do you see for the different sensors? Do you do any smoothing or just report instantaneous data? What kind of board and controller? What does your wireless setup look like? Software side, what did you write it in? Does it feel smooth at the ~30-40fps, and does it affect your cycling when the graphics start to chug?

Pardon the post full of questions.

When I wrote the first version back in 2010 I had to “crack” the ANT+ packets, which took me a couple weeks…weeks after I finished figuring out what the packets meant, the ANT+ group released full specs to everybody. At that point, I figured there would be all sorts of commercial apps available so I didn’t work on this thing almost at all during 2011. I just used it for my workouts, and that was that. Now that its April 2012, I’m still pretty shocked there aren’t half a dozen things like this commercially available.

ANT+ data comes through a normal ANT+ usb stick. I haven’t messed with the ANT+ stuff in over a year so I couldn’t tell you right now the update rates, but I do know that HR packets seemed pretty random, cadence/speed was about once a second (and at slower pedaling speeds repeat packets would be sent with no differences between the previous packet), and PowerTap I simply don’t remember. The app has a full built-in command console and ANT+ logs can be enabled, and the whole thing dumps raw data out to a txt file so I could look sometime later if people were really curious. I do smooth the speed data a little, but I’m not totally happy with that. I need to add in the 3s/10s/30s power displays, right now watts is instantaneous. Every test run I’ve done, I also recorded on a Garmin Edge 500, and once uploaded to Garmin connect both my and garmins fit file pretty much match exactly so I think the data I’m grabbing is “good enough” right now.

As for graphics chugging, the whole graphics system is configurable. It’ll run at 640x480 with no realtime shadowmapping, no antialiasing, etc at 400fps on my machine, or, as in my screenshots, you can crank it up to 1080p with 4x AA and it goes 40fps. All depends on what your PC can do and how much you care about graphics. On PC and MAC, I use OpenGL for graphics. On PC I use XAudio for 5.1 surround sound generation, and on MAC I use OpenAL (which should give me 5.1, but I can only get 2ch audio out of it right now. shrug).

There is no more “controller” or custom circuitry for anything ANT+. The joystick I built uses a USB chip that makes it super easy to create a fully MAC/PC compatible joystick, so I went with that. I think it updates at 30hz or so. I doubt I’ll want to get into the custom joystick manufacturing biz, and steering is 100% non-essential (it’s neat for ‘game’ type stuff, but for workouts its just not needed) so I may just keep that stuff to myself.

There is one last party trick this thing does, which will never see the light of day…when I do plug my old obsoleted Arduino microcontroller board in, it has an X-10 chip in it and will control an X-10 dimmer switch anywhere in your house. Plug a fan into that X-10 dimmer, and voila…the fan speeds up and slows down with your speed on the trainer. Full blast is hit around 18mph. Again, this will fry half the fans on the market (the motors don’t like the type of dimming the X-10 switch does…its really meant for incandescent bulbs), so it’s a “me only” kinda thing. Still fun to see it work.

any chance we could get a beta version to test out?

I’ll probably release a very simple program later this summer which will let you record your exercise to a Garmin .FIT file, tell you realtime what your power is, and show numbers/graphs and whatnot on the screen with voice prompts for intervals. It’d be a free alternative to other solutions out there, and serve as a beta test of sorts for my codebase.

Ah, so it’s all in the ANT+ stick then. That means pretty much anyone satisfies the hardware requirements already. I thought (/was hoping?) maybe there were some limitations with the existing stick that you worked around using a dev board. Pity :stuck_out_tongue:

The most similar product I can think of is TrainerRoad.com, but it only really has the workout functionality without the 3D. The Train and Race view in Golden Cheetah is pretty basic.

The X-10 dimmer is variable resistance or PWM? I could definitely see using the latter to drive a motor/fan.

It’s a shame computrainers aren’t ANT+. You could use this to run one.

Can you change the type of bike to a tri bike?

The graphics look outstanding. Is there any way to change the route? It seems like you could add a controller or rest to a Kurt Kinetic turntable riser ring pretty easily.

Keep up the great work. This is looking terrific. I’d love to see it as a commercial product. PLEASE continue with the MAC development.

this summer

boner kill

http://i.qkme.me/35304o.jpg
.

Wow, this is great work. I too am surprised there aren’t other apps/products out there like this. But I am glad someone is taking initiative. Keep it up. Would love to have a great product out there, because ALL of us spend some time on the trainer. And most of us do/would use powermeter.

I have joule 2.0 and use quarq, so I can see my power while on the trainer, but it does get a bit boring. Currently just use TV/DVD to keep me entertained. Something like this would make it much more interesting.

Great job!

So it’s TrainerRoad but with 3d visual interface? WANT! Where can I send my check?

Get some funding. Make this happen.

http://www.kickstarter.com/

Making it an online product so we can compete is an awesome idea.

Btw, sweet product.

So it’s TrainerRoad but with 3d visual interface? WANT! Where can I send my check?

The trainerroad programming guys just had a heart attack.

Brad

I actually made the very beginnings of an app like this last winter, but gave up once I learned about Trainerroad and went back to the other project I’ve got going. I did a couple trainer races this winter, and was surprised how simple the packed-in software was when you’re talking about a $1k piece of equipment. Congratulations on pulling through and getting a polished-looking product out.

The goals I’d have for something like this:
-Any kind of multiplayer
-Online handicapped multiplayer - all the tactics and exercise of road-racing, without the bike damage when you crash. Handicapping could be based on each rider’s FTP, though that’d require a server to keep track of people’s FTP since lying would be an easy way to win.
-Real routes. You could maybe use the google elevation data and google earth textures, and elaborate with randomly-placed trees or something to do it on the cheap.

The video of 0.5 looks amazing. I echo the “shut up and take my money now” folks. I made a little java interval app last winter too, but yours is pretty and has all the power readouts and I want it now.

So it’s TrainerRoad but with 3d visual interface? WANT! Where can I send my check?

The trainerroad programming guys just had a heart attack.

Brad

I agree.