Projects Hub
npm run dev
Tous les projets
Maintenu Recherche

BikeOptim

Moteur autonome (hors Revit, CPython) de génération et d'optimisation d'implantations de stationnement vélo dans des pièces réelles, conforme au Décret n° 20...

Projet maintenu (dernière activité il y a 92 jours)

Démarrer

  • Dépendances (le socle de calcul reste stdlib pur ; extras pour geo/viz/exact)

    $ pip install -e .[geo,viz,solve]
  • Toute la suite de tests (53 tests, M1→M5)

    $ python -m unittest discover -s tests -v
  • Bancs de démonstration par jalon

    $ python scripts/bench_m2.py
  • exact vs glouton + contrôles

    $ python scripts/bench_m3.py
  • accessibilité + mutualisation 3 portes

    $ python scripts/bench_m4.py
  • gains NSGA-II + rendus Pareto / top-N

    $ python scripts/bench_m5.py
  • Référence : rejouer le moteur legacy validé (golden numbers)

    $ python legacy/bench/bench_layout.py

Documentation

BikeOptim

Moteur autonome (hors Revit, CPython) de génération et d'optimisation d'implantations de stationnement vélo dans des pièces réelles, conforme au Décret n° 2022-930 et à l'Arrêté du 30 juin 2022.

Successeur du moteur BikeEngine (pyRevit / IronPython, gelé dans legacy/), avec une ambition supérieure : un pipeline d'optimisation à l'échelle du papier HABX (Floor plan generation through a mixed constraint programming-genetic optimization approach, Laignel et al., Automation in Construction 123, 2021) — programmation par contraintes pour la structure, algorithme génétique multi-objectif (NSGA-II) pour le raffinement, top-N de variantes diverses.

Statut

M1 → M5 réalisés (voir docs/ROADMAP.md) :

  • M1 — modèle de pièce (shapely) + visualisation PNG.
  • M2 — parité legacy : constructeur glouton porté en CPython/mètres, golden numbers reproduits à l'identique.
  • M3 — packing exact par zone (sélection des bandes par DP maison / CP-SAT).
  • M4 — circulation réseau de premier rang : mutualisation multi-portes + accessibilité garantie de chaque rack.
  • M5NSGA-II sur le génome structurel : front de Pareto, top-N variantes diverses, gains stricts vérifiés (ex. 46 resserré 14 → 28 vélos accessibles).

Reste M6 (extensions : épi 45°, double étage, multi-pièces, rapport, CLI).

📖 Nouveau venu ? Lire docs/GUIDE.md — guide pédagogique complet (concepts, mathématiques, chronologie algorithmique, mode d'emploi).

Démarrage rapide

# Dépendances (le socle de calcul reste stdlib pur ; extras pour geo/viz/exact)
pip install -e .[geo,viz,solve]

# Toute la suite de tests (53 tests, M1→M5)
python -m unittest discover -s tests -v

# Bancs de démonstration par jalon
python scripts/bench_m2.py   # parité golden numbers
python scripts/bench_m3.py   # exact vs glouton + contrôles
python scripts/bench_m4.py   # accessibilité + mutualisation 3 portes
python scripts/bench_m5.py   # gains NSGA-II + rendus Pareto / top-N

# Référence : rejouer le moteur legacy validé (golden numbers)
python legacy/bench/bench_layout.py

Carte du dépôt

Chemin Contenu
docs/GUIDE.md Guide pédagogique : concepts, mathématiques, chronologie, mode d'emploi
docs/HANDOFF.md Handoff exhaustif du moteur legacy : algorithmes, leçons, bugs corrigés, résultats
docs/ARCHITECTURE.md Conception du moteur cible (CP + NSGA-II)
docs/ROADMAP.md Jalons M1→M6 avec critères d'acceptation
docs/ETAT_DE_LART.md Pipeline HABX détaillé + outillage état de l'art
docs/REGLEMENTATION.md Cotes et règles du Décret 2022-930 / Arrêté 30/06/2022
docs/FORMAT_DONNEES.md Schéma JSON des pièces + grammaire du dump Revit
data/rooms/ 4 pièces réelles de référence (22, 46, 47, 48)
legacy/ Copie gelée du moteur pyRevit validé + banc de test (référence)
src/bikeoptim/ Le moteur : io · core · catalog · solve · circulation · optimize · viz
scripts/ Bancs de démonstration (bench_m2…m5) et rendus
tests/ Tests unitaires (53, M1→M5)

Principes

  • Unités : mètres partout dans le moteur (conversion 1 ft = 0,3048 m à l'import).
  • Jamais pire : toute évolution doit égaler ou battre les golden numbers du banc legacy.
  • Déterminisme : tout aléa passe par un RNG seedé.
  • Validité par construction : non-chevauchement, connectivité des accès (1,20 m), conformité réglementaire vérifiables sur chaque résultat.

Auteur

Loukas Delevaux (ANMA) — assisté par Claude Code.