SIMCircuits

Create a circuit

Build a circuit CSV from the 4ACE template, upload it, verify the 3D preview, and set the start angle.

4ACE generates a circuit from one lap of logged vehicle telemetry. Only closed circuits are supported, where the lap starts and finishes at the same place. Point-to-point courses such as hill climbs or rally stages, where start and finish are in different places, cannot be uploaded. At a minimum the file needs time, distance, speed, and lateral acceleration. Every extra column you provide, such as friction, banking, or altitude, makes the circuit model and the viewer richer.

The upload accepts CSV files only. This page explains how to build the file, what every column means, how the upload works, and how 4ACE turns the file into a circuit.

Before you start

  • Select the correct team.
  • You need module create permission to add a circuit. New is hidden without it.
  • Log one clean lap on a closed circuit. The file must cover a single lap from the start line back to the same start line, not several laps and not a point-to-point course.
  • Download a template so your columns are in the right order.
  • Choose a name and a short name of at most 7 characters.
  • Optionally prepare a PNG or JPEG picture up to 5 MB. If you skip it, 4ACE generates a 2D snapshot of the track.

Download a template

TemplateUse it for
circuit-import-template.csvStart from this file when you build the CSV directly, from a logger export, or with a script.
circuit-import-template.xlsxEdit the data in Excel. Before you upload, use File > Save As and choose CSV (Comma delimited).

Both templates contain a full example lap with all 25 supported columns in the exact order 4ACE expects, a header row with column names, and a units row. Each file is about 20 MB. The Excel workbook itself cannot be uploaded.

Build the CSV file

  1. Start from the template and keep row 1 (column names) and row 2 (units). Row 1 lets the Verify preview label your channels.
  2. Paste your lap samples from row 3 onward, one sample per row, sorted by time.
  3. Keep the columns in template order. 4ACE reads columns by position, not by name. Remove unused columns only from the right-hand end of the file.
  4. If a middle column is not logged but you need a column to its right, keep the column and fill it with a constant inside its valid range, for example 1 for Friction, 0 for Banking, or 0 for VehAccZ.
  5. Fill every cell in every kept column. Empty cells, NaN, and text are rejected.
  6. Make sure Time increases on every row and Dist starts at 0 and never decreases.
  7. Use . as the decimal separator and a comma or semicolon as the column separator.
  8. Check that every row has the same number of columns and that no row ends with a trailing separator.

Column reference

Column positions are fixed. The first four columns are mandatory. Any further columns must follow this order without gaps, because 4ACE identifies a column by its position and ignores the header text.

#ColumnCategoryUnitMinMaxWhat it is
1TimeMandatorys01000000000Timestamp. Must increase on every row.
2DistMandatorym01000000000Cumulative distance along the lap. Starts at 0 and never decreases. Sets the track length.
3VehVelXMandatorykm/h0720Forward vehicle speed.
4VehAccYMandatorym/s²-10001000Lateral acceleration. Together with speed it defines the curvature and the track shape.
5FrictionHighly recommended-0.012Estimated surface grip. 0 is rejected. Use 1 when unknown.
6BankingHighly recommended°-5050Road camber or banking angle. Tilts the track in the 3D viewer.
7VehAccZOptionalm/s²-10001000Vertical acceleration. Keep the column in place and use 0 if it is not logged.
8VehGPSAltHighly recommendedm-1009000Altitude. Gives the track its elevation profile in the 3D viewer.
9VehGPSLatOptional°-9090GPS latitude.
10VehGPSLongOptional°-180180GPS longitude.
11WhlPosFLOptionalmm-1000010000Front-left wheel vertical position.
12WhlPosFROptionalmm-1000010000Front-right wheel vertical position.
13WhlPosRLOptionalmm-1000010000Rear-left wheel vertical position.
14WhlPosRROptionalmm-1000010000Rear-right wheel vertical position.
15VehAccXReferencem/s²-10001000Longitudinal acceleration.
16VehAngVelZReference°/s-360360Yaw rate.
17EngAngVelReferencerpm0100000Engine speed. Rounded to a whole number.
18PtGearNoReference-08Gear number. Rounded to a whole number.
19DrvThrottleRtReference%0200Throttle position. Values outside the range are clamped, not rejected.
20BrkPrFrReferencePa030000000Front brake pressure. Values outside the range are clamped, not rejected.
21DrvSteerAngReference°-1000010000Steering angle.
22WhlAngVelFLReferencerad/s0571Front-left wheel speed.
23WhlAngVelFRReferencerad/s0571Front-right wheel speed.
24WhlAngVelRLReferencerad/s0571Rear-left wheel speed.
25WhlAngVelRRReferencerad/s0571Rear-right wheel speed.

Category meanings:

  • Mandatory: the four columns 4ACE needs to build the track shape. The upload is rejected without them.
  • Highly recommended: surface grip, banking, and elevation. They are stored with the circuit, shown in the 3D viewer, and used by simulations.
  • Optional: geolocation, vertical acceleration, and suspension travel. Stored with the circuit for reference.
  • Reference: driver and vehicle channels that are plotted in the circuit viewer. They do not change the track shape.

File rules

