Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Truss-sizing data provenance

Ground structure and loads

The 18-node lattice, 75-member distance cutoff, supports, node-motion bounds, load nodes, force cases, holdout settlement, and optimization budgets are synthetic tutorial data authored for this repository. They are not copied from a building project and do not represent an approved structural design.

The deterministic generator in src/ground.rs is authoritative. Tests freeze the node, candidate-member, movable-node, and baseline-member counts.

Circular hollow sections

The twelve names use nominal diameter/thickness combinations representative of the EN 10210 circular-hollow-section family. Public background sources:

Only the nominal outer diameter and wall thickness enter this tutorial. src/catalogue.rs computes the ideal circular properties:

inner diameter d = D − 2t
area A            = π(D² − d²) / 4
second moment I   = π(D⁴ − d⁴) / 64
radius r          = sqrt(I/A)
linear mass       = 7850 A

These idealized values may differ from product tables because the tutorial does not model dimensional tolerance or manufacturer conventions. sections.csv is regenerated by the Rust binary and every row is checked for r = sqrt(I/A).

Material and carbon assumptions

Young’s modulus 210 GPa, density 7,850 kg/m³, and the educational allowable stress 215 MPa are frozen model assumptions. They are not a material certificate or an implementation of Eurocode resistance rules.

The 1.70 kg CO2e/kg carbon multiplier is deliberately labelled indicative in source, CSV, JSON, plots, and prose. It is synthetic, is not an Environmental Product Declaration, and must be replaced by verified project-specific data before environmental comparison.

Generated evidence

All files under results/publication/ were generated by:

cargo run --release --locked -- \
  --mode all --preset publication --workers 0 \
  --output results/publication

All files under images/ were rendered from those artifacts by plot_results.py. The script’s --check mode regenerates every SVG in a temporary directory and requires byte-for-byte identity.