Tour de Giro

807 views
Skip to first unread message

Darren Cope

unread,
Aug 3, 2017, 1:30:29 PM8/3/17
to golden-cheetah-users
Hey all,

I'm not sure if there are any (former?) Tour de Giro users here, but I just got the following in an email from them:

"Believe it or not, the TdG servers are extremely cheap to keep maintained and running (particularly after some changes we made in 2015 as Zwift ate our lunch), so Eric and I expect we'll keep them on indefinitely.  Those of you still playing last winter probably noticed some roughness, but after an update in December they've been running smoothly since.  

Again, if there's any interest in helping out with a move to open-source, let us know.  If it looks like there's enough interest to pick up the torch, we'd be thrilled to see someone take the codebase somewhere cool.  TdG actually started as an open-source project, and maybe in its sunset years it can return to the FOSS world."

They are looking to return the project to the FOSS community. I have no idea if the codebases are compatible at all, but perhaps this could be a very powerful addition to 'train view' and also take over the Golden Cheetah 'racing' feature that was discussed (and partially implemented?) long ago...

Dazza

unread,
Aug 4, 2017, 1:10:32 AM8/4/17
to Darren Cope, golden-cheetah-users
Wow!!! what a great idea.  Adding something like this (TdG) to GC would be sensational.

--
_______________________________________________
Golden-Cheetah-Users mailing list
golden-cheetah-users@googlegroups.com
http://groups.google.com/group/golden-cheetah-users?hl=en
---
You received this message because you are subscribed to the Google Groups "golden-cheetah-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golden-cheetah-users+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mark Liversedge

unread,
Aug 4, 2017, 1:31:05 PM8/4/17
to golden-cheetah-users
I'm really open to adding a "Race" view for this, its one of the things I wanted to do back in 2009 but we didn't have the skills.

I'm guessing if its returned to FOSS it might steal some lunch money back from Zwift (to extend their metaphor). If its based upon QT frameworks it might be real easy to combine. Either way it would be super cool.

Mark

Jan de Visser

unread,
Aug 4, 2017, 3:47:06 PM8/4/17
to golden-che...@googlegroups.com, Mark Liversedge
On Friday, August 4, 2017 1:31:04 PM EDT Mark Liversedge wrote:
> I'm really open to adding a "Race" view for this, its one of the things I
> wanted to do back in 2009 but we didn't have the skills.
>
> I'm guessing if its returned to FOSS it might steal some lunch money back
> from Zwift (to extend their metaphor). If its based upon QT frameworks it
> might be real easy to combine. Either way it would be super cool.

It's not QT. It's some windowsy toolkit, I think in C++. But reverse
engineering the front end while keeping the server backend should be possible,
no? Not trivial, but possible.

Art Hare, the developer of TdG, lives here in Kitchener, ON. He's one of the
principals of Stac, the contactless bike trainer, now. I don't claim to "know"
him, but I've talked to him and raced against him, and could get in touch with
him if you want.

>
> Mark

jan

Mark Liversedge

unread,
Aug 4, 2017, 4:16:56 PM8/4/17
to golden-cheetah-users, liver...@gmail.com
On Friday, 4 August 2017 20:47:06 UTC+1, Jan de Visser wrote:
Art Hare, the developer of TdG, lives here in Kitchener, ON. He's one of the
principals of Stac, the contactless bike trainer, now. I don't claim to "know"
him, but I've talked to him and raced against him, and could get in touch with
him if you want.

Sure thing. Perhaps the graphics primitives can be translated to the QT 3D API with a bit of massaging.

Mark 

Will

unread,
Aug 6, 2017, 3:04:33 PM8/6/17
to golden-cheetah-users
This would be a killer feature!

Will

Evan Walpole

unread,
Nov 2, 2017, 3:30:36 AM11/2/17
to golden-cheetah-users
Has there been any follow up with regards to integrating Tour de Giro (TdG) into Golden Cheetah?

Toolkits for integrating Ogre with Qt: http://wiki.ogre3d.org/QtOgre

Alternative suggestion: GoldenCheetah integration with Google Earth Pro desktop application via Liquid Galaxy / ViewSync protocol.

Google Earth Pro can receive plaintext string UDP packets with the format of:
counter,latitude,longitude,altitude,heading,tilt,roll,time_start,time_end,planet_name 

Eg:
"5090,-33.54948434838393,150.99967479537557,523818.98127554677194,-0.28372808067457,0.00000000000000,0.00000000000000,63454496156,63454496156,earth"

Imagine loading up a GPS course file in the GoldenCheetah Train View. Begin pedalling, and seeing your real-time course traversal simulated in a 3D environment in the Google Earth Pro application window.

More information here:
https://github.com/LiquidGalaxy/liquid-galaxy/wiki/GoogleEarth_ViewSync 

- Evan

