Turbo Building Tutorial - WIP

Chris Lesperance

Registered
I recently started to try and figure out how to do accurate turbos with the Physics Spreadsheet. This is the table that starts on Cell M39 on the Engine2 tab. I’m hoping to add this here for documentation and hive mind the parts that might be missing.

I haven’t figured out how to do the Turbine Flow rate (Cell A48 to D98). If some one has suggestions, please post it and let me know.

First thing is research. Finding any graphs related to the make and model of your turbo. Usually there is a compressor map that is a standard layout for all turbos. As an example, it is the Figure 2 picture below.

Once you have this, it is trying to extract the numbers from your map graph. I've been using https://plotdigitizer.com/app lately. Maybe there are others out there, but any app that will convert a line graph to data. Load in the graph, and then set your X and Y limits. A reminder that the scale for the flow can be different. You’ll need to convert the X axis to kg/s if that is not available.

On the spreadsheet side, I believe you only need to fill in what you know. You don't have to utilize the full chart. Adding more will make it more detailed, but I do not believe it is necessary. In this example, with the map having the turbo RPM going to 150000 rpm, I filled in the Spool RPM (Cell O42) to 20000. You need to try and make that Spool RPM number come close to the RPMs that are listed on your compressor map to make guessing easier. The Corrected flow on the compressor map goes to ~0.5 kg/s. Putting "0.05" in Cell P42 gives a good break down for that.

Using 100k RPM as an example of what to do.
Surge flow - Red line - Column AG is the Compressor surge flow values. For this, you match the RPM on the spread sheet with where it intersects with the surge flow line. You take the X value, and put that in the AG column.

Pressure Ratio - Yellow - You'll take the corrected flow value on the sheet (Blue numbers/lines), and use that on your X axis on the map. Where that intersects with the RPM, gives you the pressure ratio. You will fill that in the chart for the RPM you are working with (Yellow cells).

Now where the pressure ratio is plotted, that will be within an area circle. That is the Efficiency (green values). This is a little guess work as the circles increase by a couple percent per line. How ever it falls, you put that in the chart for the RPM you are working with (green cells)

That should take care of 1 rpm line. That just need to be done for the rest of the rpms on your chart.

I hope I explained the way that I see things well enough. It just has to be done for all RPM values on the spreadsheet. Now the values before and after the plotted points, I do not have a good solution for. In my engine, I just took some inspiration from the provided turbo on the sheet. If you come up with a better or easier solution, I would love to hear it. Also note that if the RPM value on the sheet is not on the map (for example 40000rpm), that might take a little guess work. I don't have a good and easy solution for that either. I think I might have to ask ChatGPT for some suggestions.

Anyway, let me know if that works or if there are any questions. I'll do my best to answer!

spread10.jpg

map10.jpg
 
I am now working on R90CK :D I have a problem where the power wouldn't increase anymore after 1000bhp. I think I had once 1200bhp on my BMW 3.2 CSL Turbo physics (accidently and had to correct). I am writing this comment before I will start learning about these compressor parameters, I haven't been doing anything with those yet. And I hope to find answer in these lines, thanks to this thread hopefully a lot quicker.

So far I have been only messing with TurbineFlowEffects, which usually did the trick. But I never had full control over turbo physics.
 
Looking for some clarification that my thinking is correct regarding the surge line. Going by this quote "This line represents the maximum amount of pressure the turbocharger can produce while flowing the least amount of mass.", I interpret that you take the fuel mass flow that intercepts with the surge line. Using the attached picture as an example, looking at data point 4 at 118908 RPM, which is somewhat placed on the surge line, the value I should put in for the surge lookup table is roughly .0435 (6 lbs/min). Please correct me if I'm wrong in this regard. Thanks!
1767560302475.png
 
Looking for some clarification that my thinking is correct regarding the surge line. Going by this quote "This line represents the maximum amount of pressure the turbocharger can produce while flowing the least amount of mass.", I interpret that you take the fuel mass flow that intercepts with the surge line. Using the attached picture as an example, looking at data point 4 at 118908 RPM, which is somewhat placed on the surge line, the value I should put in for the surge lookup table is roughly .0435 (6 lbs/min). Please correct me if I'm wrong in this regard. Thanks!
View attachment 56948

Yes, your ~0.435 would be my interpretation of the surge line value. I'm by no means an expert myself

 
How is compressor RPM calculated ? Probably some complex formula with engine rpm, amount of fuel burned, exhaust gases flow pressure ? It seems like problem I had of power plateau despite adding boost was due to lacking more lines (ratio, efficiency) for compressor table, interestingly changing table RPM step value didn't help. And changing corrected flow step also almost didn't help.