RuleRequirement
File typeCSV only. The file picker accepts .csv. Save Excel workbooks as CSV first.
Column separatorComma or semicolon. 4ACE uses semicolons when the first line contains more than one ;, otherwise commas. Tab-separated files are rejected at upload even though the preview can read them.
Decimal separatorPeriod (.). Plain decimals such as 232.3 and scientific notation such as 2.323E+02 are both accepted.
Header rowsOptional. At most 2 non-numeric rows (names and units), so numeric data must start by row 3. Keep the template header row so the Verify preview can identify channels.
Column countAt least 4 and at most 25 columns. Every row must have the same number of columns. Do not end rows with a separator.
Column orderFixed. See the column reference. Remove columns from the right only. No gaps.
CellsEvery cell must contain a number. Empty cells, NaN, and text are rejected. Quoted cells are accepted.
RowsAt least 2 data rows. Time strictly increasing. Dist never negative and never decreasing, so the file covers a single lap.
Circuit typeClosed circuits only. The lap must start and finish at the same place. Point-to-point courses are not supported.
File sizeUp to 100 MB per upload. A 1 kHz lap with all 25 columns is typically 15 to 25 MB.

Upload the circuit

  1. Open Circuits from the sidebar.
  2. Select New. The Add Circuit sheet opens on the General step.
  3. Enter Name.
  4. Enter Short Name. Short name is limited to 7 characters.
  5. Add Notes and Tags when useful for event, track version, or source tracking.
  6. Optionally upload a Picture in PNG, JPEG, or JPG format up to 5 MB.
  7. Upload the Circuit File in CSV format.
  8. Continue to Verify. The step becomes available when name, short name, and file are valid and the file contains at least one data row.
  9. Review the 3D track preview and the Telemetry charts. Use the channel selector to color the track by a channel, and Flat to hide elevation and banking in the map.
  10. Adjust Start Angle with the slider or the number field. Use a whole number from -180 to 180. The map rotates live so you can match the orientation your team expects.
  11. Select Save. A progress bar shows upload and processing progress.

After the save finishes, the circuit appears in the Circuits table, can be selected in FastSim setup, and can be opened in the viewer. Start angle can only be set during upload. To change it later, delete the circuit and upload the file again.

Circuit fields

FieldWhat it meansNotes
NameFull circuit name.Required.
Short NameCompact label used in tables and selectors.Required. Max 7 characters.
NotesTeam context for this circuit file or track version.Optional.
TagsLabels used for filtering and organization.Optional.
PictureCircuit image shown with the circuit.Optional PNG, JPEG, or JPG up to 5 MB. If omitted, 4ACE generates a 2D track snapshot.
Circuit FileCSV data used to build the circuit preview and uploaded circuit.Required.
Start AngleMap rotation used when viewing the circuit.Integer from -180 to 180. Default 0. Set during upload only.

How 4ACE processes your file

The whole pipeline runs while the progress bar is shown. In plain terms, 4ACE takes these steps:

  1. Validate the data. Every cell is checked against the ranges in the column reference. Time must increase and distance must never decrease.
  2. Detect the logging rate from the time column.
  3. Smooth speed and lateral acceleration with a low-pass filter to remove sensor noise. Other channels are not filtered.
  4. Calculate curvature at every sample from lateral acceleration and speed. Curvature describes how tightly the track turns at that point.
  5. Build the map. The data is resampled to a fixed 1 kHz grid, and the X and Y coordinates of the track are integrated step by step from speed and curvature.
  6. Close the lap. Real telemetry never ends exactly where it started, so 4ACE assumes a closed circuit and forces the lap to close. It first applies a small lateral acceleration offset so the lap turns exactly one full circle, then distributes the remaining position error along the lap so the start and finish lines coincide.
  7. Store the circuit. Apexes are detected, the full data set is stored together with the calculated curvature and coordinates, and a slim outline (X, Y, Z, and distance) is stored for lightweight map drawing.

Good to know:

  • Track length is the last Dist value in the file. Average lap time is an estimate based on track length.
  • Friction, banking, altitude, GPS, and reference channels are stored as they are. They are shown in the viewer and used by simulations, but they do not change the track shape.
  • Start angle is stored as metadata and only rotates how the map is displayed.

Troubleshooting

ProblemWhat to check
New is hiddenConfirm your role has module create permission.
Only CSV files are allowedUpload a .csv file. Excel workbooks must be saved as CSV first.
Cannot continue to VerifyCheck name, short name (max 7 characters), and the file. The file must contain at least one row that starts with a number.
Preview shows a single point or a straight lineThe header row is missing or the column names differ from the template. Keep template row 1 so the preview can identify the channels.
The Circuit information needs at least the 4 mandatory columns. (Time, Dist, VehVelX, VehAccY)The file has fewer than 4 columns. Check the column separator. Tab-separated files are read as one column.
File has N columns but only 25 are supported.Remove extra columns from the right, and remove trailing separators at the end of rows.
Line N has too many columns or Line N has too few columnsEvery row must have the same number of columns. Look for trailing separators, missing cells, or separators inside values.
Found more than 2 header rows. The first value (column 1) must be numeric by row 3.Remove extra text rows above the data. Only a names row and a units row are allowed.
Cannot parse X on line NThe cell is empty, contains NaN or text, or uses a comma as decimal separator.
X on line N is outside the valid range [min, max]Compare the value with the column reference. Common causes are speed in m/s instead of km/h, brake pressure in bar instead of Pa, or Friction set to 0.
Time must be strictly increasingSort the file by time and remove duplicate timestamps.
Distance must be non-decreasingThe file contains more than one lap or distance resets to 0. Keep a single lap with cumulative distance.
Track shape is distorted or the ends are pulled togetherThe lap is not a closed circuit. Only laps that start and finish at the same place are supported. Point-to-point courses cannot be modeled.
Upload fails because of file sizeKeep the file under 100 MB. Remove reference columns from the right or lower the logging rate.
Map faces the wrong way after savingStart angle can only be set during upload. Delete the circuit and upload again with a different Start Angle.

Next steps

On this page