Art Hare

unread,
Nov 2, 2017, 10:36:03 AM11/2/17
to golden-cheetah-users
Hey guys, Evan pointed me at this thread.

To answer questions in the thread:
-The setup UI (CEGUI) and in-game racing UI (Ogre3D) are fairly well-separated from the actual logic/physics/networking code, so someone theoretically* could write a QT or console-based front-end and rip out the existing ugly-as-poo versions.
-The entire game, client and server, is in C++
-The servers currently run as windows executables running on linux via WINE.  Which is a pretty ridiculous way of doing things, but when you're a one-man team coding in your part-time, 90% solutions win the day more often than not
-If we used GC's device setup side of things to pick your device, you may only need to select a file (GPX?) representing your map, then initiate the game app.  Someone would have to help me getting GC compiling (or alternatively, I could help someone that has GC compiling to integrate the TdG logic)

Art Hare

unread,
Nov 2, 2017, 10:50:43 AM11/2/17
to golden-cheetah-users
From a logistics/kickoff/whatever standpoint:
-I don't have a _ton_ of free time anymore - the kinda scary code-all-day motivation that led to TdG has faded a bit, so for this project to be a success, we'd have to have another champion of the project that I can assist, rather than me leading the charge.
-I am very very happy to assist someone to help FOSSify TdG - whether that's just as a sub-library of GC that GC gets to 'own' or a standalone github project, I'm indifferent.
-Without knowing GC's codebase, A wild-ass guess says it'd probably be 5-15 hours of work to get to the point where the user can click a button to fire off a race, and have it draw from GC's device readings, and write data back to GC's workout database.  If there's someone that wants to do a hackathon some weekend, I can probably roll with that.
-The code is capable of compiling on windows and mac.  At least as of the last time we did a mac release, which was a while ago.  If it can't compile on mac anymore, it won't be too far away from it.

On Thursday, August 3, 2017 at 1:30:29 PM UTC-4, Darren Cope wrote:

Art Hare

unread,
Nov 5, 2017, 8:44:37 AM11/5/17
to golden-cheetah-users
Update: I've got a half-day with nothing scheduled today.  I'm going to go for it.  Switching TdG's compiler to VC2015 from VC2010 might be a challenge, but it's a challenge worth trying.

Goal: I want to make a console-based version of TdG that:
-connects to our servers, 
-reports your current watts, speed, distance, etc. 
-talks to the world via the goldencheetah device system, hopefully including FE-C

Stretch goal:
-Includes the current graphics, bad as they are.
-Hook up the game logic in a good way, not a hacky way

Scary points for me:
-Learning Qt
-I have vague memories that I might have to recompile boost (used heavily in TdG) for VC2015, and that compiling it the first time was a pain
-Learning GC codebase

If I manage to get it working, I'll post a quick youtube video.

On Thursday, August 3, 2017 at 1:30:29 PM UTC-4, Darren Cope wrote:

Will

unread,
Nov 5, 2017, 9:42:58 AM11/5/17
to golden-cheetah-users
Oh man, I'm rooting for you. I use GC on the trainer throughout the year.

Art Hare

unread,
Nov 5, 2017, 11:28:25 AM11/5/17
to golden-cheetah-users
10:39am - Good job on the build steps, GC team - After un-corrupting my VS2015 install (which took like 90 minutes of uninstalling and messing with the registry), it didn't take much time at all to compile up my own copy of GC.
11:20am - I've got at least portions of the TdG codebase compiling apart from GC in VS2015.  Ogre doesn't compile (boost conflicts that I don't want to deal with), but the server, physics, main logic, and a minimalist version of the game does, which should be enough for a start.  The little "graphics tester" that runs on first install provides a wonderfully small (233-line) startup example to help me jog my memory on how to get things started up.  Holy crap this game was a big undertaking.  26-year-old me had stamina.

Next todo: Create a standalone lib that can connect to a specified server IP and has plugs for RealtimeData from GC.  I'm planning on using the VideoWindow in GC as an example template for my TdGWindow.  I'm going to be away from the compiler for a few hours though, so if anyone has suggestions on simpler things to copy, let me know.

On Thursday, August 3, 2017 at 1:30:29 PM UTC-4, Darren Cope wrote:

Mark Liversedge

unread,
Nov 5, 2017, 11:40:39 AM11/5/17
to golden-cheetah-users
Sounds good. VideoWindow is as good as any other since it allows you to pause/fast forward etc (if that is relevant) and the code is rather trivial since its just a wrapper for videoplayback widgets.

If you setup a fork to work with in github we can play along and help you ?

Mark

Art Hare

unread,
Nov 6, 2017, 8:11:35 PM11/6/17
to golden-cheetah-users
I know this is the doom of many attempts to release formerly-closed-source software, but I want to get some cleanup done first.  Getting the minimalist version done is/was easy, but also fairly pointless.  So I'm stripping out workout mode, the ANT+ communication, the website/database communication, etc.

Goal will be:
-capability to join a local network (or online-hosted) server
-minimal graphics, possibly just a console output
-device/player setup done in GC, with parameters passed into the game.

Plus it's fun to delete lots of code!

Mark Liversedge

unread,
Nov 7, 2017, 3:38:30 AM11/7/17
to golden-cheetah-users
Deleting code is the best feeling :)

