Cargo Hauler Model (#599)

Overview

The cargo hauler is the faction reference design — an open-frame industrial bulk carrier with exposed structural trusses, externally-mounted cargo pods, and a dorsally-offset command module. The design replaces the earlier “3 stacked boxes with pods” with a detailed industrial silhouette featuring ~250 meshes built from Three.js primitives.

Design language matches the outpost and fast frigate: gray metal tones, exposed structural elements, utilitarian construction.

Scale

  • Built at meter scale (1 unit = 1 m), then scaled by shipVisualScale (SVS)
  • Overall extent: ~70 m along Y-axis (forward), ~24 m across X (with radiator booms), ~12 m Z
  • Model Y-axis = ship forward direction

Immutable Constraints

These values are physics-dependent and must not change:

  • RCS pod positions: [±5, ±5, ±24] — 8 corner pods
  • Engine plume group named 'enginePlume', dual plumes at X=±3
  • Nav lights group named 'navLights'
  • _addRCSPods() call with same position array and parameters

Materials (12)

All materials use MeshStandardMaterial unless noted.

Name Color Metalness Roughness Notes
hullMat 0x666666 0.7 0.4 Main hull panels
hullDarkMat 0x555555 0.7 0.5 Worn/recessed panels
cmdMat 0x777777 0.6 0.3 Command module
frameMat 0x555555 0.8 0.3 Structural trusses
podMat 0x887744 0.5 0.5 Cargo containers
doorMat 0x776633 0.5 0.6 Cargo doors
tankMat 0x5a5a6a 0.6 0.4 Fuel tanks
radiatorMat 0x334455 0.3 0.6 Heat radiators (DoubleSide)
pipeMat 0x5a5a5a 0.6 0.4 Fuel/coolant piping
nozzleMat 0x333333 0.9 0.2 Engine internals
glassMat 0x112244 0.9 0.1 Viewports (emissive: 0x0a1828)
dockMat 0x887744 0.5 0.5 Docking collar hardware

Structure

A. Structural Spine (replaces solid box spine)

Open-frame truss backbone running the full ship length.

  • 4 longitudinal rails: BoxGeometry(0.8, 60, 0.8) at [±3.5, 0, ±3.5]
  • 6 structural rib rings at Y = −25, −15, −5, 5, 15, 25
    • Outer frame: BoxGeometry(8, 0.5, 8) (hullDarkMat)
    • Cross members: 2 per ring, BoxGeometry(7, 0.4, 0.4) and BoxGeometry(0.4, 0.4, 7) (frameMat)

B. Command Module (Y=+18 to +30, offset +1.5 Z dorsal)

Dorsally-offset for asymmetric silhouette.

  • Main hull: BoxGeometry(8, 10, 7) at (0, 24, 1.5), cmdMat
  • Side hull plates: BoxGeometry(0.15, 9, 6) on port/starboard faces (hullDarkMat)
  • 3 viewport strips on forward face: BoxGeometry(6, 0.2, 1.0) at Y=26.5, 24.5, 22.5 (glassMat)
  • Accent band: TorusGeometry(4, 0.3, 8, 16) at forward face, rotated 90° about X (frameMat)
  • Dorsal sensor dome: SphereGeometry(1.2, 8, 6, 0, 2π, 0, π/2) at (0, 29.5, 4) (cmdMat) + mast CylinderGeometry(0.15, 0.15, 3) (frameMat)
  • Forward antenna mast: CylinderGeometry(0.2, 0.2, 6) at (0, 33, 1.5) (frameMat)
  • Comm dish: ConeGeometry(2, 1.5, 8) inverted at top of mast, rotated π (cmdMat)

C. Aft Engineering (Y=−18 to −30)

  • Engineering hull: BoxGeometry(7, 10, 7) at (0, −23, 0) (hullMat)
  • Reactor housing: CylinderGeometry(2.5, 2.5, 8, 10) at (0, −23, 4.5) dorsal (tankMat)
  • Engine mount frame: BoxGeometry(10, 1.5, 4) at (0, −29, 0) (frameMat)
    • Stiffeners: 2× BoxGeometry(0.4, 4, 3) at X=±4 (frameMat)
  • Dual engine bells (improved):
    • Outer bell: CylinderGeometry(2.0, 4.5, 7, 12) at X=±3, Y=−33 (frameMat)
    • Inner nozzle: CylinderGeometry(1.4, 3.6, 5.6, 10) offset −0.3 Y (nozzleMat)
    • Nozzle lip ring: TorusGeometry(4.5, 0.3, 6, 16) at bell bottom edge (nozzleMat)
  • Fuel feed pipes: 2× CylinderGeometry(0.3, 0.3, 8) from tanks to engine area (pipeMat)

D. Cargo Frame & Pods (Y=−12 to +12)

External frame with 4 large cargo pods.

  • 4 outer frame rails: BoxGeometry(0.6, 28, 0.6) at [±6, 0, ±6] (frameMat)
  • 3 cross-member rings at Y = −10, 0, 10:
    • X-bars: BoxGeometry(12, 0.4, 0.4) at Z=±6 (frameMat)
    • Z-bars: BoxGeometry(0.4, 0.4, 12) at X=±6 (frameMat)
  • 4 cargo pods at (±9, 0, ±5): BoxGeometry(8, 24, 8) (podMat)
    • Door panel: BoxGeometry(0.2, 16, 6) on outward X face (doorMat)
    • Door frame bars: 2× BoxGeometry(0.25, 16, 0.3) flanking door (frameMat)
    • 3 horizontal latch bars: BoxGeometry(0.3, 0.3, 6.5) at Y offsets (frameMat)
    • 2 mounting pylons: BoxGeometry(0.5, 3, 0.5) connecting pod top/bottom to frame (frameMat)

E. Fuel Tanks (ventral, alongside aft spine)

  • 2 cylindrical tanks: CylinderGeometry(2.0, 2.0, 20, 10) at (0, −8, ±4.5) (tankMat)
  • End cap domes: SphereGeometry(2.0, 8, 6) scaled (1, 0.4, 1) at tank ends (tankMat)
  • Mounting strap torus: TorusGeometry(2.2, 0.2, 6, 12) at 3 positions along each tank (frameMat)
  • Transfer pipes: CylinderGeometry(0.25, 0.25, 10) angled to engine section (pipeMat)

F. Radiator Panels (port/starboard on booms)

  • 2 large panels: BoxGeometry(0.12, 18, 10) at X=±12 (radiatorMat, DoubleSide)
  • Panel subdivision lines: 3 horizontal BoxGeometry(0.14, 0.15, 10) per panel (frameMat)
  • Deployment booms: CylinderGeometry(0.3, 0.3, 6, 6) connecting spine to panels (frameMat)
    • Rotated Z = ±π/2 at Y = −5, 0, 5
  • Hinge joints: SphereGeometry(0.5, 6, 6) at boom-panel connection points (frameMat)

G. Ventral Docking Port (Y=−8, Z=−6)

  • Docking collar: CylinderGeometry(2.0, 2.0, 3, 12) rotated π/2 about X (dockMat)
  • Lip ring: TorusGeometry(2.0, 0.25, 6, 12) at collar end (frameMat)
  • Guide rails: 2× BoxGeometry(0.3, 0.3, 4) flanking port (frameMat)
  • Approach beacons: 2× SphereGeometry(0.4, 6, 6) with MeshBasicMaterial 0x00ff88 (self-illuminating)

H. Antennas & Sensors

  • Main comm dish: on angled boom from forward dorsal (see section B)
  • Aft whip antenna: CylinderGeometry(0.1, 0.1, 5) at (0, −30, −4) ventral (frameMat)
  • 2 sensor housings: BoxGeometry(1.5, 1.0, 1.5) flanking command module at (±5, 26, 1.5) (hullMat)
    • Glass lens: SphereGeometry(0.4, 6, 6) on forward face (glassMat)

I. Surface Greebles

  • ~6 equipment boxes on engineering hull: BoxGeometry(1.0, 0.6, 1.5) on various faces (hullDarkMat)
  • Hull panel overlays on cargo pods: BoxGeometry(4, 0.15, 3) on top + forward faces (hullDarkMat)

J. Navigation Lights (6 total)

Named group 'navLights' — blinks on existing 2-tick/8-tick cycle.

Light Color Position Notes
Port red 0xff0000 (−13, 0, 10) Outer cargo pod corner, port
Starboard green 0x00ff00 (13, 0, −10) Outer cargo pod corner, starboard
Forward white 0xffffff (0, 36, 1.5) Antenna mast tip
Aft amber 0xffaa00 (0, −37, 0) Below engine bells
Dorsal white strobe 0xffffff (0, 32, 4) Sensor dome mast top
Ventral white strobe 0xffffff (0, −8, −8) Below docking port

K. Engine Plumes (triple-layer)

Named group 'enginePlume'. Dual plumes at X=±3.

Layer Color Opacity Radius factor Height factor
Outer 0x4488ff 0.7 1.0× 1.0×
Inner 0xaaddff 0.8 0.6× 0.6×
Core 0xddffff 0.9 0.3× 0.35×

Base plume radius = bell bottom radius (4.5). Base plume height = 24.

L. RCS Pods

Unchanged positions. _addRCSPods() called with:

  • Positions: [±5, ±5, ±24] (8 corners)
  • Parameters: 1.5, 1.0, 0.3, 3.0, 0.6

Integration struts: 8× BoxGeometry(0.2, 0.2, length) connecting each pod to nearest cargo frame rail (frameMat). Rotated as needed to bridge the gap.

M. Ventral Keel

Provides clear top/bottom distinction.

  • Keel beam: BoxGeometry(1.5, 40, 0.8) at (0, 0, −5) (frameMat)
  • 3 keel ribs: BoxGeometry(3, 0.4, 1.5) at Y = −10, 0, 10 crossing beam (frameMat)

Estimated Mesh Count

~250 meshes total (up from ~60). Comparable complexity to the outpost model. All simple primitives — renders efficiently.

Unchanged Behavior

  • Nav light blink pattern (2 on / 8 off) — unchanged
  • RCS pod visual activation — unchanged
  • Engine plume visibility toggle — unchanged
  • Ship cockpit camera position — unchanged
  • Ship physics (mass, inertia, thrust) — unchanged

Back to top

Galaxy — Kubernetes-based multiplayer space game

This site uses Just the Docs, a documentation theme for Jekyll.