Continuing exploring, turbo is one another thing that brings that realization (once again) of how far rF2 go. There is so much going on there. Underappreciated.
 
How is compressor RPM calculated ?
Are you referring to the RPM used in the IRL data or the RPM on the physics sheet? I'm not sure how the IRL RPM is selected. For the Physics sheet, it is controlled by cell O42 on the Engine2 tab. I'm sure you could use math, but I have been using ChatGPT to ask what number divides into all to the listed IRL rpm the closest. Some kind of prompt like that.

I believe the Turbine Chart (A49:98 - D49:98 on the Engine2 tab) works as follows:

Turbine-Flow-Maps-G25-2-scaled.jpg


Using this chart, The Y axis aligns to column A. At each of those entries, you match the value to the X axis on this chart, and enter it in Column C.

Garrett_Performanmce_G25-700_Compressor_Map-scaled.jpg


Using the Column C value, that will match to the Y axis on this chart. I believe where the Y-Value crosses the center dotted line, will give you your efficiency for Column D in the spread sheet. If your chart doesn't have the dotted line, I am thinking you make a line that hits the apex point of the efficiency curves.

Now, my issue, seems to be similar to what @ThomasJohansen is having in this post (https://forum.studio-397.com/index....d-ai-extreme-boost-levels.87337/#post-1163431), where it seems at times that boost is way too much. I am very lost on that. I haven't been able to figure that part out. I am leaning on it being wastegate and dump valve values. I cannot get my head wrapped around how those actually work.

These are just my theories on how this all works. I am by no means, an expert. It seems to make sense with the charts that were provided in the sample Physics sheet. If someone has any additional ideas or thoughts, please share them.
 
This is why I quit modding after GTR2. all I had to do was make a flat camel hump rpm map for the turbine cars and they performed somewhat close to expectations. Air Flow? Turbine rpm? Crimeny! Do we need a metallurgy degree to discuss the turbine blades?
 
new question about turbo.

Just realized, my turbo stays at 1.0 boost when idle (max 1.7). what controls this? it should probably lower to 0.2 when idle.
 
new question about turbo.

Just realized, my turbo stays at 1.0 boost when idle (max 1.7). what controls this? it should probably lower to 0.2 when idle.

Is the displayed value boost or total/ambient pressure? I'll have to check the next time I'm on my PC to see what information it displays. When the turbo is at max pressure, what does that display? Is it 1.7 bar or 2.7 bar?

I was going back and forth on my values. I'm not sure if the real documentation lists "boost" as boost pressure over ambient or as total pressure. I eventually settled on the combination of what provided the closest HP. In my case when they said "25 PSI at max boost" this was 25 PSI (172369 pascal) over ambient.

1776697099245.png


I hope that helps :)
 
Boostpressure starts at 1.0 when idle, and my car at setting 7 it goes to 1.7 when full throttle etc. but when off throttle it goes back to 1.0.
Then my question is , shouldnt it drop to almost zero?

When you look at this magnificent video, you can see the boost gause goes to zero when off throttle, and that just made me wonder, because this must have an effect on how the turbo behaves.

here is my boost setting (also tried engineBoostRange 0, but didnt change this)
2026-04-20180642.jpg
 
Last edited:
I kinda figured out where baseline boost (off throttle) is.
It's the first value of pressure ratio in compressor table.
I couldnt set it lower than 0.35 else the car would stall or make funny behaviors. also had to raise idleRPM to 1700 to maintain idle rpm at 1200.

I also rescaled my turbo from 0.5 step to 0.25 to better fit engine rpm, and adjusted the efficiency values (graph to the right)


Also after asking AI about turbo problems in my engine file, I adjusted IntakeLeak. ended up on 8.00E-7
I dont feel the Dumpvalve have much to say unless they are too low. AI suggested 105000 / 100000 but was too low so went with 115000 / 110000.


So now it looks something like this:

turbo-v3.jpg
 
Last edited:
Looking for some clarification that my thinking is correct regarding the surge line. Going by this quote "This line represents the maximum amount of pressure the turbocharger can produce while flowing the least amount of mass.", I interpret that you take the fuel mass flow that intercepts with the surge line. Using the attached picture as an example, looking at data point 4 at 118908 RPM, which is somewhat placed on the surge line, the value I should put in for the surge lookup table is roughly .0435 (6 lbs/min). Please correct me if I'm wrong in this regard. Thanks!
View attachment 56948
About the turbo map, should they start from "zero" or like @Robin Pansar example from almost horisontal level at a certain boostlevel?
Does it matter much?
 
