logo

SimPLU3D est un ensemble de bibliothèques Java Open-Source qui permet de simuler des formes bâties 3D à partir de contraintes morphologiques en optimisant une fonction numérique. Ces codes peuvent être utilisés pour questionner le rapport entre des contraintes morphologiques (par exemple, issues de réglementations locales d'urbanisme) et les formes produites à l'échelle du quartier ou de l'agglomération. L'approche de SimPLU3D est générique dans le sens où il est possible de définir ses propres contraintes, fonctions d'optimisation ou types de formes.
Cette bibliothèque a notamment été utilisée pour modéliser des formes bâties à partir de contraintes issues de Plans Locaux d'Urbanisme (PLU) et permet de répondre à ce type de questions :

  • Quelle est la quantité maximale de logements que l'on peut bâtir sur une parcelle ?
  • Comment la forme de mon quartier va évoluer si l'on modifie un PLU ?
  • Est-ce que des bâtiments produisant une ombre trop importante sur les parcelles voisines risquent d'être construits ?
L'ensemble de ces bibliothèques est disponible dans l'organisation GitHub SimPLU3D et est développé et maintenu par le laboratoire LASTIG de l'Institut National de l'Information Géographique et Forestière.

SimPLU3D is a set of Java Open-Source libraries that allows the simulation of 3D built configurations that optimize a numerical utility function under the respect of morphological constraints. These libraries are used to question the relations between morphological constraints (that may appear in local urban regulation) and the produced urban fabric at the scale of a district or a whole city. The SimPLU3D approach is generic, as it is possible to use customized constraints, utility functions or type of geometric shapes.
When applied on local urban regulation, this library is notably used to answer to the following questions :

  • How many dwellings may be built on a parcel ?
  • How may the urban fabric of a district evolve if the local urban regulation is changed ?
  • Could the future buildings cause too important shadowing on the neighborhood parcels ?
All the necessary libraries are available in the SimPLU3D GitHub organization and are developed and maintained by the LASTIG laboratory from the French IGN.

News

Décembre 2018 : Ouverture de la nouvelle page d'accueil et mise en ligne d'un tutoriel .

Mars 2018 : Article 3D urban data to assess local urban regulation influence publié dans le journal Computer Environment and Urban System.

Février 2018 : Mise en ligne de la vidéo de présentation des recherches de l'axe "Analyse de l’espace et de ses dynamiques" - Séminaire d'interconnaissance de l'I-SITE Paris-Est.

December 2018 : Creation of a new home page and of a tutorial (only in French but examples codes are commented in English).

March 2018 : Article 3D urban data to assess local urban regulation influence published in Computer Environment and Urban System journal.

February 2018 : Video presenting LASTIG reasearches about Spatial Dynamics is online with SimPLU3D results.

Principe

Overview

La simulation avec SimPLU3D nécessite trois entrées principales :

  • un environnement géographique qui contient les objets géographiques modélisés nécessaires à la simulation avec SimPLU3D ;
  • la définition d'un générateur de formes, qui détermine à la fois la stratégie d'optimisation employée par le simulateur et la forme des géométries composant les configurations simulées ;
  • l'application de contraintes morphologiques, qui s'appuient sur les éléments du modèle de l'environnement géographique et contraignent la génération des formes bâties.
La sortie prend la forme d'une configuration qui respecte les contraintes morphologiques, optimise la fonction d'optimisation et est composée d'un certain nombre de géométries.

Simulating with SimPLU3D requires three main inputs :

  • a geographic environment containing all the necessary geographical objects ;
  • the definition of a shape generator, that determines both the optimization strategy and the geometric shapes forming simulated built configurations ;
  • the application of morphological constraints, that are defined with the SimPLU3D model concepts and according to the geographic environment elements, to constraint resulting configurations geometries.
Simulation output is a built configuration respecting the given morphological constraints, optimizing the given utility function and is composed of several geometrical objects defined in the shape generator.

Les bibliothèques de SimPLU3D permettent notamment :

  • une intégration facilitée des données géographiques : un process d'intégration est proposé et permet d'utiliser des environnements géographiques plus ou moins complexes. Seule une couche de parcelles est nécessaire pour effectuer des simulations ;
  • une approche générique des contraintes et des fonctions d'optimisation utilisées : grâce à la bibliothèque d'optimisation librjmcmc4j, il est possible de définir n'importe quel type de fonction d'optimisation et la génération de formes bâties s'appuie sur n'importe quelle règle morphologique du moment qu'il est possible de vérifier son respect ;
  • le suivi en temps réel de la simulation, à travers une série de moniteurs qui produisent des informations en continu ;
  • la paramétrisation des types de géométries utilisées pour produire les formes bâties afin d'adapter les résultats à différents contextes d'utilisation.

The SimPLU3D libraries embed different functions :

  • an integration process dedicated to SimPLU3D model : an already implemented integration process allows to instantiate the SimPLU3D geographic environment model, from the sole parcels layer, to more complex environment elements (e.g. neighboring buildings, parcel side type, ...) ;
  • a generic formalism to represent constraints and optimization functions : thanks to librjmcmc4j optimization library, any type of optimization function can be used and every morphological constraints can be used provided that it ;
  • real-time monitoring of a simulation, thanks to graphical rendering visitors, providing continuous information during a simulation ;
  • parameterization of geometric shapes constituting the built configurations, in order to adapt the results to different contexts of urbanization.

Réalisations

Realizations

Les bibliothèques de SimPLU3D ont été utilisées dans différents contextes opérationnels et de recherche :

  • Simulation de la constructibilité en Ile-de-France (2015 - 2019) : il s'agit d'un projet en collaboration avec l'IAUIDF et la DRIEA visant à évaluer le potentiel de l'approche SimPLU3D pour déterminer la constructibilité à l'échelle de la parcelle sur l'ensemble de l'IDF. (Pour en savoir plus, (Brasebin et al, 2017), Code) ;
  • Démonstrateur pour l'aide à la conception de PLU : ce projet en partenariat avec l'ISC-PIF vise à évaluer les formes bâties possibles à l'échelle d'un îlot en faisant varier les paramètres du PLU (Pour en savoir plus, voir (Brasebin et al, 2017), Code, Démonstrateur) ;
  • PLU++ : vers une concertation plus participative et plus efficace de PLU (2015 - 2017) : dans le cadre de ce projet de recherche en collaboration avec l'EIVP, une réflexion a été menée sur la défintion des types de représentation et des interactions à utiliser dans un contexte participatif. (Pour en savoir plus, site Internet du projet) ;
  • Démonstrateur SimPLU3D pour l'instruction de permis de construire : site Internet de démonstration pour montrer comment SimPLU3D peut faciliter l'instruction de permis de construire en vérifiant automatiquement un certain nombre de règles d'urbanisme (Site Internet du démonstrateur).
  • ArtiScales : il s'agit d'un couplage avec le modèle Mup-CITY pour la production de formes réalistes de développement résidentiel, de l’échelle du bâtiment à celle de l’ensemble d’une région urbaine dans le cadre du travail de thèse de Maxime Colomb. (Organisation du projet ArtiScales) ;
  • DECODURBA : un outil pour aider le citoyen à la construction d'une maison individuelle. Cette proposition a reçu un prix durant le hackhathon Hackhurba organisé par le ministère de la transition écologique et sociale (Site du hackhathon).

SimPLU3D libraries are used for operationnal and research applications :

  • Constructibility simulation on Île-de-France region (2015 - 2019) : with the collaboration of the IAUIDF and the DRIEA, the aim is to assess the constructibility potential with SimPLU3D for each parcel of Île-de-France cities (More about this project, (Brasebin et al, 2017), Code) ;
  • Prototype to assist the conception of local urban regulation : with the collaboration of the ISC-PIF, this prototype aims at assessing built configurations at the scale of a city block, according to the different values of regulation parameters (More about this project, (Brasebin et al, 2017), Code, Online prototype) ;
  • PLU++ : towards more efficient and more participatory local urban plans consultation meetings (2015 - 2017) : this research project in collaboration with EIVP aims to define adapted 3D representations and interactions with simulations results in the context of urban public participatory consultations (More about this project, Website of the PLU++ project) ;
  • SimPLU3D prototype to ease building permits instruction : this prototype was developed to show how the SimPLU3D rule checker can ease building permit instruction by automatically checking urban regulation (Website of the prototype).
  • ArtiScales : is a coupling between SimPLU3D and Mup-CITY models to produce realistic residential development from the scale of a parcel to the scale of a whole region. This work is realized in the context of Maxime Colomb PHD thesis. (ArtiScales project) ;
  • DECODURBA is a proposition based on SimPLU3D to assist citizens in the construction of individual house. It receives a price during the Hackhurba hackhathon organised by the French Ministery for the Ecological and Inclusive Transition (Hackhathon website).

Installation et première simulation

Installation and first simulation

Installation

Les bibliothèques de SimPLU3D sont codées en Java (la version 8 de la JDK est requise) et construites avec Maven. Elles sont régulièrement déployées sur le serveur Maven de l'IGN (https://forge-cogit.ign.fr/nexus/#welcome). L'installation s'effectue simplement en créant un projet qui pointe vers les dépendances de SimPLU3D :

    • Ajout de la dépendance à SimPLU3D dans le pom.xml dans les balises dependencies en vérifiant la version actuelle de SimPLU3D.
  • SimPLU3D libraries are written in JAVA (JDK 8 or higher is required) and built with Maven. They are regularly deployed on IGN Maven repository (https://forge-cogit.ign.fr/nexus/#welcome). The install of SimPLU3D only requires to add the dependency and the repository to a Java project :

    • Add SimPLU3D dependency to your pom.xml file between the dependencies tags and check the current SimPLU3D version.
  • <dependency>
                <groupId>fr.ign.cogit</groupId>
                <artifactId>simplu3d</artifactId>
                <version>1.2-SNAPSHOT</version>
              </dependency>
              
    • Ajouter les dépôts sur lesquels est déployé SimPLU3D et les bibliothèques dans le pom.xml dans les balises repositories
      Add the IGN maven repository into the pom.xml file between repositories tags
  • <repository>
                <id>ign-snapshots</id>
                <name>Cogit Snapshots Repository</name>
                <url>https://forge-cogit.ign.fr/nexus/content/repositories/snapshots/</url>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
                <releases>
                  <enabled>false</enabled>
                </releases>
              </repository>
              <repository>
                <id>ign-releases</id>
                <name>Cogit Releases Repository</name>
                <url>https://forge-cogit.ign.fr/nexus/content/repositories/releases/</url>
                <snapshots>
                  <enabled>false</enabled>
                </snapshots>
                <releases>
                  <enabled>true</enabled>
                </releases>
              </repository>
              

    #f03c15 Attention: il se peut que la compilation du projet ne se fasse pas à cause de problèmes liées à la vérification du certificat ssh de la forge IGN. Pour cela deux solutions :

    #f03c15 Warning: the compilation may fail due to issues related to the validation of ssh certificate IGN server. To fix this, two solutions are possible :

    Première simulation

    First simulation

    Pour lancer une première simulation déjà prête à l'emploi, il suffit d'exécuter le code ci-dessous provenant de la classe BasicSimulator en clonant le projet SimPLU3D-tutorial qui contient des exemples de code.

    Running a first ready-to-use simulation only requires to execute the following code available in the BasicSimulator class by cloning the SimPLU3D-tutorial project. It also contains some other English-commented code samples.

    Afin d'exécuter ce code, vous pouvez utiliser votre environnement de développement habituel ou simplement la ligne de commande suivante : mvn exec:java -Dexec.mainClass=fr.ign.simplu3d.firstSimulation.BasicSimulator

    In order to execute this code, you can either use your usual development environment or use the following command line: mvn exec:java -Dexec.mainClass=fr.ign.simplu3d.firstSimulation.BasicSimulator

              public static void main(String[] args) throws Exception {
                //Step 0 ; Defining an output existing folder
                String outputFolder = "/tmp/";
                // Step 1 : Creating the geographic environnement using the repository that contains the data
                // Load default environment (data are in resource directory)
                Environnement env = LoaderSHP.loadNoDTM(
                new File(BasicSimulator.class.getClassLoader().getResource("firstSimulation/data/").getPath()));
                // Select a parcel on which generation is proceeded
                BasicPropertyUnit bPU = env.getBpU().get(2);
                //Step 2 : Defining the regulation that will be applied during the simulation
                // Rules parameters.8
                // Distance to road
                double distReculVoirie = 2;
                // Distance to bottom of the parcel
                double distReculFond = 3;
                // Distance to lateral parcel limits
                double distReculLat = 4;
                // Distance between two buildings of a parcel
                double distanceInterBati = 0;
                // Maximal ratio built area
                double maximalCES = 0.5;
                //Instanciation of a predicate class
                SamplePredicate<Cuboid, GraphConfiguration<Cuboid>, BirthDeathModification<Cuboid>> pred = new
            SamplePredicate<>(bPU, distReculVoirie, distReculFond, distReculLat, distanceInterBati, maximalCES);
                //Step 3 : Defining the regulation that will be applied during the simulation
                // Instantiation of the sampler
            OptimisedBuildingsCuboidFinalDirectRejection oCB = new OptimisedBuildingsCuboidFinalDirectRejection();
                // Loading the parameters for the building shape generation
                String folderName = BasicSimulator.class.getClassLoader().getResource("firstSimulation/scenario/").getPath();
                String fileName = "params.json";
                SimpluParameters p = new SimpluParametersJSON(new File(folderName + fileName));
                // Run of the optimisation on a parcel with the predicate
                GraphConfiguration<Cuboid> cc = oCB.process(bPU, p, env, 1, pred);
                //4 - Writting the output
                SaveGeneratedObjects.saveShapefile(outputFolder + "out.shp", cc, bPU.getId(), 0);
              }
              
            

    Documentation

    Documentation du code

    Code documentation

    Une documentation a été mise en ligne (https://simplu3d.github.io/simplu3D-tutorial) pour comprendre comment utiliser SimPLU3D. Cette documentation s'accompagne d'une série de codes (déposés sur le dépôt GitHub SimPLU3D-tutorial) commentés qui illustrent différentes possibilités de personnalisation de l'approche.

    A French tutorial is available online (https://simplu3d.github.io/simplu3D-tutorial), it explains how to use SimPLU3D. This documentation is illustrated by English-commented codes (hosted on SimPLU3D-tutorial GitHub project). They illustrate the different possibilities to customize the approach.

    Publications

    Quelques publications permettent de présenter les différents aspects de l'approche :

    • L'ensemble de la conception de SimPLU3D est décrit dans la thèse de Mickaël Brasebin : Brasebin, M., Apr. 2014. Les données géographiques 3D pour simuler l'impact de la réglementation urbaine sur la morphologie du bâti. Ph.D. thesis, Université Paris-Est (Mémoire, Présentation)
    • Le modèle de l'environnement géographique : Brasebin, M., J. Perret, S. Mustière and C. Weber (2016) A Generic Model to Exploit Urban Regulation Knowledge, ISPRS International Journal of Geo-Information, vol. 5, n. 2, pp. 14, doi:10.3390/ijgi5020014 (Article)
    • La génération de formes bâties : Brasebin M., Perret, J., Mustière S., Weber C. (2017) 3D urban data to assess local urban regulation influence, Computers, Environment and Urban Systems, 2017, ISSN 0198-9715, https://doi.org/10.1016/j.compenvurbsys.2017.10.002 (Article)
    • Les cas d'usage autour du couplage entre SimPLU3D et OpenMOLE : Brasebin, M., P. Chapron, G. Chérel, M. Leclaire, I. Lokhat, J. Perret and R. Reuillon (2017), Apports des méthodes d’exploration et de distribution appliquées à la simulation des droits à bâtir, Actes du Colloque International de Géomatique et d'Analyse Spatiale (SAGEO 2017). (Article, Présentation)
    • Le recuit simulé et la librjmcmc (https://github.com/IGNF/librjmcmc4j) : Brédif, M., Tournaire, O., Aug. 2012. librjmcmc: An open-source generic c++ library for stochastic optimization. In: The XXII Congress of the International Society of Photogrammetry and Remote Sensing (Article).

    Different publications present the SimPLU3D model :

    • The design of SimPLU3D is presented in Mickaël Brasebin PHD thesis (in French): Brasebin, M., Apr. 2014. Les données géographiques 3D pour simuler l'impact de la réglementation urbaine sur la morphologie du bâti. Ph.D. thesis, Université Paris-Est (Dissertation, Presentation)
    • The geographic model is presented in an article : Brasebin, M., J. Perret, S. Mustière and C. Weber (2016) A Generic Model to Exploit Urban Regulation Knowledge, ISPRS International Journal of Geo-Information, vol. 5, n. 2, pp. 14, doi:10.3390/ijgi5020014 (Article)
    • The generation of built configurations is described in: Brasebin M., Perret, J., Mustière S., Weber C. (2017) 3D urban data to assess local urban regulation influence, Computers, Environment and Urban Systems, 2017, ISSN 0198-9715, https://doi.org/10.1016/j.compenvurbsys.2017.10.002 (Article)
    • Simulated annealing optimization method in librjmcmc library (https://github.com/IGNF/librjmcmc4j) used in SimPLU3D are published in : Brédif, M., Tournaire, O., Aug. 2012. librjmcmc: An open-source generic c++ library for stochastic optimization. In: The XXII Congress of the International Society of Photogrammetry and Remote Sensing (Article).

    Contacts et conditions d'utilisation

    Contact us

    Vous pouvez contacter Julien Perret, Mickaël Brasebin ou Paul Chapron ({prénom.nom} (AT) {gmail} (POINT) {com}) pour discuter de l'utilisation de SimPLU3D. Pour signaler un bug n'hésitez pas à poster une issue sur le ou les projets concernés.

    Les bibliothèques de SimPLU3D sont en licence CeCILL et GPL-3. Si vous utilisez ces outils pour un article scientifique vous êtes priés de citer un des articles mentionnés dans cette page. De plus nous sommes preneurs de tout retour ou de toute contribution pour améliorer ces outils.

    You can contact Julien Perret, Mickaël Brasebin or Paul Chapron ({surname.name} (AT) {gmail} (POINT) {com}) to discuss about the use of SimPLU3D. To signal a bug, do not hesitate to open an issue in the concerned project.

    This software is free to use under CeCILL license. However, if you use this library in a research paper, you are kindly requested to acknowledge the use of this software. Furthermore, we are interested in every feedbacks about this library if you find it useful, if you want to contribute or if you have some suggestions to improve it.

    Gallerie

    Gallery

    Remerciement

    Acknowledgement

    Contributeurs

    Contributors

    Financeurs

    Fundings

    SimPLU3D est un projet développé par des chercheurs et ingénieurs du laboratoire LASTIG et financé majoritairement par l'Institut National de l'Information Géographique et Forestière. Le projet a également été financé par le fond FUI du projet TerraMagna et la région Ile-de-France à travers le projet FEDER e-PLU.

    SimPLU3D project is développed by researchers and engineers from LASTIG laboratory and funded by the National Institute of Geographic and Forest Information. The project was also funded by the TerraMagna FUI project and by the Ile-de-France Region through the e-PLU FEDER project.