# Build build/ build-*/ cmake-build-*/ CMakeCache.txt CMakeFiles/ *.cmake Makefile install_manifest.txt compile_commands.json # Compiled objects *.o *.a *.so *.dylib *.json # Exception: small, curated result summaries backing specific numbers quoted # in docs/ (cross-model held-out scores, per-film training breakdown, gallery # coverage). Regenerate with scripts/docs/run_holdout_all_models.py and # scripts/docs/gallery_coverage_per_film.py. !docs_data/*.json # Exception: test fixtures are inputs, not build output. The audio golden # vector (IR-005) is shared verbatim with the jRay plugin repo, so it has to be # tracked. Regenerate the media with tests/fixtures/audio/make_fixture.py. !tests/fixtures/** # Video files *.mp4 *.mkv *.avi *.mov # ONNX models in models/ are tracked via Git LFS (see .gitattributes). # Any stray ONNX elsewhere is generated/downloaded and not tracked. external/*.onnx # Generated TensorRT engines (rebuilt by ORT / scripts/build_trt_engines.sh) trt_cache/ # ORT pre-optimized model cache (generated on first run, provider-specific) ort_cache/ # Gallery files (generated — HDF5 only, see src/gallery/gallery_store.cpp). # Legacy JSON galleries from before that switch are also excluded. gallery.json gallery_*.json gallery.h5 gallery_*.h5 # Calibration cache (generated alongside a gallery, per-embedder) *.calib_cache.csv *.calib_cache.png # Cameo detection run outputs (generated by scripts/cameo_*.py) cameo_progress.txt cameo_report.txt # Analysis plot outputs (scene-gap histograms / KDEs, etc.) scene_gap_*.png # Per-frame debug images images/ # Annotations output annotations.json *_annotations.json # MovieNet evaluation data movienet-ps/ # Eval probe images (data, regenerable) eval/probe/ # Local reference repos kept for inspiration (each has its own .git) inspiration/ # experiments/ has its own nested .gitignore for HDF5 galleries/dumps/X-Ray # corpus (all pushed/pulled via scripts/artifacts/{push,pull}_artifacts.sh to # the Gitea generic package registry instead of committed). # Exception to the blanket *.json rule above: the committed placeholder for # experiments/file-lut.json (see experiments/.gitignore). !experiments/file-lut.template.json # Site build output (mkdocs build). Rendered site is deployed to a # gitea-pages branch, never committed to a working branch. site/ docs_site/ # Images staged into docs/ from the artifact registry at build time # (scripts/docs/build_site.sh) — not committed, pulled fresh on each build. # Exception: pipeline_topology.svg is small and hand-authored (not pulled from # anywhere) and the README references it directly, so it needs to render on a # plain Gitea repo view too, not just the built Pages site. (A directory-level # ignore can't be un-ignored file-by-file below it, so this must NOT blanket- # ignore docs/assets/ itself — only its contents, minus the one exception.) docs/assets/images/* !docs/assets/images/pipeline_topology.svg # These frames are referenced directly by README.md, which renders on the # plain Gitea repo view — committed for the same reason as the SVG above. !docs/assets/images/lovelace_perfect_second.jpg !docs/assets/images/valerian_screen_call.jpg # Python __pycache__/ *.pyc *.pyo .venv/ venv/ # Local secrets (API keys — never commit) .env # Editor / OS .vscode/ .idea/ .claude/settings.local.json *.swp *.swo .DS_Store Thumbs.db