# Infinity_Vis_1 Fresh restart of Infinity Vis with a smaller runtime surface and a lower-allocation render path. This directory is intentionally separate from the legacy `app/` implementation. The goal is to keep the old tool usable while rebuilding the next version on a clean architecture. ## What is in here - `FEATURE_INVENTORY.md` Current feature surface collected from the existing application. - `ARCHITECTURE.md` The new runtime design and the main performance goals. - `MIGRATION_STATUS.md` Honest parity tracking between the legacy app and the clean rebuild. - `infinity_vis_1/` New core package with mapping I/O, patterns, fast renderer, presets, and DDP output. - `tests/` Basic verification for the new mapping and renderer core. ## Current focus Phase 1 is the performance-oriented core, not the full Qt feature-parity UI yet. That means this new codebase already covers: - loading and saving the existing XML mapping format - controller grouping for shared-IP multi-tile nodes - pattern rendering with a low-allocation tile-color pipeline - separate output and preview timing via a new runtime engine - direct DDP payload generation - delta sending with keepalive support for unchanged controller frames - preset persistence - benchmark tooling ## Run the benchmark From the repo root: ```powershell python -m Infinity_Vis_1.infinity_vis_1.benchmark --frames 600 python -m Infinity_Vis_1.infinity_vis_1.benchmark --mode engine --frames 600 --pattern solid ``` ## Start the live DDP sender ```powershell python -m Infinity_Vis_1.infinity_vis_1.live --mapping sample_data\infinity_mirror_mapping_clean.xml --pattern solid --fps 40 ``` Example for a harder live test: ```powershell python -m Infinity_Vis_1.infinity_vis_1.live --mapping sample_data\infinity_mirror_mapping_clean.xml --pattern strobe --fps 40 --strobe-mode global --no-delta ``` ## Use the runtime core ```python from Infinity_Vis_1.infinity_vis_1 import OutputSettings, RealtimeEngine, SceneState, load_mapping mapping = load_mapping("sample_data/infinity_mirror_mapping_clean.xml") engine = RealtimeEngine(mapping, scene=SceneState(), settings=OutputSettings(output_fps=40, preview_fps=12)) result = engine.tick() ``` ## Run the new tests ```powershell python -m unittest discover Infinity_Vis_1/tests ```