A browser-based viewer for POD archives used by Terminal Reality games: Monster Truck Madness, Monster Truck Madness 2, Terminal Velocity, Fury3, Hellbender, Nocturne, 4×4 Evo, and others.
All decoding runs client-side. No server, no uploads, no install.
- Open POD and ZIP files from disk or via URL (including
?url=query parameter) - Collapsible folder tree with per-type file icons
- Format descriptions for 40+ Terminal Reality file extensions
- Previews for the most common file types (see below). Advanced BIN (models) and RAW (textures) preview.
- Download individual files or the entire archive as a ZIP
- Live search to filter the file tree
| Format | Games | Access |
|---|---|---|
| POD1 | MTM1, MTM2, CART Precision Racing, Terminal Velocity, Fury3, Hellbender | Read |
| POD2 | Nocturne, 4×4 EVO 1 & 2 | Read |
| EPD | Fly!, Fly2K | Read |
ZIP files containing a .POD are supported — the archive is extracted automatically.
| Extension | Preview |
|---|---|
.RAW |
Palette-indexed image. Palette resolved from same-name .ACT → bundled fallbacks. Palette selector and Save as BMP included. |
.ACT |
16×16 colour swatch grid with index and hex on hover. |
.BIN .LWO |
Interactive 3D model viewer (Three.js, OrbitControls). Shows model stats, texture thumbnails, palette selector and a ground grid. Clicking a texture thumbnail opens its RAW preview. |
.WAV |
In-browser audio playback via <audio>. |
.BMP .PNG .JPG .GIF .WEBP |
Standard image preview. |
.SIT .TRK .LVL .DEF .INI .TXT and more |
Monospace text viewer (ISO-8859-1). |
| Everything else | Hex dump (first 4 KiB). |
The most advanced BIN model viewer is here!
- Textures loaded from the
ART/folder of the same POD archive - Palette selection: Selectable palettes from MTM1, Hellbender, TV/F3, CPR, greyscale and all those included in the POD file. Priority goes to same-name ACT.
- Stats overlay: format, vertex count, polygon count, magnify power, base Z, texture list
- Texture strip: clickable thumbnails for every RAW texture referenced by the model
- Wireframe, texture smoothing, selectable lighting and grid options.
- Correct depth precision via model-scale-calibrated near/far planes
Serve the folder over HTTP or HTTPS (OPFS requires a secure context):
python3 -m http.server 8000
# then open http://localhost:8000/JSPod/Auto-load an archive on page open:
?file=relative/path/to/game.pod
?url=https://example.com/game.pod
ZIP files are supported too — the first .POD inside is extracted and loaded.
| Layer | Technology |
|---|---|
| Rendering | Vanilla ES modules, no bundler |
| 3D models | Three.js v0.169 via importmap |
| ZIP extraction | fflate v0.8.2 via CDN |
| Heavy parsing | Web Worker (ES module) |
| Session storage | Origin Private File System (OPFS) |
| Styling | Vanilla CSS, CSS variables, dark theme |
src/
├── pod-app.js Main UI controller
├── worker/
│ ├── pod-format.js POD1 / POD2 / EPD parser
│ ├── bin-decoder.js BIN mesh decoder (MTM2-style scaling)
│ └── texture-decoder.js RAW + ACT palette decoder (6-bit VGA aware)
├── preview/
│ ├── bin-preview.js Three.js BIN model viewer
│ ├── raw-preview.js RAW/CLR image + BMP export
│ └── … ACT, text, WAV, image, hex previewers
└── ui/
├── file-tree.js Collapsible folder tree
└── modal.js Native <dialog> wrapper
| Project | Description |
|---|---|
| JPod | Java desktop POD manager - the original this is ported from |
| JSTruckViewer | Browser-based MTM2 truck (BIN/TRK) viewer |
| JSTrackViewer | Browser-based MTM2/TV/F3/HB track viewer |
Apache 2.0 — see LICENSE.
THE MONSTER TRUCK MADNESS GUILD