Skip to content

About

FEM and neural-network surrogate framework for the preliminary design of bio-based 3D-printed gridshells. MSc thesis, Politecnico di Torino

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Bio-based 3D-printed gridshells

Code and results for my MSc thesis at Politecnico di Torino: A Computational Framework for Bio-Based 3D-Printed Gridshells using FEM and Neural-Network Surrogates.

Islam Yerzhanuly · Civil Engineering · 2025–2026
Supervisors: Cecilia Surace and Marco Civera.

The project combines a spatial-frame finite element model, a simplified PLA creep model, linearised buckling and neural-network surrogates. The surrogate screens designs, and direct FEM analysis checks the selected candidate. A separate study compares analytical and force-density geometries; the appendix explores four parametric shape modes.

Contents

Folder Contents
src/ Material, geometry, load, FEM, creep, buckling and surrogate modules
notebooks/ Main analysis and corrected appendix notebooks
scripts/ Ablations, form-finding, shape studies and figure generation
data/ Compact datasets, trained models and reported metrics
results/ Form-finding screen and full-resolution validation tables
verification/ Solver benchmarks and checks of appendix numbers

The thesis, presentation and local review notes are kept separately from this code repository. Generated plots, caches and the large FEM training archive are excluded.

Setup

Use Python 3.11. From the repository folder:

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
jupyter lab

On Windows, activate with .venv\Scripts\activate. Start with notebooks/03_pavilion_baseline_staticv2.ipynb for the reference analysis. Notebook kernels must start in notebooks/, since their paths are relative to that folder.

Reproduce the analysis

Run notebooks 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 for the main analysis. Notebook 07 regenerates data/07_dataset_full.npz, needed by notebooks 08 and 09. This large file is not included in Git.

For Chapter 7, run from the repository folder:

python scripts/compare_form_finding.py
python scripts/validate_form_finding.py

The appendix's corrected candidate comparison is in notebooks/15_closed_loop_design.ipynb. Other studies and their inputs are listed in scripts/README.md. The ablation scripts can rebuild FEM cases from the compact parameter CSV when the large archive is absent. Full dataset generation and training take longer than reading the stored results.

Verification

python verification/verify_solver.py
python verification/verify_appendix_numbers.py ../thesis_tex/chapters/appendix_shape_mode.tex

The second command needs the thesis source supplied separately. It checks 60 appendix claims against the stored data.

Reference pavilion: 550 nodes, 1521 members, 85 supports; peak deflection 10.9932 mm, peak beam stress 4.9693 MPa, mass 502.97 kg, initial buckling factor 7.5983, and one-year creep multiplier 1.402302.

Scope and data

This is a preliminary linear structural model for a sustained symmetric load. It does not establish construction safety or include imperfections, nonlinear collapse, experimental creep calibration, or all fabrication effects. Stress is a comparative beam-level indicator and depends on member layout.

data/README.md explains the numerical conventions and historical comparisons. data/PROVENANCE.md records the source of each result, including five summaries without a standalone writer. The preserved historical comparisons cannot all be regenerated from the corrected solver alone.

Citation and licence

Citation metadata is in CITATION.cff. Code and generated data retain the existing MIT licence. The PLA material card is attributed to Li, Xu and Fang (2024), DOI 10.1016/j.tws.2024.111800.

About

FEM and neural-network surrogate framework for the preliminary design of bio-based 3D-printed gridshells. MSc thesis, Politecnico di Torino

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages