Skip to content

Releases

TrackGen 0.2.0

Choose a tag to compare

@AntoineRichard AntoineRichard released this 25 Oct 07:32
8b9ab2b

The first release of the 0.2 line: the library-readiness refactor developed on the v2 branch.

Upgrading from 0.1: read the migration guide. It is organised by impact, with the changes that raise no error listed first. Pin @v0.2.0:

uv add "git+https://github.com/AntoineRichard/TrackGen.git@v0.2.0"

Highlights

  • CUDA graphs: every generation, Course call and utility can be recorded into your own CUDA graph (Warp ScopedCapture, torch.cuda.graph), with explicit streams, masked in-graph regeneration and auto-reset.
  • Plugins: one registry with entry points, a public track_gen.ops, the Stage protocol with static and dynamic Params, and the track_gen.testing conformance kit.
  • Pipeline: a pluggable track and gate pipeline: generators, relax, width, elevation, validity, ordering, stations, iterative (bounded) stages and host stages. Any track generator can produce gates.
  • Channels and curricula: per-point channels, variable width and Track.attributes. Per-env dynamic knobs, size, corner count and gate width can be randomized in the graph for curricula, and external centerlines can be ingested.
  • Course: a composition root over components. Invalid envs now return sentinels, so gate on StepResult.valid. Checkpoint capacities are a static bound.
  • SDF collision: the box query takes the exact minimum over the box outline.
  • Requirements: Warp >= 1.18 (the PyPI wheels need driver R580+ and sm_75+).

The full list is in the CHANGELOG. 0.2 is followed by a breaking 1.0, now in development.