Getting Started


r:trån requires JDK 11 or later versions.

If you are on Windows, install it with choco by running:

choco install openjdk11

If you are on a Debian-based Linux, install the JDK by running:

sudo apt install openjdk-11-jre

If you are on macOS, install it with homebrew by running:

brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk11


Download the executable jar at the releases section or build it yourself:

git clone
cd rtron

./gradlew shadowJar # build the uber-jar
cd rtron-cli/build/libs

Let it run:

java -jar rtron-*.jar
    r:trån transforms road networks described in OpenDRIVE into the virtual 3D
    city model standard CityGML.
    --version       Show the version and exit
    --no-recursive  Do not search recursively for input files in given
                    input directory
    --parallel      Run processing in parallel
    -c, --clean     Clean output directory by deleting its
                    current content before starting
    -h, --help      Show this message and exit
    INPUTPATH   Path to the directory containing OpenDRIVE datasets
    OUTPUTPATH  Path to the output directory into which the
                transformed CityGML models are written

Batch Processing

Assuming there are multiple OpenDRIVE datasets contained in the input path, for example like this:

tree ./opendrive-datasets
  │   ├── Ex_Line-Spiral-Arc.xodr
  │   └── UC_ParamPoly3.xodr
      └── CrossingComplex8Course.xodr

r:trån then recursively iterates over all models and generates the respective CityGML datasets. The directory structure is preserved and report logs are added:

java -jar rtron-*.jar ./opendrive-datasets ./citygml-datasets

tree ./citygml-datasets
  │   ├── Ex_Line-Spiral-Arc
  │   │   ├── Ex_Line-Spiral-Arc.gml
  │   │   └── report.log
  │   └── UC_ParamPoly3
  │       ├── report.log
  │       └── UC_ParamPoly3.gml
  ├── general.log
      └── CrossingComplex8Course
          ├── CrossingComplex8Course.gml
          └── report.log