Files
RFP_Infinity-Vis/Infinity_Vis_1/README.md

73 lines
2.3 KiB
Markdown

# 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
```