Giter Site home page Giter Site logo

Simplu3D

Build Status

A library to automatically general built configurations that respect urban regulations and optimize a utility function.

Introduction

This research library is developed as part of COGIT team researches concerning processing of urban regulation.

It provides an implementation of multi-dimensionnal simulated annealing algorithm to produce built configuration from a set of boxes constrained by urban regulation that optimizes a utility function.

The project is developed over 3D GIS Open-Source library GeOxygene concerning geometric operators and 3D visualization, librjmcmc4j for simulated annealing implementation and simplu3d-rules for geographical model and regulation management.

The official website is hosted on GitHub and the javadoc is deployed in the gh-pages branch of this project.

Conditions for use

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.

Library installation

The project is build with Maven and is coded in Java (JDK 1.8 or higher is required), it has been tested in most common OS. If you are not familiar with Maven, we suggest installing developer tools and versions as described in GeOxygene install guide.

Vidéo and illustration

Generating a building with n boxes

Generating n buildings with 1 box

Different generations with various parcels

Test class

fr.ign.cogit.simplu3d.exec.BasicSimulator class using predefined resource files is runnable. It generates a built composed by a set of intersecting boxes.

public static void main(String[] args) throws Exception {

	// Loading of configuration file that contains sampling space
	// information and simulated annealing configuration
	String folderName = BasicSimulator.class.getClassLoader().getResource("scenario/").getPath();
	String fileName = "building_parameters_project_expthese_3.json";
	SimpluParameters p = new SimpluParametersJSON(new File(folderName + fileName));

	// Load default environment with no DTM (data are in resource directory)
	Environnement env = LoaderSHP.loadNoDTM(new File(
			DemoEnvironmentProvider.class.getClassLoader().getResource("fr/ign/cogit/simplu3d/data/").getPath()));

	// Select a parcel on which generation is proceeded
	BasicPropertyUnit bPU = env.getBpU().get(0);

	// Instantiation of the sampler
	OptimisedBuildingsCuboidFinalDirectRejection oCB = new OptimisedBuildingsCuboidFinalDirectRejection();

	// Rules parameters.8
	// Distance to road
	double distReculVoirie = 2;
	// Distance to bottom of the parcel
	double distReculFond = 0;
	// 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;

	// Instantiation of the rule checker
	SamplePredicate<Cuboid, GraphConfiguration<Cuboid>, BirthDeathModification<Cuboid>> pred = new SamplePredicate<>(
			bPU, distReculVoirie, distReculFond, distReculLat, distanceInterBati, maximalCES);

	// Run of the optimisation on a parcel with the predicate
	GraphConfiguration<Cuboid> cc = oCB.process(bPU, p, env, 1, pred);
	// Writting the output
	SaveGeneratedObjects.saveShapefile(p.get("result").toString() + "out.shp", cc, bPU.getId(), 0);
}

Documentation and publications

For more information about this code, the generation process and the underlying models are described in the PhD of Mickael Brasebin (French document) :

Brasebin, M. (2014) Les données géographiques 3D pour simuler l'impact de la réglementation urbaine sur la morphologie du bâti, Thèse de doctorat, spécialité Sciences et Technologies de l'Information Géographique, Université Paris-Est, apr 2014

Contact for feedbacks

Mickaël Brasebin & Julien Perret COGIT Laboratory ({surname.name} (AT) {gmail} (POINT) {com})

Users and demo

Acknowledgments

  • This research is supported by the French National Mapping Agency (IGN)
  • It is partially funded by the FUI TerraMagna project and by Île-de-France Région in the context of e-PLU project
  • Mickaël Borne for improvements in the code and for refactoring
  • Imran Lokhat for tests and improvements about imrpoving the pipeline of simulation
  • ISC-PIF - Paul Chapron and Romain Reuillon for proposing methods dedicated to model exploration and simulation distribution

SimPLU3D's Projects

plu-formel icon plu-formel

Documentation des principes de règles dans SimPLU

simplu3d icon simplu3d

A library to generate buildings from local urban regulations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.