{
 "id": "vehicle.service.fire-truck/fire-engine",
 "version": 1,
 "name": "modern european fire engine / rescue pumper truck (french sapeurs-pompiers fpt style): four-door crew cab-over-engine in bright fire red with white bumper and high-visibility red/yellow rear chevrons, generic 'pompiers' lettering on the front and sides, brushed aluminium roll-up equipment locker shutters (three per side), roof-mounted silver extension ladder rack on top, blue/red led emergency lightbar on the cab roof, heavy duty truck wheels, hose reels and pump panel detail (the one on sheet.jpg)",
 "title": "Fire Engine",
 "slug": "fire-engine",
 "refs": [
  "sheet.jpg",
  "trellis.preview.png",
  "trellis.glb",
  "trellis_info.json"
 ],
 "size": "8.80 m long, 2.50 m wide, 3.35 m high, wheelbase 4.60 m",
 "tris": "60k to 115k",
 "mats": 8,
 "effort": "medium",
 "frame": "Front toward +Z, up = +Y, +X = the vehicle's LEFT side, centred on X = 0; origin (0,0,0) on the ground plane midway between the front and rearmost axles (Forge Garage contract v2). Tyres touch y = 0.",
 "nodes": "GAME WEIGHT overrides the budget above: every texture image at most 1024 px, ORM / occlusion maps at most 512 px, share one baked texture set between parts where you can. Final packed GLB must be <= 1.5 MB (<= 2.0 MB for trucks). Separate named mesh nodes: Body (crew cab, pump body, aluminium shutters, ladder rack, chassis), Lightbar (the cab roof emergency lightbar as a separate mesh node, origin at its centre, using emissive 'Lamps' material), Wheel_FL, Wheel_FR, Wheel_RL, Wheel_RR (heavy truck wheels, origin at exact wheel hub centre), SteeringWheel (origin at its hub), Door_FL, Door_FR, Door_RL, Door_RR (four crew cab doors, origin on their front hinges). Empty nodes (no mesh): Seat_Driver, Door_L, Door_R, Exhaust, Light_Head_L, Light_Head_R, Light_Tail_L, Light_Tail_R. Crew cab interior visible through Glass. Windows: one material named \"Glass\" (alpha BLEND, tinted, low roughness, real thickness not needed). Lamps: one material named \"Lamps\" with emissive (headlights warm white, tail and brake lights red, indicators amber, roof lightbars / taxi signs emissive; emission strength modest, games raise it). PAINT CONTRACT (this is how games get colour variants of one model): the base body colour lives in ONE material named exactly \"Paint\". Its base colour TEXTURE holds only light neutral detail (near white, with subtle grey grime, panel seams, dust and wear baked in) and its baseColorFactor holds the paint colour; default factor = [0.68, 0.03, 0.02] (fire engine red) (never [1,1,1]). A game recolours the vehicle by changing that factor, so nothing else (rubber, chrome, glass, lights, interior, baked livery stripes/decals) may use the Paint material. For liveried service vehicles, put livery stripes/chevrons/markings on a separate \"Livery\" material (or non-Paint material) and use \"Paint\" for the recolourable base body panels. Give Paint a clearcoat (KHR_materials_clearcoat 1.0, roughness about 0.05) if it is glossy paint. Put the brushed aluminium roll-up shutters, safety chevrons, and generic 'POMPIERS' markings on separate non-Paint materials so 'Paint' controls the main red cab and body shell. In nodes.json add \"paints\": six good-looking real paint colours for this model as linear RGB triples (the default first), and render paints.png: a 3x2 grid of the same 3/4 view in those six paints (EEVEE or low-sample Cycles is fine) to prove the recolour works. REFERENCE & TRELLIS.2 STARTING MESH: In this directory you have sheet.jpg (the turnaround design sheet), trellis.preview.png (render of the TRELLIS.2 3D shape reference), and trellis.glb (the TRELLIS.2 3D mesh). Do NOT call view_file on trellis.glb (it is a binary GLB; view sheet.jpg and trellis.preview.png with view_file). You may inspect or import trellis.glb in Blender on gex44 as a 3D shape/proportion guide or starting shell, but a raw TRELLIS blob mesh with fused wheels is NOT acceptable: wheels MUST be separate clean cylindrical meshes that spin smoothly without wobble, glass and body panels must be crisp, and all Garage v2 nodes and pivots must be exact. Keep this directory clean: never create node_modules here. Pace: deliver a first complete GLB within about 20 minutes, then refine if needed. Use Cycles with the GPU (OptiX/CUDA) and modest samples for bakes and renders. ",
 "family": "wheeled",
 "pen": "gemini4",
 "status": "approved",
 "tags": [
  "fire-truck",
  "fire-engine",
  "firetruck",
  "pompiers",
  "emergency",
  "service",
  "vehicle",
  "camion-de-pompiers"
 ],
 "aliases": [
  "fire truck",
  "fire engine",
  "firetruck",
  "camion de pompiers",
  "sapeurs pompiers",
  "pumper truck",
  "fourgon pompe tonne"
 ]
}