Parses the DIV-VIZ2 formats (VGF geometry, VMF materials, TGA textures, SPL splines, SCN scenes) from the STDAVE directory of the Glaze drive and re-renders VWE's unreleased 1996 Star Trek pod scenes in a self-contained WebGL page: the Enterprise-D among drifting starfields (TREK.SCN) and the Klingon flyby (KLNGVID.SCN). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
43 lines
2.0 KiB
Markdown
43 lines
2.0 KiB
Markdown
# TREK.SCN Restoration
|
|
|
|
A modern re-rendering of the unreleased **Star Trek** simulator-pod scenes found
|
|
in the `STDAVE` directory of the Glaze developer drive (see
|
|
[HISTORY.md](../HISTORY.md)). The original scenes ran on Division Ltd.'s dVS
|
|
pixel-pipeline hardware in 1996; this restoration parses the original data
|
|
files and re-renders them in WebGL, in the browser.
|
|
|
|
## Files
|
|
|
|
- **`trek-scn.html`** — the finished, self-contained viewer (open in any
|
|
browser; no server needed). Renders `TREK.SCN` (the Enterprise-D among
|
|
three parallax layers of drifting stars) and `KLNGVID.SCN` (a Klingon
|
|
cruiser at rest while two more drift past on spline paths). Fly camera:
|
|
drag to look, WASD to fly.
|
|
- **`convert.py`** — the converter. Parses the DIV-VIZ2 text formats from
|
|
the drive dump (expects it at `..\sda4\STDAVE`) and emits `trekdata.json`:
|
|
- `.VGF` geometry (vertex pools + polygon connection lists, converted from
|
|
Wavefront OBJ in 1996 by Ken Olsen's `obj2vgf`)
|
|
- `.VMF` materials (ambient/diffuse/emissive, shading ramps, texture
|
|
bit-slice references)
|
|
- `.TGA` textures (decoded and re-encoded as PNG data URIs)
|
|
- `.SPL` splines (starfield drift paths, ship flyby paths)
|
|
- `.SCN` scene scripts (camera, lights, fog, object placements)
|
|
- **`viewer_template.html`** — the viewer source with a `%%DATA%%`
|
|
placeholder; `convert.py`'s JSON output is injected to produce
|
|
`trek-scn.html`.
|
|
|
|
## Rebuild
|
|
|
|
```
|
|
python convert.py
|
|
python -c "open('trek-scn.html','w',encoding='utf-8').write(open('viewer_template.html',encoding='utf-8').read().replace('%%DATA%%',open('trekdata.json',encoding='utf-8').read()))"
|
|
```
|
|
|
|
## Fidelity notes
|
|
|
|
Faithful: vertices, triangles, material colors, textures, fog and light
|
|
parameters, star paths and layer speeds, camera start positions — all from
|
|
the original files. Approximated: Division's shading ramps and rasterizer
|
|
behavior, point-sprite star sizes, ship motion timing (original simulation
|
|
ran at 30 Hz). Not simulated: the event-driven SPECIALFX particle effects.
|