The History of LFS Gear Ratio Calculator

A long time a go, in a....
Hehe, ok, so maybe not, but writing this 20 months after I started work on GRC it can seem a bit like that to me (I mean, that's nearly 10% of my entire lifetime... actually that's quite scary :-S).

So, how and why did this project start?
I was looking around on the net and found some gear ratio calculators where you could input some details about your car and it would tell you the speeds attainable at the redline for each gear. I thought this was quite handy, and for a sad person like me it seemed quite interesting. So, it being one in the morning and I've nothing better to do, I thought I'd create one for LFS, just a simple spreadsheet to do the maths, how hard can it be?

And so it began
And so, on the 14th February, 2004, LFS Gear Ratio Calculator was brought into existence. Perhaps fitting that it was Valentine's Day as it has since become a sort of love affair for me. But anyway, I posted it on the official LFS forums (at the time on RSC) to see if anyone else would find it useful.

The next day, after some feedback had arrived, I was made aware that LFS has a very international userbase and that some folks outside of the UK actually use a unit of speed quite unknown to me, known as "km/h". Not wanting them to feel left out, I added the ability to display speeds in km/h as well as mph.

More functionality
The following night I went to work on GRC again and included the opposite function, i.e. you could type in speeds and rpms and it calculates the ratios needed. It made the name make more sense as well, since it was now actually calculating gear ratios, rather than calculating information based on gear ratios. As this was a fair extension to the functionality of the spreadsheet, I skipped straight from v1.1 to v1.5. In hindsight, possibly not the best idea. GRC v1.5 accumulated 99 downloads before v1.6

Hard data
Over the next two weeks more comments arrived on the forum, and after some more discussions, I decided to make some more changes. Red.Eye provided me with actual unloaded wheel diameters from RAF outputs, I then subtracted a fixed percentage from these sizes as an approximation for tyre deformation. GRC v1.6 accumulated 233 downloads before v1.7

At this point I was happy with the functionality, although I realised that tyre deformation is affected by tyre pressure, so it would be nice be able to enter the tyre pressure and have deformation calculated dynamically. However I had no idea how to begin with such a task, so I didn't worry about it too much.

No longer the Excel king (not that I ever was)
A month or so later (now late April), Colcob released his Damping Analyser v0.8 spreadsheet, which made mine look primitive in terms of ease of use and layout. I realised that without too much effort I could get GRC up to the same standard, so in a few hours one evening I managed to crank out the largest update so far.
Drop down list boxes were added were the user had to only simply select the appropriate car name and all car data was filled in automatically, reducing the complexity of usage and making it less daunting to gearing newbies. I also added some instructions (something that should have been there from the start) and added some interesting new features. The engine speed after a gear change was displayed, and the engine speed could be individually specified for any gear. I also added suggested values for the optimum shift points for each gear (although it was very basic), and added a graph for each table that showed car speed vs. engine rpm in all gears (making GRC much more pretty). GRC v1.7 accumulated 221 downloads before v1.8

More improvements
Another month passes (now into May) and I'd found some physics formulae to do with tyre deformation. :-D So I immediately got to work making a tyre pressure slider, and although I was very pleased with myself for getting it worked, I realised that at sensible pressure it didn't actually make much difference at all. This was also what I later coined to be "balloon style" tyre deformation, since there was no tyre stiffness (other than the air itself), so the tyres deformed way too much when there was little air in them. Other changes included improvements to the suggested shift rpm and seperate final drives for each table. GRC v1.8 accumulated 85 downloads in the 3 days before v1.85

Then I found LFS Tweak
And of course realised that since you can change engine and tyre parameters, GRC can't help you with these creations. Not wanting to exclude a whole market (LFS Tweak being the most popular LFS add-on ever created since the dawn of time), I added an extra tab where the user could add the necessary car information to get GRC to do it's stuff. GRC v1.85 accumulated 91 downloads before v1.9

Final tinkering
A week later I thought I should finally get GRC finished, after developing it for about 13 weeks by this point (although no single update had taken more than one evening). So I did, I got the suggested shift rpm values to be within 100rpm of when the red light comes on in LFS (the most notable change). I also added the ability to create car presets on any of the S1 cars (not just the demo cars) and to name the presets. GRC v1.90 accumulated 689 downloads (from just the forum thread)

