Skip to content

gcs is a Python library for generating 3D meshes of generalized cylindrical shells.

License

Notifications You must be signed in to change notification settings

bu-shapelab/gcs

Repository files navigation

Explore the Docs Report a Bug Request a Feature Read the Paper

gcs is a Python library for creating generalized cylindrical shells (GCS).

GCS examples

GCS are parameterized by 11 values:

Syntax Description
c4_base The parameter controlling the size and shape of the base $4$-lobe feature.
c8_base The parameter controlling the size and shape of the base $8$-lobe feature.
c4_top The parameter controlling the size and shape of the top $4$-lobe feature.
c8_top The parameter controlling the size and shape of the top $8$-lobe feature.
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).

c4 and c8 Relationship

c4 & c8 relationship

twist_linear, twist_amplitude, and twist_cycles Relationship

twist relationship

Download

gcs requires Python version 3.8 (or higher). To install, run the command:

pip install gcs-shape

Requirements

Supported Operating Systems

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

Quickstart

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)

Contributing

The contribution guidelines can be found in CONTRIBUTING.md.

Maintainers

Citation

@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}
}

About

gcs is a Python library for generating 3D meshes of generalized cylindrical shells.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages