Reference

Changelog

What changed in each version of BeamSetto, from the project's CHANGELOG.md.

0.0.1 - 2026-11-12

The first version of BeamSetto: one Python application that works in two steps (read the EVO tracks, build the BeamNG levels), each usable on its own. It reads the game's files from a folder that holds them under their game paths. It doesn't read content.kspkg: getting the files into a folder is up to you, and the project doesn't provide or describe a way to do it. Tested with Assetto Corsa EVO 0.9.1 and BeamNG.drive 0.40.5; Laguna Seca and the Nürburgring were built and driven in game. Not converted yet: sound, fog and haze, EVO's road variation and imperfection layers, layered materials blended by a mask, decals on walls, start lights, the pit lane's AI road, and the trees' branch and leaf flutter. Released under the GNU Affero General Public License v3 (AGPL-3.0-only).

Added

  • beamsetto, the one command of the tool, with a group of subcommands per step (evo, beamng), and -q/--quiet (errors only, no progress), -v/--verbose (debug messages) and -V/--version. It runs with uv: uv run beamsetto, or uv tool install . to have it everywhere.
  • beamsetto evo schema: reads the game's data schemas from your AssettoCorsaEVO.exe and caches them; nothing of the game is shipped with the tool.
  • beamsetto evo tracks: the tracks of the game with their layouts and game modes.
  • beamsetto evo export: writes everything a track is made of, as the game reads it, from a folder holding the game's files.
    • One file per part of the circuit (track, surfaces, layouts, objects, instances, lights, decals, splines, zones, start positions, marshals, baked lighting, sound, cameras, particles); --part exports only some.
    • Every object placed exactly where the game places it, sub-scenes included.
    • Per layout: its game modes, AI line, pit line, control points, rubber map, and the menu's picture and map of it.
    • The meshes (every LOD), materials (resolved through their parents) and textures (the game's own data as ordinary DDS files) the track reaches, written once for all tracks.
    • Runs on every CPU it may use (its affinity; at most 61 on Windows); a run only rewrites the assets that changed in the game.
    • Missing or broken game files are listed with what references them.
  • beamsetto evo info: what an export holds, part by part.
  • beamsetto.evo, the same as a Python library (export_tracks).
  • beamsetto beamng list: the exported tracks, their layouts and the levels they become.
  • beamsetto beamng build: builds a BeamNG.drive mod per track, with a level per EVO layout, each part of the track in the BeamNG system made for it, as BeamNG builds its own levels:
    • every mesh placed where EVO places it (checked to 1 mm), with EVO's levels of detail; roads, kerbs and every driving surface stay EVO's exact meshes;
    • collision exactly where EVO has it, with the grip of each EVO surface;
    • EVO's materials and textures (normal maps converted, packed maps split, sRGB maps read as EVO's sampler reads them); layered materials with constant layer weights drawn with EVO's weights; the asphalt's fine detail (EVO's world-projected detail maps) as BeamNG detail maps;
    • EVO's decorative landscape as a terrain: its layers, textures, tiling and colours, within millimetres of EVO's ground, under every road and run-off (under the lower road where one passes under another, as at Suzuka's crossover), quick to load;
    • EVO's grass as BeamNG billboard grass made of EVO's own grass picture, at EVO's height and density (its density set by BeamNG's graphics setting), never on roads, kerbs or gravel traps; EVO's small plants as ground cover too;
    • trees, crowds and props as forest items, each exactly where and as EVO draws it, stretch included; the few that collide in EVO collide in BeamNG too;
    • wind: the trees and bushes EVO sways bend from their base in BeamNG's forest wind, and the grass sways at EVO's intensity;
    • EVO's sun, date and time, or your own with --when and --location;
    • a view distance that reaches EVO's farthest scenery from anywhere on the circuit (or EVO's own far plane), up to BeamNG's 25 km;
    • a spawn point (and big-map travel point) at every EVO start position: garages, pit boxes, pit lane, grid, hot-lap starts, car parks…, facing as EVO's cars do;
    • EVO's own menu picture and map of each layout as the level's (and its AI race's) preview;
    • EVO's lights as BeamNG's point and spot lights at EVO's brightness, switched on at night;
    • EVO's ground decals (tyre marks, paint) as BeamNG decal roads of EVO's size, the right way round (the tyre marks EVO flips get mirrored textures);
    • the racing line's rubber, from EVO's per-layout rubber map, as BeamNG rubber decals with EVO's colour and gloss per asphalt;
    • racing: a BeamNG quick race (and the freeroam time trial BeamNG makes of it) for every layout with timing lines (Nürburgring Touristenfahrten as an A-to-B), with EVO's timing lines, race spawn and hot-stint spawn; an invisible AI road along EVO's own AI line, between its track limits, for BeamNG's AI and traffic, which also draws the circuit on BeamNG's minimap and big map;
    • an AI race per layout (a BeamNG mission) on EVO's grid: laps, number of opponents and their cars chosen on BeamNG's mission screen;
    • EVO's TV cameras as camera bookmarks;
    • the level's details in BeamNG's level list from EVO's data: venue, country, region, track type and length, game modes, altitude, grid and pit boxes, size; credits to Assetto Corsa EVO and BeamSetto;
    • runs on every CPU it may use (at most 61 on Windows); only what changed is written again, and the shared files no level uses any more are deleted.
  • beamsetto beamng install: links built mods into BeamNG.drive's mods/unpacked.
  • beamsetto.beamng, the same as a Python library (build_track).
  • A Dockerfile: the command in a small image (Python 3.14, uv, the locked dependencies, a non-root user), the current folder mounted as its working folder.
  • GitLab CI: .gitlab-ci.yml runs the checks of make check (ruff and mypy --strict) on every branch, beside Auto DevOps, which builds the image.

BeamSetto is free software under the GNU AGPL v3.

Not affiliated with Kunos Simulazioni or BeamNG GmbH. Assetto Corsa EVO and BeamNG.drive are trademarks of their owners.