Skip to content

Migrate Trail Generation Terrains#6539

Draft
fjenelten-bdai wants to merge 9 commits into
isaac-sim:mainfrom
fjenelten-bdai:fjenelten/feature/trail_library_migration
Draft

Migrate Trail Generation Terrains#6539
fjenelten-bdai wants to merge 9 commits into
isaac-sim:mainfrom
fjenelten-bdai:fjenelten/feature/trail_library_migration

Conversation

@fjenelten-bdai

@fjenelten-bdai fjenelten-bdai commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Description

This PR adds a modular framework for generating parameterizable mountain-bike trails. Each terrain patch comprises four components: a starting platform, a final platform, a connecting trail segment, and distinct skill elements. The resulting terrain is represented as a single mesh using the trimesh library, which models geometry as triangles and stores visual information within the RGB channels.

A trail segment is generated by first defining a cross-section polygon with counter-clockwise ordered vertices. This polygon is then swept along a sweeping path, a sequence of knot-points (x, y, z and yaw) connecting the two platforms. To form a simple ground floor around the trail, the vertices on the left and right borders are expanded outward. Each trail segment may contain one or more skill elements of a unique type, such as ramps, skinnies, roots, rocks, or waves. Each element is parameterized by a uniform distribution over its dimensions.

The generated terrains can easily be embedded into the existing Terrain Generator. The parameterization of the skill elements scales linearly (other maps may be defined) with the terrain level, allowing to employ a classical terrain curriculum.

The terrain mesh is systematically randomized by overlaying the vertices with a sequence of geometric disturbances. Additionally, decorative elements such as trees, roots, or stones can be procedurally placed adjacent to the trail. These perturbations break predictable structural patterns, preventing overfitting to specific procedural patterns.

Semantic information is explicitly stored in the vertex colors. The exact RGB values can be chosen arbitrarily, provided the mapping from RGB to semantic label remains bijective.

As training environment we have generate more than 1000 unique terrain patches and trained behaviors on a single NVIDIA L4 GPU.

This PR is part of an upcoming publication from the Robotics and AI (RAI) institute.

Type of change

  • non breaking feature

Screenshots

trail_library_short.mp4

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there
@github-actions github-actions Bot added documentation Improvements or additions to documentation enhancement New feature or request isaac-lab Related to Isaac Lab team labels Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request isaac-lab Related to Isaac Lab team

1 participant