Generating Vegetation in urban areas using CGAL #31
pa-senger
started this conversation in
Project Portfolio
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Internship for the Exa-MA WP1 Vegetation Project
Intern: Pierre-Antoine SENGER @pa-senger (Master 1 CSMI)
Advisors: @vincentchabannes, @palliez, @prudhomm
Overview
This project is part of a series conducted within the
Exa-MA Project
1, a segment of theNumpex
research initiative2. My colleagues and I worked on the following projects:These projects are conducted within the
HiDALGO2
initiative3, which "aims to explore synergies between modeling, data acquisition, simulation, data analysis, and visualization along with achieving better scalability on current and future HPC and AI infrastructures to deliver highly-scalable solutions that can effectively utilize pre-exascale systems"4.Specifically focusing on the
Urban Building Model
5 Use Case (UBM), which is "developing the Urban Building pilot application to improve building energy efficiency and indoor air quality"5, this particular project aims to integrate vegetation, particularly trees, into 3D models of urban environments.The projects are conducted within
Cemosis
6 (Center for Modeling and Simulation in Strasbourg), hosted byIRMA
7 (Institute for Advanced Mathematical Research) atStrasbourg University
. We operated as students under the supervision ofVincent Chabannes
8, a research engineer at IRMA,Pierre Alliez
,9 a senior researcher and team leader at Inria Sophia Antipolis andChristophe Prud'homme
10, a professor in applied mathematics at Strasbourg University.This Vegetation project aims to integrate trees into 3D geometric models of urban environments to improve the accuracy and realism of thermal and energy simulations.
Main Objectives
Urban areas are complex ecosystems influenced by various factors, with vegetation, especially trees, playing a crucial role in shaping microclimates, reducing energy consumption, and enhancing overall livability11. To model them, we have identified the following objectives:
OpenStreetMap
usingcpr
12:CGAL
13 andGmsh
14:Methodology
Data Acquisition: Utilizing the Overpass API and cpr, we query OpenStreetMap for tree data within a specified bounding box. This data includes GPS coordinates, height, trunk circumference, and crown diameter, among other attributes.
Tree Library: We assume trees belong to specific shape categories (cone, oval, round) and use simple models for LOD 0, created with Gmsh. For higher LODs, we retrieve reference tree meshes from the Sketchup 3D Warehouse and pre-process them using Meshlab.
Tree Scaling: We scale the reference tree meshes based on the dimensions provided in the OpenStreetMap data. The scaling factor is determined by the maximum of the height ratio, trunk circumference ratio, and crown diameter ratio.
CGAL 3D Alpha Wrapping: To generate tree meshes at runtime, we use the CGAL 3D Alpha Wrapping algorithm15, which constructs a simplified mesh that approximates the input geometry. This process is performed for LOD 1,2 and 3 using appropriate α values.
Tree Placement: We convert the GPS coordinates of the trees to Cartesian coordinates relative to a specified origin. The scaled tree meshes are then placed at the corresponding locations in the simulation.
Mesh Merging: To optimize rendering performance, we merge the tree meshes into a single mesh for each LOD. This process involves combining the individual tree meshes as well as other scene elements (buildings, terrain) to create a unified mesh.
Parallelization: We parallelize the tree placement steps to improve performance. This involves distributing the workload across multiple threads to take advantage of multi-core processors.
Results
Trees were correctly placed, scaled, and integrated into an existing terrain mesh (here Strasbourg city center):
Buildings only:
Trees only:
Buildings and trees:
A close up view on Place de la République:
You can notice the different colors on the foliage, which correspond to markers used to control leaf density and simulate seasonal changes.
Performance
We also conducted a performance analysis to evaluate the efficiency of our implementation. The graph below illustrates the execution time under different conditions, specifically comparing the effects of enabling and disabling the auto-refinement feature. The data highlights how auto-refinement impacts processing speed, providing insights into the trade-offs between accuracy and performance:
To go further
More information at Ktirio Geom Docs
References
Footnotes
Exa-MA Consortium. Available at Exa-MA ↩
Numpex Consortium. Available at Numpex ↩
HiDALGO2. Available at HiDALGO2 ↩
HiDALGO2. About HiDALGO2. Available at HiDALGO2 About ↩
HiDALGO2. Urban Building Model. Available at Urban Building Model ↩ ↩2
Cemosis. Available at Cemosis ↩
IRMA. Available at IRMA ↩
Vincent Chabannes. Available at Vincent Chabannes ↩
Pierre Alliez. Available at Pierre Alliez ↩
Christophe Prud'homme. Available at Christophe Prud'homme ↩
Tania Landes , The Conversation: D’où vient le pouvoir rafraîchissant des arbres en ville ?, 2023. Available at The Conversation: D’où vient le pouvoir rafraîchissant des arbres en ville ↩
CPR Developers. C++ Requests: Curl for People. Available at CPR ↩
CGAL Development Team. Available at CGAL ↩
Christophe Geuzaine, Jean-François Remacle. Available at Gmsh ↩
Sketchup. Available at Sketchup ↩
Beta Was this translation helpful? Give feedback.
All reactions