Generate random, rules-compliant tracks for Formula Student Driverless competitions. Creates realistic tracks with proper track width, cone spacing, and corner radii using Voronoi diagram-based generation.
Developed by Formula Student Team Delft for use with FSSIM and FSDS.
Tracks are generated using bounded Voronoi diagrams from uniformly sampled points. Regions are selected using one of three modes (Expand, Extend, or Random), then interpolated with cubic splines to create smooth, realistic racing lines.
pip install random-track-generatorfrom random_track_generator import generate_track
# Use preset parameters
track = generate_track("small")
track = generate_track("medium")
track = generate_track("large", seed=42)
# Or set parameters manually
track = generate_track(
n_points=60, # Voronoi points
n_regions=20, # Regions to select
min_bound=0., # Minimum x/y bound [m]
max_bound=150., # Maximum x/y bound [m]
mode="extend", # Generation mode
seed=42 # Optional: for reproducibility
)
cones_left, cones_right = track.as_tuple()"expand"- Selects nearest neighbors for roundish tracks"extend"- Selects regions along a random line for elongated tracks"random"- Randomly selects regions for large, irregular tracks
Note: Not all parameter combinations produce stable results. Experiment with settings if generation fails.
from random_track_generator import load_track
track = load_track("FSG") # FSG and FSI available
cones_left, cones_right = track.as_tuple()track.save("output/", sim_type="fssim") # YAML for FSSIM
track.save("output/", sim_type="fsds") # CSV for FSDS
track.save("output/", sim_type="gpx",
lat_offset=51.19, lon_offset=5.32) # GPX with coordinatesBased on Ian Hudson's Race-Track-Generator.


