From 1eb5a3188d93870ef672df5e45e7210288354ad5 Mon Sep 17 00:00:00 2001 From: Josh Creek <8179928+jcreek@users.noreply.github.com> Date: Mon, 3 Aug 2026 22:39:46 +0100 Subject: [PATCH] feat: replace ship and ball placeholder meshes with Blender-modeled assets Ship gets a greebled hull, tapered nose, swept canopy, twin engine nacelles, and tail fin (built via the vendored Blender MCP, generator committed at tools/blender/gen_ship.py) in place of the 5 flat primitives. The ball is fully remodeled as a smooth round sphere with a crossed emissive accent pattern (gen_ball.py), replacing the old flat-shaded gold_ball rather than just tweaking its material. Node names (Nose/TailFin) are preserved for Ship._apply_team_color(), and the RigidBody3D/CollisionShape3D physics on both ship.tscn and ball.tscn are untouched so RL-trained bots and flight feel stay valid. Each part's mesh is extracted to a standalone .res (tools/blender/extract_meshes.gd) rather than referenced via glb::ArrayMesh_xxx sub-paths, which don't reliably resolve across scene files and were silently rendering both models invisible. --- Game/assets/blender_models/ball.blend | Bin 0 -> 129424 bytes ...ld_ball.blend.import => ball.blend.import} | 12 +- Game/assets/blender_models/gold_ball.blend | Bin 1027516 -> 0 bytes Game/assets/blender_models/ship.blend | Bin 0 -> 139215 bytes Game/assets/blender_models/ship.blend.import | 63 ++++ Game/assets/models/ball.glb | Bin 0 -> 30004 bytes .../{gold_ball.glb.import => ball.glb.import} | 32 +- Game/assets/models/ball.res | Bin 0 -> 46469 bytes Game/assets/models/gold_ball.glb | Bin 142136 -> 0 bytes Game/assets/models/gold_ball.res | Bin 124177 -> 0 bytes Game/assets/models/ship_canopy.glb | Bin 0 -> 4740 bytes Game/assets/models/ship_canopy.glb.import | 45 +++ Game/assets/models/ship_canopy.res | Bin 0 -> 6300 bytes Game/assets/models/ship_engine_l.glb | Bin 0 -> 8208 bytes Game/assets/models/ship_engine_l.glb.import | 45 +++ Game/assets/models/ship_engine_l.res | Bin 0 -> 9692 bytes Game/assets/models/ship_engine_r.glb | Bin 0 -> 8208 bytes Game/assets/models/ship_engine_r.glb.import | 45 +++ Game/assets/models/ship_engine_r.res | Bin 0 -> 9692 bytes Game/assets/models/ship_hull.glb | Bin 0 -> 105252 bytes Game/assets/models/ship_hull.glb.import | 45 +++ Game/assets/models/ship_hull.res | Bin 0 -> 100260 bytes Game/assets/models/ship_nose.glb | Bin 0 -> 9700 bytes Game/assets/models/ship_nose.glb.import | 45 +++ Game/assets/models/ship_nose.res | Bin 0 -> 10356 bytes Game/assets/models/ship_tailfin.glb | Bin 0 -> 4444 bytes Game/assets/models/ship_tailfin.glb.import | 45 +++ Game/assets/models/ship_tailfin.res | Bin 0 -> 6362 bytes Game/objects/ball.tscn | 6 +- Game/objects/ship.tscn | 79 ++-- TODO.md | 2 +- tools/blender/extract_meshes.gd | 35 ++ tools/blender/gen_ball.py | 132 +++++++ tools/blender/gen_ship.py | 341 ++++++++++++++++++ 34 files changed, 881 insertions(+), 91 deletions(-) create mode 100644 Game/assets/blender_models/ball.blend rename Game/assets/blender_models/{gold_ball.blend.import => ball.blend.import} (82%) delete mode 100644 Game/assets/blender_models/gold_ball.blend create mode 100644 Game/assets/blender_models/ship.blend create mode 100644 Game/assets/blender_models/ship.blend.import create mode 100644 Game/assets/models/ball.glb rename Game/assets/models/{gold_ball.glb.import => ball.glb.import} (53%) create mode 100644 Game/assets/models/ball.res delete mode 100644 Game/assets/models/gold_ball.glb delete mode 100644 Game/assets/models/gold_ball.res create mode 100644 Game/assets/models/ship_canopy.glb create mode 100644 Game/assets/models/ship_canopy.glb.import create mode 100644 Game/assets/models/ship_canopy.res create mode 100644 Game/assets/models/ship_engine_l.glb create mode 100644 Game/assets/models/ship_engine_l.glb.import create mode 100644 Game/assets/models/ship_engine_l.res create mode 100644 Game/assets/models/ship_engine_r.glb create mode 100644 Game/assets/models/ship_engine_r.glb.import create mode 100644 Game/assets/models/ship_engine_r.res create mode 100644 Game/assets/models/ship_hull.glb create mode 100644 Game/assets/models/ship_hull.glb.import create mode 100644 Game/assets/models/ship_hull.res create mode 100644 Game/assets/models/ship_nose.glb create mode 100644 Game/assets/models/ship_nose.glb.import create mode 100644 Game/assets/models/ship_nose.res create mode 100644 Game/assets/models/ship_tailfin.glb create mode 100644 Game/assets/models/ship_tailfin.glb.import create mode 100644 Game/assets/models/ship_tailfin.res create mode 100644 tools/blender/extract_meshes.gd create mode 100644 tools/blender/gen_ball.py create mode 100644 tools/blender/gen_ship.py diff --git a/Game/assets/blender_models/ball.blend b/Game/assets/blender_models/ball.blend new file mode 100644 index 0000000000000000000000000000000000000000..8c5401cda8cba45c7a0852c7bd26910c06bc09e2 GIT binary patch literal 129424 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