Exigences¶
MVP 0.1.0 — obligatoire¶
| ID | Fonction | Exigence |
|---|---|---|
| FR-01 | Bibliothèques | Ajouter un ou plusieurs dossiers via le dialogue de l'OS ; les sources ne sont jamais modifiées. |
| FR-02 | Indexation | Scan récursif asynchrone avec progression, annulation, reprise et erreurs par fichier. |
| FR-03 | Persistance | SQLite durable pour chemins, identités, tags, collections, index et état. |
| FR-04 | Navigation | Grille virtualisée, tri, sélection, tailles de miniatures, recherche simple. |
| FR-05 | Organisation | Tags, favoris, collections virtuelles, affectation multi-fichiers. |
| FR-06 | Recherche et filtres | Nom, extension, famille de média, dossier, tags, plages de taille/dimensions, disponibilité. |
| FR-07 | Images | Miniatures et aperçus PNG/JPEG/WebP/GIF ; dimensions, alpha, taille, format. |
| FR-08 | Audio | Aperçu WAV/MP3/FLAC/OGG si décodable ; durée et propriétés vérifiables. |
| FR-09 | Vidéo | MP4/WebM : métadonnées de base, lecture et miniature si le codec le permet ; repli clair sinon. |
| FR-10 | 3D interactive | GLB/glTF, OBJ et STL avec orbite, zoom, recentrage, fond et wireframe. |
| FR-11 | Inspection 3D | Triangles, sommets, maillages, matériaux, textures, animations avec méthodes explicites. |
| FR-12 | Ressources externes | Détecter les références explicites (URI glTF, OBJ/MTL) et signaler les manquantes. |
| FR-13 | Cycle de vie | Gérer fichiers supprimés, indisponibles, modifiés ou déplacés sans perte silencieuse d'annotations. |
| FR-14 | Fiabilité OS | Builds installables macOS, Windows, Linux ; clavier, zoom, pas de login. |
| FR-15 | Confidentialité et sécurité | Aucun réseau nécessaire, aucun fichier externe exécuté, accès limité aux dossiers choisis. |
| FR-16 | Métadonnées génériques | Tout fichier : nom, chemin, taille, extension, dates, état, ouverture externe. |
Souhaitable (non bloquant)¶
Recherches combinées avancées et sauvegardées · détection de doublons à la demande par empreinte forte, sans suppression automatique · miniatures vidéo indépendantes des codecs si redistribuables légalement · export JSON lisible du catalogue et sauvegarde/restauration contrôlée · aperçu complet des GIF animés et métadonnées couleur avancées.
Après le MVP¶
- Mini-studio image : recadrer, redimensionner, rotation, luminosité/contraste, conversion, export non destructif.
- Mini-studio audio : découpe, fondu, gain/normalisation, conversion, export séparé.
- Actions 3D simples : orientation, échelle, inspection UV/normales, conversions prises en charge, export dérivé.
- Relations d'assets : graphe de dépendances, références cassées, associations manuelles à un projet.
- Formats supplémentaires : FBX, BLEND, USD, STEP, PSD/EXR/HEIF — seulement après validation des parseurs, licences et stabilité.
- Intégrations créatives : « ouvrir dans », export vers Blender/Godot/Unreal via des connecteurs consentis.
- Automatisation : CLI, API locale, puis MCP et Skill optionnels, en lecture seule d'abord.
Hors périmètre pour l'instant¶
Synchronisation cloud, comptes utilisateur, collaboration multi-utilisateurs, marketplace, gestion commerciale de droits, montage vidéo complet, DAW, retopologie 3D, IA générative, OCR automatique, édition des sources par défaut, API Internet publique.
User stories clés¶
Ajouter une bibliothèque. Je choisis un dossier existant et vois mes assets sans les déplacer. Rien n'est créé, renommé ou modifié dans la source ; une erreur de permission ne bloque pas les autres fichiers ; ajouter deux fois la même racine est détecté.
Retrouver un asset. Je filtre mon catalogue et retrouve un fichier en quelques actions. La recherche ignore la casse et gère les accents ; les filtres actifs restent visibles et annulables ; le tri est stable après redémarrage ; « aucun asset » et « aucun résultat » sont deux états vides distincts.
Organiser sans toucher aux originaux. Un asset peut être dans plusieurs collections et porter plusieurs tags. Supprimer un tag ou une collection ne supprime jamais de fichier.
Inspecter un modèle 3D. Orbite, zoom et recentrage fonctionnent et l'interface reprend la main après un échec de chargement. Les triangles sont calculés quand la topologie le permet ; les valeurs ne s'affichent que si elles sont pertinentes, « indisponible » sinon, jamais un zéro inventé.
Survivre aux fichiers absents ou modifiés. Un dossier déconnecté est « indisponible », pas « vidé ». Les annotations reviennent quand une correspondance fiable est trouvée. Un déplacement ambigu ne fusionne jamais automatiquement les fiches.
Travailler sans fuite. Tout marche hors ligne ; aucun contenu ni métadonnée n'est envoyé ; catalogue et cache peuvent être localisés et supprimés.
Exigences non fonctionnelles¶
| ID | Exigence | Validation |
|---|---|---|
| NFR-01 | Une seule base de code UI pour 3 OS | Builds et tests natifs par cible |
| NFR-02 | Hors ligne par défaut | Exécution réseau bloqué ; inspection du trafic |
| NFR-03 | Réactivité | Interface interactive pendant scans et miniatures |
| NFR-04 | Résilience | Crash/réouverture, assets corrompus, disques débranchés, annulation |
| NFR-05 | Sécurité | IPC à privilèges minimaux, aucun script exécuté depuis un asset |
| NFR-06 | Accessibilité | Parcours clavier complets, contraste, focus, texte redimensionnable |
| NFR-07 | Compatibilité | Formats, codecs et limites documentés par plateforme |
| NFR-08 | Ouverture | Code public, doc de contribution, exports documentés |
| NFR-09 | Pas de fausses données | « Inconnu » ou « non calculable » faute de méthode fiable |
Objectifs de performance (à confirmer par benchmark)¶
Corpus de référence : 10 000 assets sur SSD local. Recherche p95 ≤ 300 ms ; aucun blocage ressenti au-delà de 200 ms pour les interactions usuelles sur données indexées. Temps d'indexation, mémoire et seuils 3D fixés après les benchmarks 0.0.x.
Mesurer le succès sans télémétrie¶
Tests supervisés avec au moins 8 testeurs externes de trois profils, ≥ 90 % de réussite sur les tâches critiques, 100 % des modèles 3D de référence corrects ou explicitement indisponibles, zéro original altéré, zéro accès réseau requis.