It always reminds me of the Pascal quote "Apologies for the length of this letter, I didn't have time to write a shorter one".

CHEERS

Mark

Art Hare

unread,
Nov 12, 2017, 8:13:55 AM11/12/17
to golden-cheetah-users
I am trucking along here, I've got the whole Sunday to myself today.

The main holdup all week was my non-Ogre replacement Matrix4 and Vector4 classes weren't multiplying correctly, which meant the map-smoothing splines weren't operating properly.  Kinda embarrassing for a math grad, and I've ended up just doing a linear interpolation for now.

Current status:
-I have a "minimal" example .exe compiling that starts a server running a local GPX as a map, and a client that connects to it.
-The client renders its status in the console window
-I've stripped out the many, many other auxiliary MSVC projects that were necessary to run the business or do parts of the game (device communication/databasing) that GC will now assume

Goal for end of day:
-Shuffle this minimal server startup code into GC and get it compiling
-Get it all onto github!
-Maybe write some documentation!

On Thursday, August 3, 2017 at 1:30:29 PM UTC-4, Darren Cope wrote:

Mark Liversedge

unread,
Nov 12, 2017, 8:27:10 AM11/12/17
to golden-cheetah-users
Cool beans.

Is this gonna be Windows only?

Mark

Art Hare

unread,
Nov 12, 2017, 8:51:34 AM11/12/17
to golden-cheetah-users
It _should_ still be cross-platform.  I haven't compiled with anything except MSVC recently, but it was possible to compile and run with minGW, GCC, or whatever xcode uses back in the day.


On Thursday, August 3, 2017 at 1:30:29 PM UTC-4, Darren Cope wrote:

Art Hare

unread,
Nov 23, 2017, 4:03:58 PM11/23/17
to golden-cheetah-users
As an update, I am still making slow progress.  I've de-scoped to just getting TdG onto github in a hopefully easy-to-integrate form.  Wrote a ton of documentation on Sunday.

I took a shot at linking it into GC, but my lack of Qt experience kiboshed that pretty quick.  It should end up being a matter of linking to the core game library, then starting from the Minimal-TdG example I'll include and adding a graphics engine.

Art Hare

unread,
Nov 25, 2017, 12:36:19 PM11/25/17
to golden-cheetah-users
My bad code is now visible to the whole world: https://github.com/arthare/tourdegiro

Enjoy!  I'm still very open to some pair-programming some weekend either in-person or via skype with a GC developer to work on integration.  I still think it'd be a pretty quick job, I'm just not super-enthusiastic on learning Qt all by myself.

Evan Walpole

unread,
Nov 30, 2017, 12:12:57 PM11/30/17
to golden-cheetah-users
Thank you!

Kind of surprised at the muted response on this thread to the TdG source release. Might need to stir up some interest in other trainer forums to inspire more coders to the project!

The recent price increase in Zwift has purportedly given the (currently free) Road Grand Tours beta a massive spike in sign-ups. I imagine the TdG commercial and open-source forks would also feel a similar impact.

As for a suitable reimplementation of the TdG graphics engine, one quick-and-dirty solution would be to use the Liquid Galaxy protocol I mentioned earlier in this thread. 

Art Hare

unread,
Nov 30, 2017, 2:46:02 PM11/30/17
to golden-cheetah-users
As the guy that tried to get the thing off the ground for several years, I'm not _entirely_ surprised.  But open source projects like this don't always take off instantly.  A past thing of mine took a while before someone took it and ran with it.

There's a pretty small potential community of potential developers:
-Cyclists
-With lots of free time
-Who know C++
-That want to pick up someone else's codebase
-And want to battle against extremely well-funded competitors

Mark Liversedge

unread,
Nov 30, 2017, 4:19:39 PM11/30/17
to golden-cheetah-users
On my part the lots of free time is the hard part - there are a few burn downs that are required to get 3.5 out the door in then next month or so.
Once that's done I will have more time. Probably after Christmas.

But I suspect if folks get a chance to use it then interest will take off.

Mark

Evan Walpole

unread,
Nov 30, 2017, 7:11:40 PM11/30/17
to golden-cheetah-users
Yeah, the Venn diagram overlap of experienced coders with free time vs recreational athletes is tiny. My own C++ coding abilities are long out of practice, but I am happy to volunteer testing and feedback for any pre-release builds.

