initial deployment v1.0

This commit is contained in:
RaineAllDay
2026-03-18 03:06:27 -06:00
commit eaaadd39e4
69 changed files with 10755 additions and 0 deletions

124
README.md Normal file
View File

@@ -0,0 +1,124 @@
# ETC PRS Viewer & Editor (Web-Based)
A modern, web-based viewer and editor for ETC Expression .prs personality files.
This tool allows you to inspect, modify, and export fixture personalities using an intuitive UI with support for 16-bit channel pairing, drag-and-drop reordering, and local file history.
# 🚀 Application Functionality
## Core Features
- Open & View PRS Files
- Load .prs files directly from your system
- Clean visual layout with card or table views
- Accurate parsing based on reverse-engineered binary structure
- Edit Personalities
- Modify channel attributes, flags, and home values
- Support for:
- Independent
- LTP
- 16-bit
- Flipped
- 16-bit channels are represented as a single unified card
- 16-bit Channel Handling
- Proper pairing based on actual binary flags (no heuristics)
- Editing applies correctly across paired channels
- Home/display values follow ETCs storage behavior (stored in second channel)
- Drag-and-Drop Reordering
- Reorder channels using a dedicated drag handle
- 16-bit pairs move together as a single unit
- Prevents accidental dragging while editing inputs
- Export PRS Files
- Export valid .prs files from both:
- Viewer page
- Editor page
- Output matches ETC Personality Editor structure
## UI Features
- Global Menu Bar
- Open PRS File (auto-load on selection)
- Create New PRS File
- Previously Opened Files
- Snapshot Versions
- Secondary Control Bar (Contextual)
- Viewer:
- Switch to Editor
- Toggle Card/Table view
- Export PRS
- Editor:
- Add Channel
- Save Snapshot
- Export PRS
- Exit Editor
- Toggle Card/Table view
- View Modes
- Card-based layout for intuitive editing
- Table view for compact overview
## Data Persistence
Uses browser localStorage for:
Recently opened files
- Snapshot history
- No backend required
# 🛠️ How to Run the Program
Requirements:
- Node.js (v18+ recommended)
- npm
## Setup
### Install dependencies
```sh
npm install
```
### Run Development Server
```sh
npm run dev
```
Then open your browser to:
http://localhost:5173
## Build for Production
```sh
npm run build
npm run preview
```
## ⚠️ Ethical Disclosure
This project includes the use of AI-assisted development and reverse engineering techniques.
## AI Usage
Portions of this application—including:
- UI implementation
- Data handling logic
- Iterative refinement of features
were developed with the assistance of an AI system (ChatGPT).
All outputs were reviewed, tested, and refined by a human developer before inclusion.
## Reverse Engineering
The .prs file format used by ETC Expression lighting consoles is not publicly documented in full detail.
To support this application:
- The file format was analyzed through:
- Inspection of real .prs files
- Behavioral comparison with ETCs Personality Editor
- Static analysis of the Personality Editor executable
- No proprietary source code was accessed or used.
- The reverse engineering was limited to understanding file structure for interoperability.
## Intent
This project is intended for:
- Educational purposes
- Interoperability and tooling
- Supporting legacy systems
It is not affiliated with or endorsed by ETC (Electronic Theatre Controls).
# 📌 Notes
- All file handling is local to your machine/browser
- No data is transmitted externally
- The application is designed to faithfully replicate ETC behavior where possible