Files
RFP_Infinity-Vis/Infinity_Vis_1/README.md

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.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:

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