LFS Files
Weeks after it's "completion", on the 6th July GRC made its way onto LFS Files to reach a larger audience. And did it work, GRC v1.90 accumulated another 1164 downloads from LFS Files before it went down (bringing the known total to 1853 downloads).
Also more recently I've noticed that several other sites are hosting copies of v1.90, such as and, both of which have had many downloads.

Grander plans
I was aware that not everyone has Microsoft Excel so can use GRC. I was also aware that, while powerful for what it is, a spreadsheet is still much more limited than a stand alone program. With my University course having a Windows programming module in my second year I began to wonder...

Work begins on LFS Gear Ratio Calculator v2.0
On 19th October I started converting GRC from spreadsheet form to standalone program, using Microsoft VisualBasic.

Recruiting of a couple of beta testers
On 26th December I start a thread asking for people to give my app some beta testing. The_Angry_Angel gives it a go and highlights numerous issues and helps with these early stages of development.

Gear Ratio Calculator v2.0 goes public
With enough bugs worked out and enough features present from the spreadsheet version, it is a worthy replacement and such I released it for public use as of 10th January 2005. I also created a web page for the program to be downloaded from rather than it just being a thread on a forum. GRC v2.0 beta accumulated 216 downloads before beta #2.

Bug removal and minor improvements
February saw three updates to GRC, all either bug fixes or basic interface improvements making use of the VB6 design interface. LFS GRC also reached the grand age of 1 year. To celebrate, I had a beer. :-) GRC v2.0 beta #2 accumulated 72 downloads before beta #3. GRC v2.0 beta #3 and #3b accumulated 23 downloads before beta #4.

The second stage of development
With still no sign of LFS S2 at the beginning of March, I decided to add some features now that I was planning to add after the beta development stage. These raised it's functionality above that of the spreadsheet version. For instance there is more information stored about each car, which allows for more detailed and new types of analysis. A car info tab was added to display all this new information. The non-driven wheels can now also be analysed. A massive overhaul was given to the options system, the result being that numbers can be displayed in any units you care to think of and it's easier to add new units at a later date. GRC v2.0 beta #4 accumulated 39 downloads before beta #5.

After a weeks break, I continued with development, making use of the extra car information now stored and just general improvements. I also added pictures of the cars to try and make the interface a bit less bland. GRC v2.0 beta #5 accumulated 31 downloads before beta #5b.

Another week later I did some more fine tuning, most notably I added a units converter that outputs figures in the units required by the custom presets editor. GRC v2.0 beta #5b accumulated 398 downloads before beta #6.

Finishing what I started
After a lengthy break, come 8th June I decided to finish adding new features to try and get GRC ready for S2 launch. I'm most proud of the torque curve estimation that calculates a torque based on the peak torque and peak power values. Lots of nasty maths in that. Also I included the basics from the top speed estimation spreadsheet I was working on so that theoretical top speeds of the cars can be output. There were also substantial code optimisations that decreased filesize by 80KB (although the extra features put 32KB back on again). As always there were some small bug fixes and a slightly improved layout. GRC v2.0 beta #6 accumulated 406 downloads before v2.0.

It's official
Yes, that's right, with the release of LFS S2 shortly beforehand it was a simple case of updating the car specs to the real S2 figures and writing the manual. On 7th July GRC v2.0 is officially "ready". GRC v2.0 accumulated 207 downloads before v2.0.1.

With S2 now out and people making fresh setups everywhere, this is the most useful time for GRC. So no time for bugs or annoyances, hence the rest of July was spent fixing bugs, tweaking data and just generally improving things. v2.0.1 has less than v2.0, likewise v2.0.5 has less than v2.0.1 (and a few extra tiny features) and v2.0.6 is deemed bug-free (or damn near). v2.0.7 ends the month with some final tweaking of the cars aero properties and becomes the first version since 1.90 to be worth archiving. GRC v2.0.1 accumulated 175 downloads before v2.0.5. GRC v2.0.5 accumulated 27 downloads before v2.0.6. GRC v2.0.6 accumulated 212 downloads before v2.0.7. GRC v2.0.7 accumulated 151 downloads before v2.1.0.

