Go to file
type-two c4f11cc7de Batch-import the whole shitboxes stash: 13 more real models
FX/EH/HR Holdens, Kingswood HZ, both Excel imports, 240Z, AE86, KE80, both
Minis, Minicab, Delica coach, Leyland bus (untextured ghost bus, still
menacing). import_shitbox.py grows pitch axis, 1K texture cap and 150k-tri
decimation (cars/ went 501MB -> 146MB). tools/import_all.sh is the rerunnable
manifest with per-pack orientation fixes. Cutlass pack was junk, skipped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 22:47:38 +10:00
cars Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
docs Engine v0: Godot 4.6 data-driven arcade racer scaffold 2026-07-27 21:03:45 +10:00
levels/woolies_carpark Gameplay systems + procedural Blender car fleet 2026-07-27 21:29:42 +10:00
src Gameplay systems + procedural Blender car fleet 2026-07-27 21:29:42 +10:00
tests Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
tools Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
.gitignore Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
project.godot Engine v0: Godot 4.6 data-driven arcade racer scaffold 2026-07-27 21:03:45 +10:00
README.md Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_busted_leyland.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_casserola_dx.png.import Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_casserola_ke80.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_chaebol_90.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_chaebol_92.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_chaebol_x1.png.import Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_chaebol_x2.png.import Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_crash.png.import TURDRUNNER SLUR 500, FLOORED XD LOLTOP, DADSON 420YO repaint 2026-07-27 21:41:37 +10:00
shot_dadson_240z.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_datto_120y.png.import MINI MERK, MAXI MERK (6 wheels), HARDON SHAGGEN panel van 2026-07-27 21:48:37 +10:00
shot_derelica.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_floored_xd.png.import MINI MERK, MAXI MERK (6 wheels), HARDON SHAGGEN panel van 2026-07-27 21:48:37 +10:00
shot_hardon_cmere.png.import Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_hardon_effex.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_hardon_eh.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_hardon_hr.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_hardon_shaggen.png.import CHAEBOL HLYR dynasty (X1/X2/X3) + HARDON CMERE 2026-07-27 22:06:42 +10:00
shot_kingswood_hz.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_leyland_morry.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_maxi_merk.png.import CHAEBOL HLYR dynasty (X1/X2/X3) + HARDON CMERE 2026-07-27 22:06:42 +10:00
shot_mini_merk.png.import CHAEBOL HLYR dynasty (X1/X2/X3) + HARDON CMERE 2026-07-27 22:06:42 +10:00
shot_minicab.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_morry.png.import Reversed stats pass + real-model import pipeline (CASSEROLA DX, MORRY) 2026-07-27 22:24:36 +10:00
shot_turdeno.png.import Batch-import the whole shitboxes stash: 13 more real models 2026-07-27 22:47:38 +10:00
shot_turdrunner_slur.png.import MINI MERK, MAXI MERK (6 wheels), HARDON SHAGGEN panel van 2026-07-27 21:48:37 +10:00

Burnout Infinity: Shitbox

Burnout 3-style arcade racer, Aussie shitboxes, Woolies carparks. Godot 4.6 + Blender, native Apple Silicon.

Run

/Applications/Godot.app/Contents/MacOS/Godot --path .

Controls: WASD/arrows drive, Shift drift, Space boost, R reset (or retry after Crash Mode), Esc menu.

Modes

  • Cruise — free roam with traffic.
  • Crash Mode — 60 seconds, rack up damage dollars ramming traffic and parked cars.
  • Race — 3 laps vs 3 rubber-banded rivals on the level's RacePath.

The boost loop is Burnout 3's: earn boost by drifting, near-missing traffic, and smashing things. Wrecking a rival near you = TAKEDOWN — refills the meter and grows it (up to 4x). Hard crashes shed body panels and trigger Impact Time slow-mo.

Cars

A car is a folder: cars/<id>/stats.tres + optional car.glb. Models are built procedurally — specs live in tools/build_cars.py, one dict per car (silhouette profile, dimensions, paint). Rebuild all GLBs with:

/Applications/Blender.app/Contents/MacOS/Blender -b -P tools/build_cars.py

Model convention (any GLB works, hand-modelled or generated):

  • Nose faces +Y in Blender (imports as Godot -Z forward).
  • Node origin 0.75 m above ground level (the controller's ride height).
  • Objects named det_* are detachable — the game rips them off on impact (doors, mirrors, bumpers, bonnet, boot).
  • Current fleet: Datto 120Y, Gemmy TX, Kingswood HQ, VL Terbo, XF Fungoon, Excel Hilton. Piss-take names on purpose: real model names and badges are trademarks.

To improve a silhouette: supply a side-on photo + front three-quarter photo, tweak the profile points in the spec, rebuild, screenshot.

Stats are low-key reversed: the shitboxier the car was in real life, the better it performs here. The Excel X3 is the fastest car in the game; the muscle cars are all bark.

Downloaded models (from shitboxes/, gitignored + .gdignore'd) convert via:

/Applications/Blender.app/Contents/MacOS/Blender -b -P tools/import_shitbox.py -- "<file>" <car_id> <length_m> [yaw_deg]

Imported cars don't shed det_* panels until someone cuts their doors out in Blender.

Add a level

Make a folder levels/<id>/ containing level.glb (or level.tscn). Blender convention:

  • Solid objects: suffix the name with -col (Godot generates collision on import).
  • An Empty named Spawn where the car starts.
  • A curve/path named RacePath (loop) enables Race mode and traffic.
  • Export glTF Binary to levels/<id>/level.glb. It appears in the menu.

Tests

/Applications/Godot.app/Contents/MacOS/Godot --headless --path . --import
/Applications/Godot.app/Contents/MacOS/Godot --headless --path . --script tests/smoke.gd

Visual check (opens a window, saves a PNG):

/Applications/Godot.app/Contents/MacOS/Godot --path . --script tests/screenshot.gd -- car=datto_120y mode=crash frames=280 out=shot.png

Design doc

docs/BurnoutInfinityShitbox.pdf — research report on the original game. Still to come: crash deformation (control-hull vertex displacement, equations in the PDF), oncoming-lane boost, Road Rage mode, sound, real level GLBs from Blender.