Apache Longbow Research archive

Browsing models

The browser groups records using their stored next-LOD links. It does not merge models because they have the same name. The A10 chain is 3 → 5 → 6 → 1213; the C130 chain is 34 → 35 → 36 → 37.

A family starts at a record that no other model names as its next LOD. Some distinct models converge on a shared distant model. Those families remain separate, and the detail view links the shared record back to each family. The reference archive has 1,314 records, 699 families and eight records shared by more than one chain.

Choose Individual records to browse every record separately. Existing numeric links still open the exact record requested. Switching models or detail levels preserves zoom and viewing angle; Reset view restores the defaults. Search examines all records in a family, so searching for a lower-detail record number finds its family too.

Categories and evidence

Categories describe roles established in the original game data and analysis. Names and visual resemblance are not used as classification rules.

Category Evidence
Aircraft Original drone class 2
Helicopters Original drone class 1
Ground vehicles Original drone classes 3 and 4
Artillery & launchers Original drone class 5, including fixed emplacements
Scenery & infrastructure Original drone class 6, or placements in the terrain archives
Ships & boats Original drone class 7
Trains Original drone class 8
Buildings & installations Structure radar symbol 4 in the executable's object-properties table, after accounting for actor roles
Weapons & ammunition Model references in weapon definitions, or missile radar symbols in the original properties table
Wreckage & effects Destruction replacements for placed scenery and direct crater/splash routines
Attached components Fixed model attachments, captured mission attachment trees, or projectile auxiliary-model references
Other archive models No category established by the records above

A registered actor or weapon retains its role even when another model carries it as an attachment. Buildings and scenery can include inactive structures. Other archive models holds records whose role still needs tracing. Each family's detail panel states the evidence used to place it.

The header field at 0xb0 has different uses in different callers. Scenery destruction reads it as a replacement model; projectiles and weapon mounts can read it as an exhaust or muzzle-flash model. The catalogue follows those uses rather than treating every reference as wreckage.

The mission and scenery filters apply to the complete LOD family. Usage links and counts combine its records. Attached components have links to their parent models, including slots populated by the original mission loader.

Thumbnails

Thumbnails use the same geometry and renderer as the main preview, with attached parts enabled and drawing flags at zero. They keep a fixed camera angle when the main model rotates. One reusable off-screen renderer produces previews as cards scroll into view, and the browser caches them for the session. There is no separate WebGL context for every card.

An empty default drawing state is labelled No default geometry. The main viewer's state controls remain available for those records.

Rebuilding and checking

Run PYTHONDONTWRITEBYTECODE=1 .venv/bin/python tools/build_model_catalogue.py from the project directory after updating the underlying analysis exports. It reads the original executable's object-properties table at 0x44ec00, the model archive, the existing actor and weapon exports, terrain usage and captured mission attachments. It writes catalogue.json.

The generator validates LOD coverage and cycles, the A10 and C130 chains, and the distinct infantry families sharing the same distant geometry. Browser checks exercise grouping, categories, exact-record links, detail selection, thumbnails and pagination.