Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

AdTree implements the tree reconstruction method described in the following paper:

Shenglan Du, Roderik Lindenbergh, Hugo Ledoux, Jantien Stoter, and Liangliang Nan.
AdTree: Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees.
Remote Sensing. 2019, 11(18), 2074.

3D tree models reconstructed from point clouds

Build and Run AdTree

Prebuilt executables (for macOS, Linux, and Windows) can be downloaded here.

AdTree depends on some third-party libraries and most dependencies are included in the distribution except Boost. So you will need to have Boost install first.

Note: AdTree uses a stripped earlier version of Easy3D, which is not compatible with the latest version.

You need CMake and of course a compiler to build AdTree:

  • CMake >= 3.1
  • a compiler that supports >= C++17

AdTree has been tested on macOS (Xcode >= 8), Windows (MSVC >=2015), and Linux (GCC >= 4.8, Clang >= 3.3). Machines nowadays typically provide higher supports, so you should be able to build AdTree on almost all platforms.

There are many options to build AdTree. Choose one of the following (or whatever you are familiar with):

  • Option 1: Use any IDE that can directly handle CMakeLists files to open the CMakeLists.txt in the root directory of AdTree. Then you should have obtained a usable project and just build. I recommend using CLion or QtCreator.
  • Option 2: Use CMake to generate project files for your IDE. Then load the project to your IDE and build.
  • Option 3: Use CMake to generate Makefiles and then build.
    • on Linux or macOS:
      $ cd adtree
      $ mkdir Release
      $ cd Release
      $ cmake -DCMAKE_BUILD_TYPE=Release ..
      $ make
    • on Windows with Microsoft Visual Studio:
      $ cd adtree
      $ mkdir Release
      $ cd Release
      $ cmake -DCMAKE_BUILD_TYPE=Release ..
      $ msbuild adtree.sln /p:Configuration=Release

Don't have any experience with C/C++ programming? Have a look at How to build AdTree step by step.

After obtaining the executable, AdTree can be run in three modes, which can be selected based on arguments.

  • GUI mode that provides a user interface with menus. You can double click to run the app or from the command using ./AdTree.

  • Single processing mode (i.e., processing a single point cloud file) from the command line using

    ./AdTree <xyz_file_path> <output_directory>
  • Batch processing mode (i.e., all *.xyz files in the input directory will be treated as input and the reconstructed models will be save in the output directory) from the command line using

    ./AdTree <xyz_files_directory> <output_directory>


Some test tree point clouds are provided in the 'data' folder.

Note: When testing on your point clouds, please make sure that:

  • your point cloud represents a single tree (i.e., the tree is segmented out from the background; no ground, no fence...);
  • the tree has an upright orientation (i.e., with Z-axis pointing up).


If you use the code/program (or part) of AdTree in a scientific work, please cite our paper:

  title={AdTree: Accurate, detailed, and automatic modelling of laser-scanned trees},
  author={Du, Shenglan and Lindenbergh, Roderik and Ledoux, Hugo and Stoter, Jantien and Nan, Liangliang},
  journal={Remote Sensing},
  publisher={Multidisciplinary Digital Publishing Institute}


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License or (at your option) any later version. The full text of the license can be found in the accompanying LICENSE file.

Should you have any questions, comments, or suggestions, please contact us at

3D Geoinformation Research Group, TU Delft,,

Dec. 1, 2019