🌊 Seastead Structural Design & Weight Estimation: Open-Source Software Stack

There is currently no single turnkey open-source application that automatically generates marine-grade truss structures, foil-shaped floats, and outputs detailed bills of materials with weight breakdowns. However, you can build a highly capable, parametric design pipeline using open-source Python/CAD libraries that run locally or on a web server.

πŸ› οΈ Recommended Open-Source Stack

ComponentToolRoleLicense
Parametric CAD & Weight CalculationCadQuery / Build123dGenerate truss, foils, living space, calculate volume/mass per part, export STEP/GLBBSD-3 / Apache-2
GUI AlternativeFreeCADVisual editing, FEM analysis, Arch/Ship workbenches, BOM exportLGPL-2.1
Hydrostatics & StabilityNEMOH + Python wrappersSmall-waterplane-area hydrostatics, wave response, stability metricsGPL-3
Data & ReportingPandas, Matplotlib, JupyterWeight tables, sensitivity analysis, design iteration trackingBSD / PSF
Web VisualizationThree.js + gltf_viewerBrowser-based 3D preview, lightweight interactionMIT

πŸ“ Parametric Workflow for Weight Estimation

  1. Define Inputs: Triangle footprint (80Γ—40 ft), truss spacing/material thickness, foil chord/span/lift distribution, living space dimensions, rail height.
  2. Generate Geometry: Script creates hollow extrusions for truss chords/webs, NACA foil extrusions for legs, roof/floor plates, and stabilizer mounts.
  3. Assign Material: Marine aluminum (5083-H321 or 6061-T6). Density β‰ˆ 2700 kg/mΒ³ (0.0975 lb/inΒ³).
  4. Calculate Mass: Volume Γ— Density Γ— Joint Efficiency (~0.85–0.90 for welded marine structures).
  5. Export BOM: Table with part name, material, volume, mass, estimated fabrication notes.
  6. Iterate: Adjust parameters β†’ re-run β†’ compare weight/stability trade-offs.

πŸ’» Example: CadQuery Weight Pipeline (Python)

import cadquery as cq
import pandas as pd

# === PARAMETERS ===
TRI_FRONT_BACK = 80 * 12  # inches
TRI_WIDTH = 40 * 12
TRUSS_SPACING = 24        # inches
WALL_THK = 0.25           # inches (marine 5083 plate)
FOIL_LEN = 19 * 12
FOIL_WIDTH = 3 * 12
FOIL_CHORD = 10 * 12
AL_DENSITY = 0.0975       # lb/inΒ³
JOINT_EFF = 0.88

# Helper: hollow rectangular truss member
def truss_member(length, width, height, thk):
    outer = cq.Workplane("XY").box(width, length, height)
    inner = cq.Workplane("XY").box(width-2*thk, length-2*thk, height-2*thk)
    return outer.cut(inner)

# Generate example: single truss edge + foil leg
bottom_edge = truss_member(TRI_WIDTH, TRI_WIDTH*0.05, 84, WALL_THK).translate((0, 0, 0))
foil_leg = (cq.Workplane("XY")
            .sketch()
            .parametricCurve(lambda t: (FOIL_CHORD*(1-cq.NACA4(0, 10, 20, 0).evaluate(t)[0]), 
                                       FOIL_CHORD*cq.NACA4(0, 10, 20, 0).evaluate(t)[1]))
            .extrude(FOIL_WIDTH)
            .translate((0, 0, -FOIL_LEN/2)))

# Combine assembly
assy = cq.Assembly()
assy.add(bottom_edge, name="Truss_Edge", loc=cq.Location((0,0,0)))
assy.add(foil_leg, name="Foil_Leg", loc=cq.Location((0, -TRI_WIDTH/2, -FOIL_LEN/2)))

# Weight Calculation
parts_data = []
for obj in assassy.solids():
    vol = obj.val().Volume()
    mass = vol * AL_DENSITY * JOINT_EFF
    parts_data.append({"Part": obj.name, "Volume_in3": round(vol,1), "Mass_lb": round(mass,1)})

df = pd.DataFrame(parts_data).sort_values("Mass_lb", ascending=False)
print(df)
print(f"\nTotal Estimated Mass: {df['Mass_lb'].sum():.1f} lb")
Tip: CadQuery's Solid.Volume() returns exact geometric volume. For realistic marine fabrication, add 5–10% for weld beads, brackets, gussets, and corrosion allowance.

🌐 Web Integration Guide

⚠️ Engineering Notes & Limitations

⚠️ Disclaimer: This pipeline generates geometric mass estimates only. Marine structural design requires certified naval architecture review, wave load analysis, corrosion planning, and compliance with ABYC/DNV/ISO 12215 standards.

πŸš€ Next Steps

  1. Install CadQuery: pip install cadquery
  2. Clone a starter template: CQ-Editor for interactive design
  3. Parameterize your triangle truss, foil legs, and living space module as Python classes
  4. Add a Pandas export β†’ auto-generate weight tables per design iteration
  5. Deploy via FastAPI + Three.js for browser access

With this stack, you can rapidly iterate seastead configurations, compare structural mass across foil/truss variants, and export fabrication-ready data entirely with open-source tools.