Material Analyzer Development Specification v2 Version: 2.0 Status: Development Depends on: Material Analyzer Phase 1 1. Objective The goal of Version 2 is not to introduce new downstream features such as Material QA or Texture Generation. Instead, Version 2 focuses on upgrading the Material Analyzer into a production-grade offline analysis engine. After completion, every flooring SKU should have a complete, stable, reproducible Material Asset that can serve as the Ground Truth across all future AI models. 2. Replace Placeholder Models Current implementation uses deterministic placeholder vectors. Replace them with real vision models. 2.1 DINOv2 Purpose Extract texture-level visual embeddings. Recommended model facebook/dinov2-large Output 1024-dim float32 vector Store embedding.bin Metadata { "model":"dinov2-large", "dimension":1024, "normalize":true } Applications Texture similarity Material similarity Drift detection SKU retrieval 2.2 CLIP Purpose Extract semantic visual embeddings. Recommended ViT-L/14 Output 768-dim float32 vector Applications Semantic similarity Recommendation Search 3. Vision LLM Semantic Analyzer Replace rule-based semantic generation. Recommended models Priority Gemini 3 Pro Image GPT-4o Vision Claude Vision Input Texture Image Output Schema { "description":"", "material_type":"", "surface_finish":"", "grain_type":"", "color_family":"", "visual_style":"", "variation":"", "gloss_level":"", "tags":[] } Important LLM output should always be validated against JSON Schema. Missing fields should be regenerated. 4. Feature Versioning Every generated Material Asset must contain version information. Example { "analyzer_version":"2.0.0", "feature_schema":"2026.07", "generated_at":"ISO8601", "generator":"Material Analyzer" } Future schema changes must remain backward compatible. 5. Feature Validation After extraction, automatically validate all features. Example checks Brightness ∈ [0,1] Contrast ∈ [0,1] Histogram length == 256 Embedding dimension == expected Orientation ∈ [0,180] Entropy > 0 Invalid assets should be regenerated. 6. Material Confidence Every inferred feature should include a confidence score. Example { "stone_type":"Travertine", "confidence":0.91 } This enables future QA weighting. 7. Canonical Material Statistics Generate global statistics for every SKU. Examples Mean RGB Median RGB Color Variance Texture Variance Brightness Distribution Dominant Orientation Gradient Histogram These statistics are independent of LLM output. 8. Asset Manifest Every asset folder should contain manifest.json Example { "sku":"67907_847", "files":[ "preview.jpg", "thumbnail.jpg", "material.json", "embedding.bin", "histogram.json" ], "status":"complete" } This simplifies integrity checking. 9. Batch Processing Improve offline processing. Support Incremental Update Resume Retry Multi-thread Progress Bar Logging Failure Report Target 3500+ SKU One-click processing Resume after interruption 10. Analyzer Benchmark Generate benchmark reports after every batch. Example Total SKU Processed Skipped Failed Average Time Model Version Feature Version Image Resolution Distribution Output benchmark.json 11. Plugin Architecture Future feature extractors should be pluggable. Directory analyzers/ color/ texture/ semantic/ embedding/ adapters/ plugins/ Every extractor should implement Analyze(image) -> Feature No module should depend directly on another module. 12. Future Compatibility Analyzer output must remain stable for Material QA Canonical Texture Generator Tile Detection Pattern Detection Similarity Search AI Prompt Builder Product Recommendation Do not tightly couple Analyzer with any downstream module. 13. Development Priority Phase 1 (Completed) Universal Features Texture Features Rule-based Semantic Placeholder Embedding Phase 2 (Current) DINOv2 CLIP Vision LLM Versioning Validation Confidence Manifest Phase 3 Canonical Texture Generator Tile Detection Image Quilting Pattern Detector Phase 4 Material QA Drift Detection Auto Retry