73 lines
2.3 KiB
Markdown
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
|
|
```
|