No description
Find a file
2026-08-08 21:57:36 +02:00
.opencode chore(opencode): refine agent workflow and providers 2026-08-08 09:56:45 +02:00
docs test: harden precision feature consolidation 2026-08-08 19:50:38 +02:00
include/lardon3d feat: finalize visual index v1 2026-08-08 14:13:47 +02:00
scan3d feat: add persistent project storage 2026-08-06 17:41:42 +02:00
src feat: finalize visual index v1 2026-08-08 14:13:47 +02:00
tests test: harden feature file robustness 2026-08-08 21:57:36 +02:00
.gitignore first commit 2026-08-06 13:26:19 +02:00
AGENTS.md feat(project): resume recoverable tasks on project open 2026-08-08 11:57:28 +02:00
meson.build test: harden precision feature consolidation 2026-08-08 19:50:38 +02:00
README.md feat: finalize visual index v1 2026-08-08 14:13:47 +02:00

Lardon3D

Moteur de reconstruction géométrique persistante et incrémentale, piloté par une TUI ncursesw.

Vision

Lardon3D est un moteur de photogrammétrie Linux qui privilégie :

  • Stabilité : aucune saturation du système hôte
  • Déterminisme : résultats reproductibles et traçables
  • Faible consommation mémoire : traitement par lots adaptatifs
  • Reprise après interruption : résultats atomiques et persistants
  • Protection de la machine : budgets bornés et respectueux
  • Traçabilité : historique des opérations et métriques
  • Enrichissement progressif : reconstruction incrémentale

Lardon3D ne vise pas simplement "dossier de photos → objet 3D", mais "ensemble progressif d'observations et de contraintes → reconstruction géométrique persistante, enrichissable et versionnable".

État actuel

Briques implémentées (IMPLEMENTED)

  • Project : cycle de vie persistant, identité stable et Project Database ouverte
  • Import : premier task kind de production, exécuté par la file générique en lots bornés et reprenables
  • ScanSet / Image Catalog v1 : acquisitions, images logiques, provenance et assets SHA-256 persistants et paginés
  • Feature Store v1 : extraction ORB réelle, assets binaires versionnés et lecture bornée
  • Image View : vues triées et filtrées pour la TUI
  • Task : moteur de tâches avec pause/reprise, annulation et séquences
  • Task Checkpoint v1 : snapshot durable, fichier atomique et reprise sûre
  • Project Database v6 : tâches, catalogue, Feature Store et Visual Index segmenté
  • Task Kind Registry : identité métier durable et reconstruction runtime explicite
  • Recovery projet : reprise automatique sélective et bornée des imports récupérables
  • Task Queue : file FIFO avec sélection adaptative et backpressure
  • Hardware Profile : détection des capacités matérielles
  • Resource Snapshot : capture instantanée des ressources
  • Resource Governor : arbitrage centralisé des budgets et réservations

Briques en cours de consolidation

  • Intégration scheduler ↔ governor avec séquences adaptatives
  • Documentation architecture
  • Visual Index v1 : LSH ORB persistant, incrémental et validé, avec recherche top-K bornée

Briques prévues (PLANNED)

  • Graphe de dépendances pour ordonner les futures reprises interdépendantes
  • DAG de dépendances
  • Pools de workers multiples (CPU/GPU/IO)
  • Publication live validée
  • Viewer intégré

Architecture

TUI / Projet
    ↓
Scheduler
    ↓
Resource Governor
    ↓
Workers
    ↓
Résultats atomiques / persistants
    ↓
Viewer (consommation passive de snapshots)

Invariants fondamentaux

  • Aucun callback de tâche sans réservation active validée
  • Le scheduler ne décide jamais des ressources
  • Le Resource Governor est l'unique propriétaire des budgets
  • ncurses appartient exclusivement au thread principal
  • Les estimations de ressources sont immuables
  • Les buffers et files sont strictement bornés

Pipeline cible

Acquisitions
→ catalogue
→ features
→ index visuel
→ paires candidates
→ matching
→ vérification géométrique
→ tracks / SfM
→ dense
→ mesh
→ consolidation
→ export

Documentation

Architecture

Concepts

Développement

Roadmap

Build rapide

CC=clang meson setup build --wipe
meson compile -C build -j8

Tests

meson test -C build --print-errorlogs
git diff --check

Pour les changements sensibles à la mémoire ou à la concurrence, ajouter ASan/UBSan et TSan.

Statut

Lardon3D est en développement actif. La phase de fondation est terminée. Les prochains tickets porteront sur la persistance, le DAG, les pools de workers et la publication live.

Licence

Projet privé - Tous droits réservés.