QZOTICMUSIC — TACTICAL HOLODECK TEST

Open Qzotic-Holodeck-Test.html in your browser and press Start voyage.
Desktop animation needs no internet or installation.
Actual show: 120 minutes. Default quick test: 3 minutes (40×).
Extended test: 60 minutes (2×). Full runtime: 120 minutes (1×).
Arrival occurs at show minute 90: 2:15 in quick test, 45:00 in extended test.
Show overrun starts at show minute 120. It stays in orbit until Return to Earth.
Return is 10 show minutes: 15 seconds at 40×, 5 minutes at 2×, 10 minutes at 1×.
Return: cruise -> Earth approach -> reentry -> landing. It can be triggered early.
Pause stops the simulation clock and narration; live radio remains independent.
Restart resets the voyage; manually supplied track metadata remains selected.

Audio:
- Default track names are fictional demo metadata; no music is bundled.
- Enable Concierge voice for browser narration (voice varies by device).
- Open Audio, track information & test shortcuts to select prerecorded audio.
- Supply a licensed direct HTTPS radio stream to hear your show.
- Track metadata is manual unless an external player sends this JS event:
  window.dispatchEvent(new CustomEvent('qzotic-track-changed', {
    detail: {title: 'Track title', artist: 'Artist name'}
  }));
- No royalty calculation, legal exemption, reporting or payment is implemented.

Optional ElevenLabs:
Python 3 uses only standard-library modules. Configure ELEVENLABS_API_KEY and
ELEVENLABS_VOICE_ID locally. Do not paste keys into HTML, chat or public files.
Run python3 voice_engine.py. This uses an existing authorized voice, not a
voice-cloning endpoint. Synthesis can incur API charges. No API call was made
while preparing this prototype. Choose the generated files via the audio inputs.
Model can be changed using ELEVENLABS_MODEL_ID. Current default:
eleven_multilingual_v2. Endpoint: https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
Docs: https://elevenlabs.io/docs/api-reference/text-to-speech/convert

Optional WebXR:
Click Load VR view. Internet needed to load A-Frame 1.8.0. Actual immersive VR
requires a compatible device/browser and a suitable secure origin. For local
HTTP testing: python3 -m http.server 8000, then visit localhost:8000.
Local file desktop operation is supported; headset deployment is unverified.
Docs: https://aframe.io/docs/1.8.0/components/material.html

Scientific boundaries:
Gliese 581 is used as the requested system label. Planet surfaces, apparent sizes,
docking stations, travel speed and ship telemetry are entertainment designs,
not scientific observations. This build does not fetch an astronomical catalog.
No automatic destination generator, database, audience tracking, shared broadcast
clock or real playlist feed is connected. No production deployment or IA clearance
is claimed. QA.json and QA-summary.txt describe the checks actually performed.
