{
 "id": "vehicle.space.bomber/heavy-bomber-opera",
 "version": 3,
 "name": "Heavy assault bomber",
 "summary": "Original heavy space-opera assault bomber; 24 × 16 × 5.5 m; closed flight configuration, articulated turrets, canopy and bay doors.",
 "tags": [
  "assault",
  "bomber",
  "fighters",
  "heavy",
  "opera",
  "sci-fi",
  "space",
  "space-opera",
  "vehicle"
 ],
 "style": "realistic",
 "status": "approved",
 "frame": {
  "contract": "library/spacecraft-+Z-nose-+X-left-origin-centre",
  "up": "+Y",
  "unit": "m",
  "front": "+Z"
 },
 "size": {
  "measured_m": {
   "w": 16.0,
   "l": 24.0,
   "h": 5.5
  },
  "source": "measured",
  "scale_to_class": 1.0
 },
 "bounds": {
  "geometry": {
   "min": [
    -8.0,
    -2.75,
    -12.0
   ],
   "max": [
    8.0,
    2.75,
    12.0
   ]
  },
  "footprint": {
   "kind": "rect",
   "minX": -8.0,
   "maxX": 8.0,
   "minZ": -12.0,
   "maxZ": 12.0,
   "source": "measured"
  },
  "collider": {
   "parts": [
    {
     "type": "box",
     "x": 0.0,
     "y": 0.0,
     "z": 0.0,
     "hx": 8.0,
     "hy": 2.75,
     "hz": 12.0
    }
   ],
   "source": "guessed"
  }
 },
 "placement": {
  "role": null,
  "notes": null,
  "source": null
 },
 "sockets": [
  {
   "name": "hardpoint_1",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    5.147,
    -1.084,
    -4.043
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_2",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    6.696,
    -1.084,
    -4.384
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_3",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    -5.147,
    -1.084,
    -4.043
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_4",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    -6.696,
    -1.084,
    -4.384
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_5",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    0.74,
    -2.258,
    2.783
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_6",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    -0.74,
    -2.258,
    2.783
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_7",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    0.74,
    -2.258,
    -1.41
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_8",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    -0.74,
    -2.258,
    -1.41
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_9",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    0.74,
    -2.258,
    -5.311
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "hardpoint_10",
   "role": "hardpoint",
   "parent": null,
   "pos": [
    -0.74,
    -2.258,
    -5.311
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "light_beacon",
   "role": "light",
   "parent": null,
   "pos": [
    0.0,
    1.705,
    -7.358
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "light_nav_l",
   "role": "light",
   "parent": null,
   "pos": [
    7.995,
    -0.493,
    -5.359
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "light_nav_r",
   "role": "light",
   "parent": null,
   "pos": [
    -7.995,
    -0.493,
    -5.359
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "seat_copilot",
   "role": "seat",
   "parent": null,
   "pos": [
    0.0,
    0.946,
    5.367
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "seat_pilot",
   "role": "seat",
   "parent": null,
   "pos": [
    0.0,
    0.7,
    7.366
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "muzzle_1",
   "role": "muzzle",
   "parent": null,
   "pos": [
    -0.32,
    2.219,
    2.842
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "muzzle_2",
   "role": "muzzle",
   "parent": null,
   "pos": [
    0.32,
    2.219,
    2.842
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "muzzle_3",
   "role": "muzzle",
   "parent": null,
   "pos": [
    0.0,
    -2.004,
    12.0
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "camera_chase",
   "role": "camera",
   "parent": null,
   "pos": [
    0,
    8,
    -21
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "thruster_1",
   "role": "thruster",
   "parent": null,
   "pos": [
    -2.578,
    -0.335,
    -12.0
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "thruster_2",
   "role": "thruster",
   "parent": null,
   "pos": [
    0.0,
    -0.335,
    -12.0
   ],
   "rot": null,
   "source": "authored"
  },
  {
   "name": "thruster_3",
   "role": "thruster",
   "parent": null,
   "pos": [
    2.578,
    -0.335,
    -12.0
   ],
   "rot": null,
   "source": "authored"
  }
 ],
 "nodes": {
  "body": [
   "Hull"
  ],
  "doors": [
   "BayDoor_L",
   "BayDoor_R",
   "Canopy"
  ],
  "turrets": [
   "Turret_1",
   "Turret_2"
  ],
  "guns": [
   "Gun_1",
   "Gun_2"
  ],
  "thrusters": [
   "Thruster_1",
   "Thruster_2",
   "Thruster_3"
  ],
  "muzzles": [
   "Muzzle_1",
   "Muzzle_2",
   "Muzzle_3"
  ],
  "hardpoints": [
   "Hardpoint_1",
   "Hardpoint_2",
   "Hardpoint_3",
   "Hardpoint_4",
   "Hardpoint_5",
   "Hardpoint_6",
   "Hardpoint_7",
   "Hardpoint_8",
   "Hardpoint_9",
   "Hardpoint_10"
  ],
  "moving": {
   "BayDoor_L": {
    "kind": "hinge",
    "axis": [
     0.0,
     0.0,
     1.0
    ],
    "axis_source": "author"
   },
   "BayDoor_R": {
    "kind": "hinge",
    "axis": [
     0.0,
     0.0,
     -1.0
    ],
    "axis_source": "author"
   },
   "Canopy": {
    "kind": "hinge",
    "axis": [
     -1.0,
     0.0,
     0.0
    ],
    "axis_source": "author"
   },
   "Gun_1": {
    "kind": "gun",
    "axis": [
     -1.0,
     0.0,
     0.0
    ],
    "axis_source": "author"
   },
   "Gun_2": {
    "kind": "gun",
    "axis": [
     -1.0,
     0.0,
     0.0
    ],
    "axis_source": "measured"
   },
   "Turret_1": {
    "kind": "turret",
    "axis": [
     0.0,
     1.0,
     0.0
    ],
    "axis_source": "author"
   },
   "Turret_2": {
    "kind": "turret",
    "axis": [
     0.0,
     1.0,
     0.0
    ],
    "axis_source": "author"
   }
  },
  "axes": {
   "BayDoor_L": [
    0.0,
    0.0,
    1.0
   ],
   "BayDoor_R": [
    0.0,
    0.0,
    -1.0
   ],
   "Canopy": [
    -1.0,
    0.0,
    0.0
   ],
   "Gun_1": [
    -1.0,
    0.0,
    0.0
   ],
   "Gun_2": [
    -1.0,
    0.0,
    0.0
   ],
   "Turret_1": [
    0.0,
    1.0,
    0.0
   ],
   "Turret_2": [
    0.0,
    1.0,
    0.0
   ]
  },
  "limits": {
   "BayDoor_L": [
    0,
    1.4
   ],
   "BayDoor_R": [
    0,
    1.4
   ],
   "Canopy": [
    0,
    1.4
   ],
   "Gun_1": [
    -0.2,
    0.9
   ],
   "Gun_2": [
    -0.2,
    0.9
   ],
   "Turret_1": {
    "yaw": [
     -3.1416,
     3.1416
    ]
   },
   "Turret_2": {
    "yaw": [
     -3.1416,
     3.1416
    ]
   }
  }
 },
 "paint": {
  "encoding": "material factor",
  "material": "Paint",
  "default": [
   0.2,
   0.22,
   0.24
  ],
  "paints": [
   [
    0.2,
    0.22,
    0.24
   ],
   [
    0.23,
    0.26,
    0.14
   ],
   [
    0.38,
    0.44,
    0.49
   ],
   [
    0.52,
    0.4,
    0.23
   ],
   [
    0.75,
    0.8,
    0.83
   ],
   [
    0.035,
    0.075,
    0.135
   ]
  ],
  "names": [
   "Gunmetal",
   "Olive drab",
   "Naval grey",
   "Desert sand",
   "Arctic white",
   "Deep navy"
  ],
  "colour_space": "linear",
  "how": "set the Paint material's color (linear RGB) to recolour; nothing else uses Paint"
 },
 "render": {
  "tris": 96433,
  "verts": 188695,
  "materials": 6,
  "draw_calls": 22,
  "textures": [
   {
    "px": [
     1024,
     1024
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     512,
     512
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     1024,
     1024
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     1024,
     1024
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     512,
     512
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     1024,
     1024
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     512,
     512
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     1024,
     1024
    ],
    "fmt": "ktx2"
   },
   {
    "px": [
     16,
     4
    ],
    "fmt": "ktx2"
   }
  ],
  "gpu_mb_decoded": 8.0,
  "bytes": 1162508,
  "codec": "draco",
  "extensions": [
   "KHR_draco_mesh_compression",
   "KHR_materials_emissive_strength",
   "KHR_texture_basisu"
  ]
 },
 "rig": null,
 "animations": [],
 "gameplay": {
  "source": "measured",
  "length": 24.0,
  "beam": 16.0,
  "height": 5.5,
  "scale": "small-craft"
 },
 "techniques": [
  "baked-pbr",
  "draco",
  "paint-factor",
  "repaint-all-round",
  "textured"
 ],
 "provenance": {
  "author": "gpt-6-astra (Blender)",
  "source": "jobs/heavy-bomber-opera-v1",
  "kit": "library-author",
  "job": "heavy-bomber-opera-v1",
  "feedback": null,
  "imported": "2026-10-07",
  "file_origin": "~/forge-build/forge-assets/jobs/heavy-bomber-opera-v1/heavy-bomber-opera.glb",
  "method": "picture-to-Blender-and-paint",
  "models": [
   "gpt-6-astra (Blender)",
   "Nano Banana Pro concept sheet",
   "GPT Image 2 paint"
  ],
  "source_picture": "/home/claude-agent/forge-build/forge-assets/jobs/heavy-bomber-opera-v1/sheet.jpg",
  "date": "2026-10-16",
  "licence_evidence": "Forge Astra Blender job heavy-bomber-opera-v1 (Nano Banana Pro sheet, CC0 Poly Haven textures: blue_metal_plate, metal_plate_02)",
  "licence": "owned"
 },
 "licence": {
  "kind": "owned",
  "game_use": true,
  "raw_redistribute": false,
  "evidence": "Forge Astra Blender job heavy-bomber-opera-v1 (Nano Banana Pro sheet, CC0 Poly Haven textures: blue_metal_plate, metal_plate_02)"
 },
 "quality": {
  "gates": "pass: 8 MB of 24 MB texture budget, 96433 tris",
  "judge": null
 },
 "files": {
  "glb": "sha256:40f22cd9dbe8ef4b910671a1b8ccd6126d998a4f7d8263a39298a0edfad8de34",
  "painted_glb": "sha256:b0651a37ef2809d1fb106778d29382a2f2a7435701e49c37a5b962005c9cfe89"
 },
 "deps": [],
 "release": "sha256:67c4a5fd7f1d1171f59a07023a28340499485785dd66f776e515d0d52afdfd12",
 "painted": {
  "editor": "GPT Image 2 (Codex)",
  "method": "forge-repaint all-round (render, image edit, project back)",
  "views_kept": 9,
  "views_tried": 9,
  "pictures": 9,
  "outside_painted": 0.880918521385204,
  "tris": 96433,
  "bytes": 1462656,
  "gpu_mb_decoded": 7.7,
  "how": "files.painted_glb = a static one-material copy with the repainted texture: no moving parts and no Paint recolour; use files.glb for gameplay"
 },
 "thumbnail": "media/40f22cd9dbe8ef4b910671a1b8ccd6126d998a4f7d8263a39298a0edfad8de34/thumbnail-e470685005469c38.jpg",
 "source_photos": [
  "media/40f22cd9dbe8ef4b910671a1b8ccd6126d998a4f7d8263a39298a0edfad8de34/source-1-6f4415c04a09ea32.jpg"
 ],
 "reuse": {
  "omg": true,
  "omu": true,
  "reason": ""
 },
 "visual": {
  "id": "vehicle.space.bomber/heavy-bomber-opera",
  "release": "sha256:67c4a5fd7f1d1171f59a07023a28340499485785dd66f776e515d0d52afdfd12",
  "thumbnail_sha256": "e470685005469c38654a3cbb6c3051f332c4fe0baf3dd47d16fe0a5e5cde5345",
  "n": 3,
  "description": "Medium sci-fi dropship or heavy fighter spacecraft vehicle, wedge-shaped fuselage with stubby swept wings, multi-pane glass cockpit canopy, dorsal twin-barrel gun turret, front air intakes, rear thruster nozzles, military sci-fi style, dark grey metal and tinted glass materials, vehicle size class.",
  "artwork": false,
  "person": false,
  "model": "forge:build-gemini-4",
  "image_sha256": "073111e60207cf9737473b378e291c27f618b2a7a7903623d7323ce0f9ead485",
  "safety": {
   "model": "jev",
   "probabilities": {
    "person": 0.02,
    "artwork": 0.05
   },
   "blocked": false,
   "threshold": 0.35,
   "source": "authored"
  }
 }
}