Do any of the major trainer apps currently operate at profit? Zwift doesn't. Peloton is a unicorn. 

The TdG source code has momentum. Reminds me of the original Doom (1993) - had it's source released in 1997. Twenty years later and all kinds of interesting mods and  ports are still being released. Doubtful something like RacerMate One would ever go in that direction. 

Is it too early to suggest gameplay features for the 'Golden Giro' train mode merge? Like an animated 3d cheetah model AI to race against. Or have the player in multiplayer mode get skinned with a cheetah pattern print jersey when attaining mountain leader status.

——
Aside: for the lurkers reading this thread and wondering what all the fuss is, a rather thorough video webcast review of the commercial version of TdG can be viewed here: 

Clint Westhoff

unread,
Dec 1, 2017, 1:30:16 PM12/1/17
to golden-cheetah-users
I really hope this project works (but I'm no help since I have no idea how to create software).  I helped Art beta test TdG back in 2012 and have always thought that everything about TdG is as good or better than Zwift except the graphics, and TdG races were some of the best workouts I have ever done.  Kudos to Art for making TdG and keeping it going!

Mick Drake

unread,
Dec 1, 2017, 1:57:06 PM12/1/17
to Clint Westhoff, golden-cheetah-users
I am sadly in the same position ... I hope it happens but I am unable to help with coding... if anyone is working on this near to me I could make tea and bring biscuits 😀

--
_______________________________________________
Golden-Cheetah-Users mailing list
golden-che...@googlegroups.com

http://groups.google.com/group/golden-cheetah-users?hl=en
---
You received this message because you are subscribed to the Google Groups "golden-cheetah-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golden-cheetah-u...@googlegroups.com.

Andy Widdess

unread,
Oct 11, 2023, 8:16:36 AM10/11/23
to golden-cheetah-users
Mike,

I've been looking at the replacement for the RGTdb when Wahoo announced that RGT was going to be retired.
I wondered, if you don't mind taking a look at the current codebase with a view to adding a new rendering engine and cross platform Qt work.

It's going to be very difficult, but want to do something and this looks like a great starting point.

So really looking at permission to review what's there and move forward with the system?

Kind regards,
Andy

Art Hare

unread,
Oct 11, 2023, 8:36:39 AM10/11/23
to golden-cheetah-users
A blast from the past!

As a mild update, I've since made a browser-based online racer intended for my friends/family/coworkers to play.  The code is here: https://github.com/arthare/btweb2 (and is currently hosted at tourjs.ca but you can host an instance wherever you want).  I'd recommend starting with that, but that's mainly because I'm a JS/TS snob these days and couldn't imagine starting over with my old TdG code.  It's a much simpler codebase than TdG since I learned many things, and React browser-based UIs save lots of trouble.  I'm guessing GC has webviews already for the GMap portion so maybe you could run it in one of those?

Currently works on MacOS with Chrome, Android with Chrome and Windows with Chrome (on the rare windows device with good BLE support).  I bet you could get ANT+ data across the webview barrier and get it working with ANT+ too.

-Art

Andy Widdess

unread,
Oct 11, 2023, 9:58:17 AM10/11/23
to golden-cheetah-users
Art,

Thank you for this; would be really interested to see what's there and will take a look at the codebase.
Also like JS/TS these days.

Regards,
Andy

Art Hare

unread,
Oct 11, 2023, 10:02:35 AM10/11/23
to golden-cheetah-users
Yeah I discovered web-bluetooth a couple years ago and it's super handy.  Doing your BLE commands with promises is so nice.  And Google has done an OK job implementing it in Chrome, so usually you don't need to worry about MacOS or windows or android uniqueness.

However it sounds like it'll never ever come to firefox or safari because of privacy concerns by their owners (and chrome on iOS is actually Safari with a different UI), so it'll forever be a compatibility problem with "well... you need chrome but not on iOS".  So not ideal for a mass-user product, but great to accomplish my goals of racing with friends and family.

Andy Widdess

unread,
Oct 12, 2023, 5:42:51 AM10/12/23
to golden-cheetah-users
Thank you Art.

I do get errors trying to run rpm install and wondered if you would be able to provide your nom and node version details.
Specific errors on tensorflow 

Kind regards,
Andy

Art Hare

unread,
Oct 12, 2023, 8:32:52 AM10/12/23
to golden-cheetah-users
I'm on Win10, which is often important for npm modules like tensorflow that need compiling or other libs under the hood.  I should just make tensorflow optional.

Node is v12.21.0 - this is well behind the newest node version.
npm is 6.14.11 (which should come with whatever version of node you've got)

If you want to poke at the hideous graphics, get signed up and just go to https://tourjs.ca/test-hacks which will fire up a random fake ride.
Reply all
Reply to author
Forward
0 new messages