gcs is a Python library for creating generalized cylindrical shells (GCS).
GCS are parameterized by 11 values:
| Syntax | Description |
|---|---|
c4_base |
The parameter controlling the size and shape of the base |
c8_base |
The parameter controlling the size and shape of the base |
c4_top |
The parameter controlling the size and shape of the top |
c8_top |
The parameter controlling the size and shape of the top |
twist_linear |
The rotation (rad) of the top. This creates a linear twist between the base and top. |
twist_amplitude |
The amplitude (rad) of the oscillating twist between the base and top. |
twist_cycles |
The number of cycles of the oscillating twist between the base and top. |
perimeter_ratio |
The ratio between the top and base perimeters. |
height |
The height (mm). |
mass |
The mass (g). |
thickness |
The wall thickness (mm). |
- Adopted from Overvelde and Bertoldi, 2014
gcs requires Python version 3.8 (or higher). To install, run the command:
pip install gcs-shape- bentley-ottmann (version: 7.3.0)
- mapbox_earcut (version: 1.0.0 or higher)
- numpy (version: 1.21.5 or higher)
- numpy-stl (version: 2.17.1 or higher)
- pandas (version: 1.4.1 or higher)
- scipy (version: 1.7.3 or higher)
gcs is operating system independent. The package has been tested on the following operating systems:
- MacOS Ventura 13.4.1
- Ubuntu 22.04
- Windows 10
import gcs
# Create a generalized cylindrical shell
shape = gcs.GCS(c4_base=0.3,
c8_base=-0.2,
c4_top=0.4,
c8_top=-0.3,
twist_linear=2,
twist_amplitude=0.05,
twist_cycles=3,
perimeter_ratio=1.5,
height=20,
mass=2.1,
thickness=0.48)
# Assert the shape is valid
print(shape.valid)
# Save shape to STL file
gcs.io.save_mesh(file='shape.stl', shape=shape)The contribution guidelines can be found in CONTRIBUTING.md.
@article{Snapp:2024:SuperlativeMechanicalEnergy,
author={Snapp, Kelsey L. and Verdier, Benjamin and Gongora, Aldair E. and Silverman, Samuel and Adesiji, Adedire D. and Morgan, Elise F. and Lawton, Timothy J. and Whiting, Emily and Brown, Keith A.},
title={Superlative mechanical energy absorbing efficiency discovered through self-driving lab-human partnership},
journal={Nature Communications},
year={2024},
month={May},
day={21},
volume={15},
number={1},
pages={4290},
issn={2041-1723},
doi={10.1038/s41467-024-48534-4},
url={https://doi.org/10.1038/s41467-024-48534-4}
}

