Skip to content

Repository files navigation

RenderPOC

Banc d'essai de reconstruction 3D d'objet. Une vidéo d'orbite entre, un maillage et un fichier de métriques sortent.

L'objectif n'est pas de livrer un reconstructeur, mais de comparer objectivement plusieurs approches sur la même entrée, et de savoir laquelle se rapproche le plus de la géométrie réelle.

                     VIDEO
                       │
                       ▼
             extraction keyframes
              nets et non flous
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
   sparse 8-16     dense 30-100     holdout
        │              │              │
        ▼              ▼              │
 ReconViaGen v0.5   DA3 /             │
 ou Mix3R V2        MapAnything       │
   (cloud)          (local 8 Go)      │
        │              │              │
        │              ▼              │
        │      fusion TSDF -> mesh    │
        │              │              │
        └──────┬───────┘              │
               ▼                      │
        controle / fusion ◄───────────┘
               │            (vues jamais vues par les backends)
               ▼
        mesh final GLB + metrics.json

Démarrage

.\make.ps1 setup     # env racine — aucune dependance GPU
.\make.ps1 check     # ruff + pytest — doit passer sans GPU ni reseau
.\make.ps1 envs      # envs backends GPU (long : telecharge torch)

Pipeline complet :

uv run renderpoc checkerboard --out board.svg      # damier, a imprimer a 100 %
uv run renderpoc run data\piece.mp4 --backends da3,mapanything --square-size-mm 25
uv run renderpoc runs
.\make.ps1 gui

Sans GPU, la chaîne complète se vérifie avec le backend de référence :

uv run renderpoc run video.mp4 --backends fake

Le principe d'architecture

Les modèles visés (Depth Anything 3, MapAnything, ReconViaGen, Mix3R) ont des piles CUDA mutuellement incompatibles. Ils ne sont donc pas importés : chacun est un exécutable isolé dans son propre environnement uv, piloté par un contrat de fichiers JSON (docs/backend-contract.md).

Trois conséquences qui portent tout le projet :

  • l'environnement racine s'installe et se teste sans GPU, sans CUDA, sans poids ;
  • chaque étape est rejouable seule à partir des seuls fichiers sur disque ;
  • un backend trop lourd pour la machine locale s'exécute ailleurs sans changer une ligne du pipeline — ce qui est exactement le cas de la branche générative.

Où tourne le calcul

Le poste local (RTX 4070, 8 Go) filme, trie les images, fusionne, mesure et affiche. L'inférence part sur un GPU loué à l'heure : 48 Go se louent 0,44 $/h, et un banc complet — cinq backends sur la même vidéo — revient à environ 0,37 $.

Ce basculement n'a demandé aucun changement au pipeline : le contrat de fichiers avait été conçu pour ça. La carte se choisit au moment du run (renderpoc gpu), d'après la disponibilité réelle dans le datacenter du volume réseau — figer un modèle dans le registre serait faux dès le lendemain. Voir docs/remote-execution.md.

Mesurer la fidélité

Il n'y a pas de maillage de référence. La justesse géométrique s'établit par triangulation d'indices indépendants — échelle métrique par damier, vues held-out, accord entre backends, qualité du maillage. Voir docs/metrics.md, et docs/acquisition-protocol.md pour ce qu'il faut filmer.

Documentation

Document Contenu
AGENTS.md point d'entrée : commandes, contraintes globales, structure
docs/pipeline-explique.md vulgarisation : ce que fait chaque étape et pourquoi
docs/backend-contract.md le contrat d'échange — à lire avant de toucher un backend
docs/acquisition-protocol.md prise de vue à trois anneaux, damier, tutoriel pas à pas
docs/remote-execution.md louer un GPU, provisionner le volume, lancer un run distant
docs/compute-budget.md besoins VRAM mesurés, prix des cartes, licences, accès aux poids
docs/metrics.md définition et lecture de metrics.json
docs/features.md état d'avancement, avec commande de vérification par feature

Licences des poids

depth-anything/DA3-* et facebook/map-anything sont en CC-BY-NC-4.0 (non commercial). facebook/map-anything-apache (Apache-2.0) est le défaut du registre. Aucun dépôt de la pile n'est gated.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages