mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-14 15:22:21 +00:00
Feeds carry many airport ground vehicles (type ZVEH) and ground stations (GRND) that were drawn as the generic plane, some at the 10 km airborne default. - types.json gains aircraft_callsign rules: a ZVEH callsign starting FIRE is a fire truck, PUSH/TUG a pushback tug, DEICER/SQUID/SQB a van, else a car. GRND draws a new 11.8 m radio mast (other/radio_mast.glb). - resolveAircraft and aircraftModelSpec take the callsign; a matched rule names the model outright, ahead of the type's class model. - The layer spec cache keys such types by the rule matched, so it holds at most one entry per rule. - These models (catalog category `other`) draw at their built size, as such models already do, and a contact with no altitude whose model is one now stands on the ground; the feed's own type is kept for such contacts, as no airframe lookup knows it. - Local ADS-B passes the callsign too.
Bundled 3D Models
Every 3D model shipped in this directory is one of the project's procedural
fleet models under fleet/: aircraft, helicopters, ships, buoys,
transit and rail vehicles, and a few other airborne and ground objects. They
are generated from code by the project maintainers, contain no third-party
artwork, and are covered by the repository's MIT license
like the source code.
| Path | What it holds |
|---|---|
fleet/catalog.json |
Every model by name: its file, category, built length, beam and bounds (metres, in Cesium's Z-up model frame: x along the length with the nose toward −X, y across the beam, z up), the clearance below its origin, and its 2D icon class. |
fleet/types.json |
Which model draws which vehicle, and at what length: ICAO aircraft and helicopter type codes, ADS-B emitter categories, AIS ship-type and length ranges, GTFS route types, transit modes and rail categories, with the defaults. |
fleet/aircraft/, fleet/helicopters/, fleet/ships/, fleet/buoys/, fleet/transit/, fleet/other/ |
The models, one GLB each (EXT_meshopt_compression and KHR_mesh_quantization, vertex colours, no textures). |
How the layers use them:
- Each layer draws a vehicle with the model its type selects, scaled to the
type's published length (a vessel to its reported AIS length and beam), so
every model is drawn life size. Ground objects, balloons and obstacles in
the
othercategory are drawn at the size they are built. - An aircraft model's origin is its axis; it stands that model's scaled
clearance above the ground. A ship's origin is its waterline, and a transit
or rail vehicle's the road or rail top (a monorail or gondola is raised by
its
transit.elevationentry, for a source that names those modes). - Transit and rail models carry a
_TINTvertex attribute that marks where the route or category colour is painted. - The whole set loads once, up front, when a layer that draws it starts; no model is fetched while a session runs.
src/data/fleetModels.js reads the set and chooses each vehicle's model;
src/data/fleetModels.test.mjs checks that every model types.json names is
in the catalog and on disk, and that no GLB exceeds 3 MB.