A new feature: aero (part 1)
Since GRC had been based on an S1 compatible spreadsheet, it didn't contain one of the important new features of S2 - wings and undertrays. So on 3rd August these were modelled and the drag created is used in conjunction with body drag when determining the top speed of the vehicle. The aero information for the cars had to be moved from the info tab to it's own tab since there is so much more data to display. 3 days later there was a small update that slightly redesigned the aero tab along with lots of other very small improvements. GRC v2.1.0 accumulated 63 downloads before v2.1.1. GRC v2.1.1 accumulated 293 downloads before v2.2.0.

A new feature: aero (part 2)
Of course the other affect of downforce is to put load on the tyres, which increases grip and, important for GRC, will increase deformation with speed. Adding downforce onto the tyre also showed up the bad tyre deformation physics, so I had to research something better, so it's just modelled like a spring for now (not perfect, but better). But on 12th August, this was all ready. 12 days later, after vigorous discussions on the forums, I corrected my formula for tyre frequencies. GRC v2.2.0 accumulated 565 downloads before v2.2.1. GRC v2.2.1 accumulated 376+ downloads before v2.

The Floating Widget website changes server
Due to myself moving house and switching ISPs my website has had to change address, and the new ISP does not generate webstats for the provided webspace, so as of 1st September I no longer have any idea how popular my site or GRC is. There goes my only outside encouragement for providing updates.

Another month, another new feature: acceleration
Why are cars geared in the first place? Why - it's because cars would accelerate bloody slowly if they only had one gear, that's why. So it'd be rather handy if GRC could calculate acceleration, then it would be really useful for optimising gearing. So now (11th September) it can.
Lots of hard work went into getting this to work, I must thank Todd Wasson for helping me start this fairly mammoth task. New features include: added acceleration calculations; added two more graphs to show how the forces on the car change with time as the car accelerates from rest; added a tyre choice selection box; and lots of other changes.
And thus GRC v2 was born

Quick fix: weight transfer
Come the 1st October I added the one important missing part of the acceleration physics - weight transfer. Now the acceleration times should be much more accurate, with FWD cars being slower than before and RWD cars being faster.
Welcome GRC v2.5.1

December: embracing the world
In a very community-inspired moment, I decided to make GRC translatable. After hours of headaches replacing strings, the code was in place, all I needed was for some generous foreign speaking people to write some translations. So may I thank the following contributors:
Czech (Cestina)MadmanCZ / Chaos
German (Deutsch)Wiehrwolf / ellis_dee
Dutch (Nederlands)Sam Aardema
Polish (Polski)Urel i Dzejdzej
Finnish (Suomi)geeman1
Other improvements include a reduce timestep for the acceleration calculates (halved from 1/10th of a second down to 1/20th) and I changed the images of all the cars to ones wearing GRC2 skins (be kind, this was my first attempt at skinning)
Finally a noticed the UF1000 with the open roof weighed a bit less and was less aerodynamic, so I added it as an extra car.
Welcome GRC v2.5.2

A new patch
On no other day than my 21st birthday, the LFS devs "surprised" us with 0.5S. And what a patch it was, brining us revised tyre physics and a new car, the BMW Sauber Formula One.
So after some testing of the new patch, some changes were needed for GRC. Most obviously, the F1 car had to be added, however I noticed the differences between the closed and open roof guises of UF1000 had been removed, so there was little point keeping both in GRC. The UF1 wasn't the only car to get some subtle changes, so the rest were noted and the data updated. Note at this stage I have not added a 7th gear for the BMW Sauber. Also the tyres had been given more grip so I updated the tyre grip values accordingly. Finally I spent a few hours creating special setups to test the affect of the wings on the high speed handling of the cars (that have wings) to try and estimate their locations better. This greatly improved the accuracy of the understeer/oversteer balance due to aero.
Welcome GRC v2.5.3

Back to Uni, another project
After a years break from education to earn some much needed cash, I'm back to finish off the last year of my degree. This year I have to pick a project, and what better project to pick than GRC? That will save me some work, surely?>
Well, it will and it won't. With Colcob busy with other things, his ageing Setup Analyser needs a lot of work to be brought up to date. Also it's still in spreadsheet format like GRC used to be. We had plans around October 2005 to create the ultimate setup analyser using a web interface and an SQL back-end, but they didn't come to much in the end.
So, my Uni project is to create this ultimate analyser, taking the code base of GRC and taking things much, much further. Since this is my 3rd year of University and, were I not to change the name, this would be GRC v3, I will for now call this application "Project3".
More details on the project to follow later.