Giter Club home page Giter Club logo

dkjfkj's Introduction

Experiments around optimizer

Objectives

  • Represent an apartment blueprint by a polygon mesh using the half-edge data structure
  • Generate smart mesh grids. A meaningful grid of the apartment should be able to represent as much viable partition of the apartment as possible.
  • Generate walls and space partition of the apartment, according to grid, user specifications, and architectural quality via a genetic algorithm.

Code guidelines

  • we use the typing library to enable type checking and pycharm magic
  • we enforce pep8
  • we aim for a pylint note > 9
  • we use 100 characters column width (not 120 nor 80)

Requirements

We aim to use as few external libraries as possible. The project currently requires only Numpy, Shapely and Matplotlib. We use Pytest for testing and Pylint for linting.

TODO

  • correct snapping and cutting methods to prevent the creation of half-edge with the same starting and ending vertex
  • change the way the enclosed face are connected (used orthogonal projection on closest edge)
  • check failing floor plan : Noisy_A145, Antony_B14 (hard fails), Bussy_Regis, Massy_C102 (soft fails)
  • add load bearing walls import (note some plan fail due to improper geometry : duct overlapping load bearing wall)
  • create grid generator
  • add way more unit tests (work in progress)
  • add matplotlib live visualization with pytest debugging
  • create a parallel cut (slice), useful for non rectilinear apartment
  • add space generation from seed growth (the idea is to generate space by growing them from a seed point)
  • create space mutations : one face, whole border, whole perimeter etc.~
  • create space cost functions
  • create a crossover function enabling to mix two blueprints for the same apartment
  • create a repair function : that will insure correct apartment circulation
  • create genetic algorithm framework : population generation, random crossovers, random mutations, repair population, cost function evaluation, selection of new generation
  • replace sanity checks that raise ValueError exception with assertions

dkjfkj's People

Contributors

nicolaspozin avatar graziellal avatar xgeffrier avatar dollab avatar fclairamb avatar fcote avatar dependabot-preview[bot] avatar

Watchers

Shrijeet Gaikwad avatar

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.