I kinda figured out where baseline boost (off throttle) is.
It's the first value of pressure ratio in compressor table.
I couldnt set it lower than 0.35 else the car would stall or make funny behaviors. also had to raise idleRPM to 1700 to maintain idle rpm at 1200.

I also rescaled my turbo from 0.5 step to 0.25 to better fit engine rpm, and adjusted the efficiency values (graph to the right)


Also after asking AI about turbo problems in my engine file, I adjusted IntakeLeak. ended up on 8.00E-7
I dont feel the Dumpvalve have much to say unless they are too low. AI suggested 105000 / 100000 but was too low so went with 115000 / 110000.


So now it looks something like this:

View attachment 57275
That is pretty much how I drew my GTR2 turbo motors Follow the Red line. lol!
 
I created a program using five local AI agents to automate the process of building a naturally aspirated or turbo engine. It speeds up my workflow by generating a datasheet based on web searches.
  • In RF Studio Beta, the agents must be understood as a team, not as a single brain that does everything.


    General RF Studio Beta Pipeline

    1. The user selects a manufacturer, an engine, then a variant/application.
    2. Agent 1 reads the local cache and prepares the research plan.
    3. Agent 2 searches only free public sources.
    4. Agent 3 extracts technical values from the sources.
    5. Agent 4 analyzes images, curves, and turbo maps.
    6. Agent 5 checks consistency as an engine engineer.
    7. Validated values feed the OEM datasheets.
    8. Missing values are classified as: mandatory, useful, optional, or deducible.
    9. The data is then injected into the XLS/ODS spreadsheet.
    10. The spreadsheet remains the calculation reference.
    11. RF Studio then converts the validated results into engine.ini.
    12. The exported file is checked using rFactor 2 / ModDev rules.

  • Agent 1 — Local Coordinator


    Planned model: qwen3:latest


    Role:
    Prepare the work before research.


    Capabilities:

    • read the local cache;
    • check what already exists in OEM_RESEARCH, OEM_TURBO, datasheets, and sources;
    • build the research plan;
    • decide what is truly missing;
    • avoid unnecessary searches;
    • prepare dynamic prompts for the other agents;
    • adapt the research according to the engine configuration: naturally aspirated, turbo, twin-turbo, transmission, variant, use case.

  • It must not:

    • invent a value;
    • validate a source;
    • write directly into the OEM database without validation.

  • Agent 2 — Free Web Research


    Model/tools: free web search engine + qwen3:latest


    Role:
    Find public sources without using paid GPT.


    Capabilities:

    • search manufacturer + engine;
    • search variants, years, applications;
    • search technical datasheets;
    • search power/torque curves;
    • search turbochargers, references, catalogs, PDFs, technical forums;
    • search alternative references, CHRA, replacement parts, and turbo catalogs;
    • save links and documents into the cache.

  • It must produce:

    • sources;
    • links;
    • match level;
    • source type;
    • application context;
    • not the final values.

  • It must not:

    • perform engine calculations;
    • fill engine.ini by itself;
    • invent a turbo map.

  • Agent 3 — Technical Extraction


    Models: qwen3:latest / qwen3-vl:8b


    Role:
    Read the collected sources and extract the parameters.


    Capabilities:

    • extract bore, stroke, compression ratio, power, torque, RPM;
    • extract turbo brand/model/reference;
    • extract dimensions when they are written;
    • extract inducer/exducer diameter, turbine, bearing type, flow, pressure, turbo speed if available;
    • fill research_fields.json;
    • associate every value with a source;
    • provide confidence + status.

  • It must write:

    • pending_validation;
    • source;
    • confidence;
    • short justification.

  • It must not:

    • replace manufacturer data with an estimate;
    • mix several engine variants;
    • validate a curve image without verification.

  • Agent 4 — Vision / Curves / Maps


    Model: llama3.2-vision or qwen3-vl:8b


    Role:
    Analyze images.


    Capabilities:

    • read a power/torque curve;
    • verify whether the curve matches the correct variant;
    • digitize points;
    • read a compressor map;
    • read a turbine map if available;
    • identify axes, units, efficiency islands, surge line, choke line, speed lines;
    • verify whether an image is usable or too poor.

  • It must be used for:

    • PowerCurve;
    • TorqueCurve;
    • Compressor Map;
    • Turbine Map;
    • ZePerfs / Automobile Catalog / PDF / manufacturer scan images;
    • imported XLS proxy maps.

  • It must not:

    • accept a curve from another variant;
    • invent invisible points;
    • extrapolate without marking it as estimated.

  • Turbo Proxy via XLS Spreadsheet


    When an exact OEM turbo map is not found, RF Studio must not directly invent a map.


    The turbo proxy pipeline is:

    1. Identify the OEM turbo or possible references.
    2. Search alternative references, CHRA, catalogs, and compatible parts.
    3. Extract known dimensions: compressor, turbine, bearing, flow, pressure, speed.
    4. If an exact map exists, it has priority.
    5. If a map from the same application exists, it is used with medium confidence.
    6. If an equivalent map exists, it is used as a documented proxy.
    7. If no map exists, RF Studio uses a proxy XLS spreadsheet.
    8. The XLS spreadsheet reconstructs a compressor/turbine envelope from the dimensions and engine context.
    9. The calculated values are imported into RF Studio as engineering_proxy.
    10. The proxy keeps a trace of all assumptions.
    11. The proxy must indicate missing data: wheel diameter, efficiency, flow, speed, wastegate, VTG, inertia.
    12. The proxy must never be presented as an OEM map.

  • For multi-turbo engines:

    • RF Studio checks whether the turbos are identical, left/right mirrored, or different;
    • if the turbos are symmetrical, a single equivalent rFactor 2 turbo block can be exported;
    • flow and inertia are combined;
    • pressure and efficiency are not doubled;
    • traceability must specify the real number of turbos and the number of exported blocks.

  • Agent 5 — Engine Engineer


    Model: qwen3:32b


    Role:
    Perform the engineering review.


    Capabilities:

    • check engine consistency;
    • check turbo consistency;
    • compare power/torque/RPM;
    • detect impossible values;
    • judge whether a proxy is acceptable;
    • verify whether the values coming from the XLS proxy are physically credible;
    • explain why a value is retained;
    • suggest what to search for to improve fidelity.

  • It mainly intervenes for:

    • OEM fidelity;
    • .ini quality;
    • ModDev anomalies;
    • engine crashes;
    • turbo proxy;
    • engine inertia;
    • combustion, lambda, VolumeFract, MixtureFract;
    • final validation before export.

  • It must not:

    • search the web itself unless sources are provided to it;
    • write directly into datasheets without validation.

  • Paid GPT Agent — Backup Only


    It is no longer the main agent.


    Role:
    Exceptional paid research when local agents are blocked.


    Usage:

    • only with authorization;
    • displayed budget;
    • mandatory cache;
    • one request must cover all possible missing items;
    • no final extraction, except source or proof.

  • It must be used to:

    • find a very difficult source;
    • find a rare turbo reference;
    • find an OEM or equivalent map;
    • find a public curve that cannot be found locally.

  • It must not:

    • be launched parameter by parameter;
    • replace Qwen;
    • directly fill the database without control.

  • Simple Summary


    Agent 1 prepares.
    Agent 2 searches.
    Agent 3 extracts.
    Agent 4 reads images.
    Agent 5 judges like an engineer.
    The XLS/ODS spreadsheet calculates.
    RF Studio exports the engine.ini.
    GPT is a controlled paid backup.


