From computational-design-skills
Guides finite element analysis, form-finding methods, shell and gridshell structures, topology optimization, and computational tools for AEC structural design.
npx claudepluginhub amanbh997/claude-skills-for-computational-designersThis skill uses the workspace's default tool permissions.
Structure is not an afterthought applied to a completed form. In the computational paradigm, structure **is** form. The geometry of a building, a bridge, a canopy -- each is a direct expression of the forces acting upon it. When we allow force to generate geometry rather than merely verifying geometry against force, we unlock an entirely different class of architectural expression: one that is ...
Delivers foundational paradigms like parametric and generative design, pioneers, tools landscape, core concepts, and skill routing for AEC computational design tasks. Auto-activates on detection.
Analyzes tensegrity systems: identifies compression struts and tension cables, classifies types (class 1/2, biological/architectural), computes prestress equilibrium, verifies stability via Maxwell's criterion, maps cytoskeletal elements.
Provides structural systems knowledge for architects including typology selection, grid design, lateral stability, foundations, span-to-depth ratios, load paths, and decision frameworks by span, height, program, cost, speed, sustainability.
Share bugs, ideas, or general feedback.
Structure is not an afterthought applied to a completed form. In the computational paradigm, structure is form. The geometry of a building, a bridge, a canopy -- each is a direct expression of the forces acting upon it. When we allow force to generate geometry rather than merely verifying geometry against force, we unlock an entirely different class of architectural expression: one that is simultaneously more efficient, more beautiful, and more materially honest.
This represents a fundamental epistemological shift: from analysis-after-design to analysis-as-design. The former treats structure as a constraint to be checked; the latter treats structure as a generative engine. In computational structural design, the distinction between "architect" and "engineer" dissolves. The designer works directly with force, curvature, material flow, and stress trajectories as primary design media.
Performance-driven geometry emerges when structural performance metrics (stress utilization, deflection, weight, embodied carbon) become the objective functions of a generative process. The designer defines boundary conditions, loads, material palettes, and performance targets. The computation produces geometry. This is not a loss of authorship -- it is an expansion of the design space far beyond what manual intuition can explore.
Key principles of performance-driven geometry:
Finite Element Analysis (FEA) discretizes a continuous structure into a mesh of finite-sized elements, each governed by simple constitutive equations. By assembling element stiffness matrices into a global system, FEA solves for displacements, from which strains and stresses are derived. FEA is the universal method for structural verification in AEC.
| Element Type | Dimensionality | DOF per Node | Captures | Typical Use |
|---|---|---|---|---|
| Truss | 1D (axial only) | 2 (2D) or 3 (3D) translations | Axial force only | Trusses, cables, bracing |
| Beam | 1D (axial + bending) | 6 (3 translations, 3 rotations) | Axial, shear, bending, torsion | Frames, columns, beams |
| Shell | 2D (membrane + bending) | 5-6 per node | In-plane + out-of-plane | Floors, walls, shells, slabs |
| Plate | 2D (bending only) | 3 (1 translation, 2 rotations) | Out-of-plane bending | Floor slabs |
| Solid | 3D | 3 translations | Full 3D stress state | Connections, nodes, foundations |
| Cable | 1D (tension only) | 3 translations | Tension, large displacements | Cables, tendons |
| Spring | 0D/1D | variable | Stiffness in specific DOFs | Supports, connections |
Structural FEA meshes differ fundamentally from visualization/rendering meshes:
| Type | Translation | Rotation | Symbol | Physical Example |
|---|---|---|---|---|
| Fixed (Encastre) | Restrained all | Restrained all | Triangle filled | Moment-resisting base plate |
| Pinned | Restrained all | Free all | Triangle open | Pin connection, ball joint |
| Roller | Free in 1 dir, restrained in others | Free all | Circle on line | Expansion bearing |
| Spring | Elastic (k) | Elastic (k_r) | Zigzag | Soil springs, flexible supports |
| Symmetry | Free parallel, restrained normal | Free about normal, restrained about parallel | Dashed line | Half-model symmetry plane |
Structural design requires checking multiple load combinations per code. Key combinations:
See references/fea-fundamentals.md for complete load combination tables with psi factors.
The fundamental FEA equation: [K]{u} = {F} where [K] is the global stiffness matrix (assembled from element stiffness matrices), {u} is the displacement vector (unknowns), and {F} is the force vector. The system is solved for {u}, from which strains and stresses are derived.
Key element stiffness matrices (truss: EA/L terms; beam: EI/L^3 terms; shell: Et and Et^3/(12(1-nu^2)) terms) are derived and tabulated in references/fea-fundamentals.md.
references/fea-fundamentals.md for complete deflection limits table.| Quantity | SI | Imperial |
|---|---|---|
| Force | kN | kip (= 1000 lb) |
| Stress | MPa (= N/mm^2) | ksi (= 1000 psi) |
| Moment | kN.m | kip.ft |
| Distributed load | kN/m | kip/ft |
| Young's modulus | GPa | ksi |
Full units table and cross-section property tables in references/fea-fundamentals.md.
Form-finding discovers structural geometry in static equilibrium under given loads, producing shapes that carry load through membrane action (tension or compression) rather than bending. These funicular forms are inherently material-efficient.
A freely hanging chain adopts a catenary curve y(x) = a*cosh(x/a) where a = H/w. Inverting gives a pure compression arch. For uniform horizontal load, the shape is parabolic y = wx^2/(2H). Only valid for a single load case -- changing load changes the funicular shape.
Assigns a force-density ratio q = F/L to each element, linearizing the equilibrium equations (Schek, 1974): [C^T * diag(q) * C] * {x} = {p_x} - [C_f^T * diag(q_f)] * {x_f}. Linear system = direct solution, no iteration, guaranteed equilibrium. Force densities are prescribed (not forces), requiring experience to choose meaningful q-distributions. Best for cable nets, membranes, tensile canopies. See references/form-finding-methods.md for full derivation and worked example.
A fictitious dynamic system oscillates under applied loads with artificial damping until static equilibrium is reached. Algorithm: initialize positions -> compute internal forces -> compute residuals -> update velocities with damping -> update positions -> check convergence (kinetic energy or residual force < tolerance) -> iterate.
Kinetic damping (Barnes, 1988) is the standard method: reset all velocities to zero when total kinetic energy peaks. Extremely robust, no parameter tuning. Time step must satisfy Courant condition: dt < sqrt(2*m_min/k_max). Best for cable nets, membranes, inflatables, gridshells. See references/form-finding-methods.md for pseudocode and damping strategies.
Block's method (2009) finds compression-only funicular surfaces using reciprocal force diagrams. A form diagram (horizontal projection of the network) has a dual force diagram where edge lengths represent horizontal force magnitudes. Vertical coordinates are solved from equilibrium. Scaling the force diagram changes the rise-to-span ratio without breaking the compression-only constraint.
Applications: unreinforced masonry vaults, stone shells, tile vaulting, 3D-printed compression structures. Software: RhinoVAULT, RV2, compas_tna. See references/form-finding-methods.md for reciprocal diagram theory.
Principle: Structural elements are represented as particles (nodes with mass) connected by springs (elements with stiffness). Loads, constraints, and geometric objectives are expressed as "goals" that apply forces to particles. The solver iteratively moves particles toward equilibrium.
Kangaroo 2 (Daniel Piker) uses a position-based dynamics approach:
Common goal types:
Best for: Interactive form-finding, real-time feedback, multi-physics simulation (structure + fabrication constraints simultaneously), educational exploration.
Definition: A minimal surface has zero mean curvature (H = 0) at every point. Equivalently, it locally minimizes surface area for a given boundary. Soap films naturally form minimal surfaces.
Mathematical characterization: Mean curvature H = (kappa_1 + kappa_2) / 2 = 0, where kappa_1 and kappa_2 are principal curvatures. This means the surface curves equally in opposite directions at every point (anticlastic geometry).
Classical minimal surfaces:
Triply periodic minimal surfaces (TPMS):
Structural implications: Minimal surfaces carry uniform tension under uniform pressure. They are structurally efficient for membrane structures (tents, canopies) but require edge cables or rigid boundaries to anchor the tension field.
| Method | Speed | Accuracy | Geometric Freedom | Tool Availability | Best For |
|---|---|---|---|---|---|
| Hanging chain | Fast | Exact (catenary) | Low (2D curves) | Physical models, Python | Arches, cables |
| Force Density | Very fast | Good (equilibrium exact) | Medium (network topology) | Python, compas | Cable nets, membranes |
| Dynamic Relaxation | Medium | High | High (any topology) | Kangaroo, custom code | Shells, gridshells, inflatables |
| TNA | Medium | High (compression-only) | Medium-High | RhinoVAULT, compas_tna | Masonry vaults, stone shells |
| Particle-Spring | Fast (interactive) | Good | Very high | Kangaroo 2 (GH) | Conceptual design, mixed goals |
| Minimal Surface | Varies | Exact (H=0) | Low (boundary-driven) | Kangaroo, Evolver, MATLAB | Tensile canopies, TPMS |
| Type | Gaussian Curvature K | Principal Curvatures | Examples |
|---|---|---|---|
| Synclastic | K > 0 (positive) | Same sign (both up or both down) | Dome, elliptic paraboloid |
| Anticlastic | K < 0 (negative) | Opposite signs | Hyperbolic paraboloid (hypar), saddle |
| Developable | K = 0 | One curvature is zero | Cylinder, cone, tangent surface |
| Free-form | Variable K | Varying | Irregular blobs, organic shells |
Membrane theory assumes the shell is so thin that it carries load purely through in-plane forces (N_x, N_y, N_xy) with no bending moments. Valid when:
Bending theory (general shell theory) includes both membrane and bending actions. Required when:
Thin shells are extremely sensitive to buckling. The classical critical buckling pressure for a sphere under uniform external pressure is:
p_cr = 2E / sqrt(3(1-nu^2)) * (t/R)^2
However, real shells buckle at 15-50% of the classical prediction due to geometric imperfections. Knockdown factors are essential:
Shell thickness can vary spatially to match structural demand:
A fundamental principle of shell design: curvature provides stiffness. A flat plate of thickness t has bending stiffness D = Et^3/[12(1-nu^2)]. A curved shell of the same thickness resists load primarily through membrane action, with effective stiffness proportional to Et (not Et^3). This means a shell can be dramatically thinner than a flat plate spanning the same distance.
When a pure shell is insufficient (due to buckling, openings, or concentrated loads), stiffening is added:
| Designer | Project | Year | Span | Thickness | Material | Innovation |
|---|---|---|---|---|---|---|
| Felix Candela | Los Manantiales | 1958 | 30m | 40mm | RC | Hypar intersections |
| Pier Luigi Nervi | Palazzetto dello Sport | 1957 | 59m | ~25mm (ribs) | RC | Ferrocement prefab ribs |
| Heinz Isler | Deitingen Service Station | 1968 | 32m | 90mm | RC | Hanging model form-finding |
| Eladio Dieste | Church of Christ the Worker | 1958 | 16m | 120mm | Brick | Gaussian curvature brick |
| Cecil Balmond | Serpentine Pavilion (w/ Ito) | 2002 | 18m | - | Steel | Algorithmic pattern |
| SANAA | Rolex Learning Center | 2010 | 166x121m | varies | RC | Free-form continuous shell |
| BIG | Amager Bakke (CopenHill) | 2019 | - | - | Steel/aluminum | Facade as shell |
| Zaha Hadid | Al Janoub Stadium | 2019 | - | - | Steel/PTFE | Operable roof shell |
A gridshell is a structure with the shape and stiffness of a double-curved shell but made from a grid of linear elements (beams or laths) rather than a continuous surface. The grid carries load through a combination of membrane action (in-plane forces) and bending in individual elements.
Single-layer gridshells: One layer of beams. Structurally efficient when the form is funicular. Susceptible to buckling due to low bending stiffness in the normal direction. Requires in-plane bracing (diagonal cables or rods) to resist shear.
Double-layer (or multi-layer) gridshells: Two layers of beams separated by a core depth, connected by diagonal bracing or shear connectors. Much stiffer and more stable. Better for non-funicular or asymmetric loading.
The defining innovation: a flat grid of flexible laths is assembled on the ground and then pushed/pulled into a doubly-curved shape. The laths bend elastically to accommodate the curvature. Once in shape, the grid is braced and the structure is stiff.
Process:
Key constraint: The lath material must accommodate the maximum bending strain without failure. For timber laths: epsilon_max = t / (2R_min) < epsilon_allow. This limits the minimum radius of curvature for a given lath thickness.
Material choices: Timber (oak, larch, bamboo), GFRP rods, steel tubes (for larger radii).
Beam elements are fabricated straight (or pre-bent to match local curvature) and assembled on scaffolding in the final curved shape. Connections are moment-rigid or pin-connected.
The node is the critical detail -- it must transfer forces between converging members while accommodating geometric complexity and remaining economically fabricable.
Connection types: Slotted plate nodes (simple, economical for orthogonal grids), cast steel nodes (3D-printed or investment-cast for complex geometry), bolted steel plates (adjustable, tolerance-forgiving), laminated timber finger joints (CNC-cut for all-timber gridshells), 3D-printed metal nodes (topology-optimized, SLM/DMLS, minimum material), and proprietary systems (MERO/KK ball joints for space frames).
Single-layer gridshells require in-plane shear stiffness (bracing) to resist asymmetric loads:
For glazed gridshells, quadrilateral panels must be planar or near-planar (tolerance: < L/500 to L/1000 of panel diagonal). Strategies:
| Project | Year | Span | Material | Type | Designers |
|---|---|---|---|---|---|
| Mannheim Multihalle | 1975 | 60x60m | Timber laths | Elastic | Frei Otto, Mutschler |
| British Museum Great Court | 2000 | 73x96m | Steel + glass | Rigid | Foster + Partners, Buro Happold |
| Japan Pavilion (Hannover) | 2000 | 73x25m | Cardboard tubes | Elastic | Shigeru Ban |
| Downland Gridshell | 2002 | 50x16m | Oak laths | Elastic | Edward Cullinan, Buro Happold |
| Savill Garden | 2006 | 25m | Timber laths | Elastic | Glenn Howells, Buro Happold |
| Yas Hotel | 2009 | 217m length | Steel | Rigid | Asymptote, Schlaich |
| Chadstone Shopping Centre | 2016 | 190x55m | Steel + glass | Rigid | CallisonRTKL |
Topology optimization determines the optimal distribution of material within a design domain to maximize or minimize an objective function subject to constraints. Unlike sizing optimization (which changes member sizes) or shape optimization (which moves boundaries), topology optimization can create entirely new topologies -- holes, branches, and connections that were not present in the initial design.
The most widely used topology optimization method in AEC.
Design variable: Element pseudo-density rho_e in [0, 1] where 0 = void and 1 = solid.
Penalized stiffness: E_e = rho_e^p * E_0 where p is the penalization factor (typically p = 3). The penalization drives intermediate densities toward 0 or 1, producing a clear solid/void result.
Objective: Minimize compliance (= maximize global stiffness):
min C = {F}^T {u} = sum(rho_e^p * u_e^T * k_e * u_e)
Subject to:
[K(rho)]{u} = {F} (equilibrium)
V = sum(rho_e * v_e) <= V_target (volume constraint)
0 < rho_min <= rho_e <= 1 (bounds)
Solution: Sensitivity analysis (dC/d_rho_e) via adjoint method, followed by optimality criteria (OC) update or Method of Moving Asymptotes (MMA).
Represents the material boundary as the zero-level contour of a level-set function phi(x). phi > 0 = solid, phi < 0 = void. The boundary evolves by solving a Hamilton-Jacobi equation driven by shape sensitivities.
Advantages: Crisp boundaries (no intermediate densities). Natural for manufacturing. Disadvantages: Cannot easily nucleate new holes (requires seeding). More complex to implement.
ESO (Xie and Steven, 1993): Iteratively removes elements with the lowest stress or strain energy density. Simple but can get stuck in local optima.
BESO (Bi-directional ESO): Allows both removal and addition of elements. More robust than ESO. Uses sensitivity filtering and stabilization.
Advantages: Simple to implement. Produces clear 0/1 solutions. Disadvantages: Heuristic (no formal convergence proof for ESO). Can produce mesh-dependent results without filtering.
Starts with a highly connected truss network (the "ground structure") spanning the design domain. Optimization removes members with zero or near-zero force, leaving the optimal truss topology. Produces discrete, fabricable structures directly.
Best for: Long-span roof trusses, bridges, tower structures.
Setting up a topology optimization problem requires careful definition of:
Without filtering, topology optimization produces checkerboard patterns (alternating solid/void elements) and mesh-dependent results (different meshes give different topologies).
The standard SIMP penalization p = 3 works well for stiffness-based optimization:
Continuation approach: Start with p = 1 and gradually increase to p = 3 over iterations. Improves convergence and can find better optima.
Raw topology optimization output requires post-processing:
2D optimization is used for:
3D optimization is used for:
| Tool | Platform | Method | 2D/3D | Cost | Notes |
|---|---|---|---|---|---|
| Millipede | Grasshopper | SIMP-like | 2D + 3D | Free | Fast, good GH integration |
| Ameba | Grasshopper | BESO | 2D + 3D | Free | Clear results, slower |
| TopOpt | Web (DTU) | SIMP | 2D | Free | Educational, interactive |
| TOSCA | Abaqus (Dassault) | SIMP, Level-set | 3D | Expensive | Industrial, validated |
| Altair Inspire | Standalone | SIMP (OptiStruct) | 3D | Expensive | Intuitive GUI, mfg constraints |
| nTopology | Standalone | Lattice + TO | 3D | Expensive | Lattice infill, AM-ready |
| ANSYS Topology | ANSYS | SIMP | 3D | Expensive | Integrated with ANSYS FEA |
| Property | Steel (S355) | Concrete (C40/50) | Timber (GL28h) | Aluminum (6061-T6) | GFRP | CFRP | Bamboo |
|---|---|---|---|---|---|---|---|
| E (GPa) | 210 | 35 | 12.6 (parallel) | 69 | 25-40 | 70-150 | 15-20 |
| f_y (MPa) | 355 | - | - | 275 | - | - | - |
| f_u (MPa) | 510 | - | - | 310 | 400-800 | 600-2000 | 100-200 |
| f_c (MPa) | - | 40 | 28 | - | 150-250 | 500-1500 | 40-80 |
| f_t (MPa) | 355 | 3.5 | 22.3 | 275 | 400-800 | 600-2000 | 100-200 |
| f_b (MPa) | 355 | - | 28 | 275 | 250-500 | 600-1500 | 80-150 |
| Density (kg/m^3) | 7850 | 2500 | 410 | 2700 | 1800-2100 | 1500-1600 | 600-800 |
| Poisson's ratio | 0.30 | 0.20 | 0.35 (major) | 0.33 | 0.25-0.35 | 0.25-0.30 | 0.30 |
| alpha (10^-6/C) | 12 | 10 | 5 (parallel) | 23 | 6-10 | -1 to 2 | 3-5 |
Timber: Strongly anisotropic. Properties differ along grain (longitudinal), across grain (radial), and tangential directions. E_L : E_R : E_T is approximately 20 : 1.6 : 1. Computational models must account for grain direction. CLT (Cross-Laminated Timber) alternates grain direction for quasi-isotropic behavior in-plane.
Fiber composites (GFRP, CFRP): Properties depend on fiber orientation. Unidirectional laminates are strongly anisotropic. Quasi-isotropic layups ([0/+45/-45/90]s) provide balanced in-plane properties but are weaker than aligned laminates in any single direction. Classical Laminate Theory (CLT -- confusingly same acronym) governs composite analysis.
Masonry: Anisotropic due to mortar joints. Different stiffness and strength along bed joints vs. head joints vs. diagonal. Homogenized masonry models treat the assembly as an equivalent anisotropic continuum.
When two materials act together (steel-concrete beams, timber-concrete floors), transformed section analysis converts to an equivalent single-material section using modular ratio n = E_1/E_2 (full composite). Partial composite action (interface slip) is modeled with interface springs. Shear connectors (headed studs, screws) transfer horizontal shear.
| Material | Strength/Weight (f/rho, kN.m/kg) | Stiffness/Weight (E/rho, MN.m/kg) | Embodied Carbon (kgCO2e/kg) |
|---|---|---|---|
| Steel S355 | 45 | 27 | 1.5-2.5 |
| Concrete C40 | 16 (compression) | 14 | 0.1-0.2 |
| Timber GL28h | 68 | 31 | -1.0 to 0.5 |
| Aluminum 6061 | 102 | 26 | 8.0-12.0 |
| CFRP | 400-1300 | 47-100 | 20-30 |
| Bamboo | 130-250 | 20-30 | 0.5-2.0 |
Timber and bamboo are exceptional: high strength-to-weight, low-to-negative embodied carbon. CFRP is phenomenal structurally but carries enormous environmental cost. Steel and concrete are the workhorses with moderate efficiency.
Emerging paradigm of spatially varying material properties:
Capabilities: Real-time FEA within Grasshopper. Beam and shell elements. Linear and second-order analysis. Cross-section optimization. Utilization checking. Eigen-frequency and buckling analysis. Large deformation analysis (geometrically nonlinear).
Limitations: No material nonlinearity (no concrete cracking, no steel yielding). No dynamic time-history analysis. Not a code-checking tool (no automatic Eurocode/ASCE capacity checks -- requires manual setup). Accuracy depends on mesh quality.
Integration: Fully embedded in Grasshopper. Takes Rhino geometry (lines, meshes) as input. Outputs displaced shapes, stress results, utilization ratios as colored meshes. Connects to Octopus, Galapagos, Wallacei for optimization.
Learning curve: Moderate. Structural concepts required. Well-documented with tutorials.
Typical workflow: Define geometry (lines/mesh) -> assign cross-sections -> define supports -> apply loads -> assemble model -> analyze -> read results -> iterate/optimize.
Capabilities: Interactive particle-spring solver. Form-finding (cable nets, membranes, inflatables, shells, gridshells). Multi-physics simulation (structural + fabrication constraints simultaneously). Real-time manipulation. Custom goal creation via C# scripting.
Limitations: Not a verified FEA tool. Cannot produce code-compliant stress results. Approximate stiffness (no rigorous element formulations). Not suitable for final structural verification.
Integration: Native Grasshopper component. Kangaroo 2 is the current version (position-based dynamics). Works with any mesh or line network. Combined with Weaverbird, Mesh+, Lunchbox for mesh processing.
Learning curve: Low-to-moderate. Very intuitive for form-finding. Advanced use (custom goals, coupled simulations) requires deeper understanding.
Typical workflow: Create mesh/network -> assign goals (springs, loads, anchors, constraints) -> run solver -> extract equilibrium geometry -> refine.
Capabilities: Topology optimization (2D and 3D SIMP-like method). FEA for 2D and 3D solid domains. Iso-surface extraction (marching cubes). Very fast computation using parallelized C++ backend.
Limitations: Limited to voxel-based analysis (regular grid). No beam or shell elements. Mesh refinement limited by voxel resolution and RAM. Limited post-processing tools.
Integration: Grasshopper plugin. Outputs iso-surfaces or voxel densities. Can be combined with Weaverbird for mesh smoothing, Dendro for SDF operations.
Learning curve: Low for basic topology optimization. Understanding of FEA fundamentals needed for meaningful results.
Typical workflow: Define domain (box) -> set resolution -> apply loads and supports -> define volume fraction -> run optimization -> extract iso-surface -> smooth -> verify.
Capabilities: BESO-based topology optimization. Clear black/white results (no gray elements). 2D and 3D. Multiple load cases. Displacement constraints. Stress visualization.
Limitations: Slower than Millipede (BESO is iterative FEA, not sensitivity-based). Can be mesh-sensitive. Limited to linear elastic analysis.
Integration: Grasshopper plugin. Similar workflow to Millipede but with BESO algorithm.
Learning curve: Low-to-moderate. Good documentation.
Professional-grade FEA with full linear/nonlinear analysis, seismic (response spectrum, time-history, pushover), and automated code-based design checks (Eurocode, ASCE, ACI, AISC). GUI-centric but has OAPI for scripted automation (C#, VB, Python via COM). Grasshopper links via Geometry Gym. ETABS is building-specific; SAP2000 is general-purpose. High learning curve.
Professional FEA with excellent shell/solid capabilities and extensive code-checking modules (steel, concrete, timber per Eurocode, ASCE, DIN). Built-in topology optimization and form-finding. Grasshopper link via parametric_FEM-Toolbox. Python API (RFEM 6). IFC/Revit integration. Expensive per-module licensing.
Specialized for bridges and complex structures. Parametric input language (CADINP) for scripted models. Excellent nonlinear and construction-stage analysis. Grasshopper interface available. Very high learning curve but unmatched for bridge engineering.
General-purpose FEA with steel/concrete/timber design. Direct bidirectional Revit link. Cloud analysis. Dynamo scripting. Less capable than SAP2000/RFEM for advanced nonlinear/seismic analysis but well-priced for Autodesk subscribers.
| Feature | Karamba3D | Kangaroo | Millipede | SAP2000 | RFEM | SOFiSTiK | Robot |
|---|---|---|---|---|---|---|---|
| Early design | Excellent | Excellent | Good | Poor | Fair | Poor | Fair |
| Form-finding | Good | Excellent | - | Fair | Good | Good | - |
| Topology opt | - | - | Excellent | - | Good | - | - |
| Code checking | Manual | - | - | Excellent | Excellent | Excellent | Good |
| Seismic | Basic | - | - | Excellent | Excellent | Good | Good |
| Parametric | Excellent | Excellent | Good | Via API | Via API/GH | Via CADINP | Via Dynamo |
| Real-time | Yes | Yes | Near | No | No | No | No |
| Cost | ~800 EUR | Free | Free | ~5000 USD | ~3000 EUR | ~5000 EUR | Subscription |
Problem: Planar truss spanning 12m, central point load 100 kN, depth limited to 3m. Minimize weight in S355 steel.
Tool chain: Grasshopper + Karamba3D + Galapagos
Setup: Ground structure (7x3 node grid, fully connected) -> pin/roller supports -> cross-section areas as design variables (100-5000 mm^2) -> minimize total weight -> stress constraint (fy = 355 MPa) + Euler buckling check.
Result: Optimal topology resembles a Warren truss with ~45-degree diagonals. Members with near-zero area removed. Total weight 60-70% of initial. Verify: all utilization ratios < 1.0, max deflection < L/250 = 48mm.
Problem: Compression-only dome, circular boundary R = 15m, concrete shell t = 100mm.
Tool chain: Rhino + Grasshopper + Kangaroo Physics
Setup: Flat triangulated mesh (~500 faces) -> Anchor goals (boundary at z=0, strength 10000) -> Load goals (self-weight per tributary area) -> Length goals (force density q controls rise) -> run solver to convergence.
Key parameter: Force density q controls rise-to-span. Higher q = shallower dome. Iterate to achieve desired rise (e.g., 7.5m). The funicular shape under self-weight approximates a catenary of revolution.
Verification: Karamba3D shell analysis confirms dominant membrane compression, utilization < 0.3. Eigenvalue buckling safety factor > 5. Ring beam sized for horizontal thrust H = wR^2/(2z).
Problem: Steel node connecting four tubes at spatial angles. Minimize weight for 3D printing.
Tool chain: Grasshopper + Millipede
Setup: 400mm cube design domain -> non-design cylinders at tube entries (50mm solid for welding) -> 3 load cases (gravity, wind, uplift) with weights (0.5, 0.3, 0.2) -> volume fraction 15% -> resolution 80^3 voxels -> filter radius 3 voxels -> p = 3.
Result: Material concentrates along principal stress paths (organic, bone-like branching). Extract iso-surface at threshold 0.3-0.5, smooth with Taubin smoothing. Verify: max von Mises < fy/1.5 = 237 MPa. Export STL for SLM/DMLS printing. Weight saving: 40-75% vs. conventional welded node.