Installation

3 étapes, 2 minutes, zéro dépendance à installer.

1

Python ≥ 3.10

Vérifiez votre version :

$ python --version
Python 3.12.4 # ✓ OK si ≥ 3.10
2

Cloner le dépôt

$ git clone https://github.com/Lksdlvx/spatial-graph-classifier.git
$ cd spatial-graph-classifier
3

C'est tout !

Aucune dépendance à installer (pip install non nécessaire). Le projet n'utilise que la bibliothèque standard Python.

Pas de requirements.txt à installer, pas de virtualenv obligatoire, pas de GPU. Tout tourne sur CPU en quelques secondes.

Structure du projet

Où trouver quoi dans le dépôt.

📂 data/ — Les données d'entrée+
Contient les fichiers JSON de graphes spatiaux exportés depuis Revit.

spatial_graph_P1.json — Multi-projets (1 217 pièces labellisées)
spatial_graph_P2.json — Projet LD-CLL (362 pièces)
spatial_graph_P3.json à P5.json — Datasets supplémentaires

Ces fichiers sont en lecture seule. Ne les modifiez pas.
⚙️ src/ — Le code source+
blind_classifier.pyLe cœur : toutes les règles de classification (5 passes)
apartment_clustering_v2.py — Regroupe les pièces par appartement
export_viewer.py — Génère le viewer HTML interactif
_baseline.py — Lance le benchmark d'accuracy
rules/ — 8 modules de règles modularisés (géométrique, topologique…)
wl/ — Algorithme de hashing Weisfeiler-Lehman
🌐 output/ — Les résultats+
Contient les viewers HTML générés (~10 Mo chacun). Ce sont des fichiers autonomes que vous pouvez ouvrir dans n'importe quel navigateur.

Chaque viewer affiche :
• Le graphe interactif (vis.js) avec les pièces colorées
• Les polygones des pièces avec murs et séparateurs
• La trace step-by-step de chaque règle appliquée

Ce dossier est .gitignored (non versionné).
🚀 classify_launcher.py — L'interface web+
Un serveur web local (port 8500) qui offre une interface graphique pour :

1. Sélectionner un fichier JSON
2. Lancer la classification et voir l'accuracy
3. Générer et ouvrir le viewer HTML

C'est la méthode recommandée pour les débutants.

Utilisation

Deux façons de lancer le classifieur : interface web ou ligne de commande.

🖥️ Méthode 1 : Interface web (recommandé)

La manière la plus simple. Lance un serveur local avec une UI pour tout contrôler.

$ python classify_launcher.py

🔬 Spatial Graph Classifier — http://localhost:8500
# → Votre navigateur s'ouvre automatiquement

1. Cliquez sur un dataset (P1, P2…) ou collez le chemin d'un JSON
2. Cliquez « Lancer la classification » pour voir l'accuracy
3. Cliquez « Générer le Viewer HTML » pour la visualisation complète
4. Cliquez « Ouvrir le Viewer ↗ » pour explorer le résultat

⌨️ Méthode 2 : Ligne de commande

Pour les utilisateurs avancés ou l'automatisation.

Classification + Viewer interactif :

$ python src/export_viewer.py data/spatial_graph_P1.json

# → Génère output/spatial_graph_P1_viewer.html
# → Ouvrez ce fichier dans votre navigateur

Benchmark d'accuracy uniquement :

$ python src/_baseline.py

accuracy_P1: 99.4
accuracy_P2: 94.8
score: 97.56
⏱️
Temps d'exécution — La classification prend ~10-30 secondes. La génération du viewer (avec graphe + polygones + trace) prend ~30s à 2 min selon la taille du dataset.