The vehicle creator
2026-10-24.

Left the stock GAMMA, right the same car after four edits, drawn by pod-viewer render from the files the creator wrote.
The vehicle creator is the second tool of the mod layer, after the track editor. It works the same way: every change is one edit, written as bytes over the fields the car reader found, and nothing changes size. A car saved with no edits is the original file, byte for byte.
Two files, one car
Every POD car is two files. The .BV3 has 8-bit textures for the software builds, the .BV4 16-bit textures for the 3D cards. The tests first checked that both hold the same parameters, garage settings and torque curve, on all 16 of Gold's cars (measured). Each edit is then made in both:
- parameters, by name (
body_mass, or*.side_gripfor all four wheels); - garage settings, the car screen's five figures;
- the torque curve, scaled;
- a tint of the texture pages;
- a scale of the body, per axis, with the normals following.
The tint needs the .BV3's colours. An older note said its palette slot was empty, so this first version inferred one from the .BV4, which holds the same pictures at half the size. That was wrong: the slot holds a full palette, the same as CHROME.CH3's, and the creator now uses it (see "A correction" below).
Racing it
Un-POD builds a race car as Gold does: the file's parameters, then the garage set-up from the five settings, which replaces the torque curve, gears, steering, brakes and grip. The model's size also sets the collision box. So the race edits were the settings: acceleration, grip and speed to 100.
To race it, Un-POD needed a driver. Its probe answers questions about the cars and takes the player's keys, so a small script now does what follow.py does in the original. It records a computer car's lap, then steers the player along it (measure/unpod_follow.py). Un-POD is deterministic, so one race per car is enough: two stock races gave the same first two laps to 1/65536 of a second.
| GAMMA | Laps (s) | Place |
|---|---|---|
| Stock | 113.92, 109.13, 108.99 | 4 |
| Blue (settings 100, tint, scale) | 98.33, 93.77, 96.91 | 1 |
| Grip 5 | 123.67, 119.34, 121.91 | 5 |
These came from Un-POD as it was at noon; a later build gives other times (below).


In the original, grip 5 wedged the car in its first lap. In Un-POD it finished, slowly. The two drivers are different scripts on different lines, so this is not yet a comparison of the two games.
What went wrong
- A driver that waited forever. The first race script hung at about 20,000 passes with both programs idle. It skipped any line that did not start with
{, to step over log lines, and so it skipped an answer ofnull. It now parses every line. - One argument instead of two.
--data DIRbuilt in a shell variable reached Un-POD as one word, and every race stopped at once. Each argument is now passed on its own.
A correction
Three things in this entry were wrong, found in the afternoon's work on a new car:
The palette. The
.BV3slot is not empty: it holdsCHROME.CH3's palette. The inferred palette chose indices that Un-POD's real palette draws teal. The creator now tints through the file's own palette, and the car is blue in both files.The lap times. Un-POD changed with the day's merges. On the build at
40c29aathe stock GAMMA laps in 124.75, 111.78 and 112.77 s (4th), the edited one in 106.35, 93.68 and 112.89 s (2nd), grip 5 in 125.13, 117.75 and 117.02 s (5th) (docs/vehicle-creator.md).The axes. The scale was meant to make the car 15% longer. GAMMA's body spans x ±3.6, y ±1.66 and z ±0.57, so x runs along the car and
--scale 1 1.15 0.9made it 15% wider and 10% lower.
Next
- A new car beside the sixteen: its name in the car lists, menu pictures, garage figures.
- Moving single vertices, and a texture page from a picture file.
- A window for the creator in the viewer.
- Installing a creation into the original is the extras session's installer.