1786345890054.png
 
Last edited:
Very interesting and complex. I have been using Claude/ Sonnet 5 and occasional dabble with Opus5. I am fairly new to this and have not used Agents yet.
Only tested on engines so far, he throws up some great unthought of, suggestions, some work others dont.
I am continuing my adventure and hope to see greater gains.
 
AI these days helps a lot, no doubt about it. I hope at the end it doesn't lack human touch, when I say human I mean those who aren't NPCs. I think AI is more human than NPC people :D

I am occupied by work elsewhere. But I am looking forward to try out these tools. I have had little bit of somewhat successful work done with few 70s DRM turbo cars and Nissan R90CK, that probably could still get bit better. I have Miata project that involves turbo, would love to do F40 and Yellowbird....

Turbos also has very interesting impact on overall vehicle dynamics. One car I had I pretty much had the dynamics near target, but the engine lacked proper Turbo simulation, it worked more like NA than turbo. When I got it a lot more like Turbo should be, the dynamics changed a lot, and the dynamics did deviate further from target...

With all these tools and knowledge coming at I expect to see some impressive cars driving in rF2. But what I see is usually subpar physics, that people for some reason cheer up just the same :D

So IMO rF2 had died as paltform to race and share. But it should live forever for us to study it, study real cars, and then merge these two studies to obtain forever improving experience in simulation.
 
Back
Top