2.3 KiB
2.3 KiB
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.mdCurrent feature surface collected from the existing application.ARCHITECTURE.mdThe new runtime design and the main performance goals.MIGRATION_STATUS.mdHonest 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:
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
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:
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
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
python -m unittest discover Infinity_Vis_1/tests