arpastrana / compas_cem

Inverse design of 3D truss networks with automatic differentiation
https://arpastrana.github.io/compas_cem
MIT License
36 stars 7 forks source link
architecture automatic-differentiation compas form-finding grasshopper optimization structural-design

COMPAS CEM


.. start-badges

.. image:: https://github.com/arpastrana/compas_cem/workflows/build/badge.svg :target: https://github.com/arpastrana/compas_cem/actions :alt: Github Actions Build Status

.. image:: https://img.shields.io/github/license/arpastrana/compas_cem.svg :target: https://github.com/arpastrana/compas_cem/blob/main/LICENSE :alt: License

.. image:: https://img.shields.io/pypi/v/compas-cem.svg :target: https://pypi.python.org/pypi/compas-cem :alt: PyPI Package latest release

.. image:: https://img.shields.io/pypi/pyversions/compas-cem :target: https://pypi.org/project/compas-cem :alt: Python versions

.. image:: https://img.shields.io/badge/arXiv-2111.02607-b31b1b.svg :target: https://arxiv.org/abs/2111.02607 :alt: ArXiv paper

.. image:: https://zenodo.org/badge/278780552.svg :target: https://zenodo.org/badge/latestdoi/278780552 :alt: Zenodo DOI

.. end-badges

.. _COMPAS: https://compas.dev/ .. _COMPAS CEM Docs: https://arpastrana.github.io/compas_cem/latest/index.html .. _CEM Framework: https://doi.org/10.1016/j.cad.2022.103435 .. _Rafael Pastrana: https://pastrana.xyz/ .. _Princeton: https://soa.princeton.edu/ .. _Ole Ohlbrock: https://schwartz.arch.ethz.ch/Team/patrickoleohlbrock.php?lan=en .. _Pierluigi D'Acunto: https://www.professoren.tum.de/en/dacunto-pierluigi .. _Stefana Parascho: https://people.epfl.ch/stefana.parascho?lang=en .. _Anaconda: https://www.anaconda.com/ .. _Rhino: https://www.rhino3d.com/ .. _Blender: https://www.blender.org/ .. _Grasshopper: https://grasshopper3d.com/ .. _metaverse: https://apnews.com/article/meta-facebook-explaining-the-metaverse-f57e01cd5739840945e89fd668b0fa27

.. figure:: ./docs/images/staircase_24_fps_128_colors.gif :figclass: figure :class: figure-img img-fluid

The Combinatorial Equilibrium Modeling (CEM) <https://doi.org/10.1016/j.cad.2022.103435> framework for COMPAS.

The CEM framework is a numerical form-finding approach to generate forms in static equilibrium for spatial bar structures subjected to combinations of tension-compression forces and design constraints. COMPAS CEM encapsulates the CEM framework into an open-source structural design tool that enables the formulation and the solution of constrained form-finding problems in plain and simple Python <https://www.python.org/>_ code.

Main features

Installation

These are succint instructions to install COMPAS CEM and its Grasshopper plugin. For detailed guidance, please refer to the COMPAS CEM Docs.

Install COMPAS CEM in a dedicated Anaconda_ environment via pip:

::

pip install compas-cem

To double-check that everything is up and running, type the following in the command line and hit enter:

::

python -c "import compas_cem"

If no errors show up, celebrate 🎉! You have a working installation of COMPAS CEM.

Grasshopper plugin

Warning: Note that Grasshopper_ plugin of COMPAS CEM is only supported in Rhino 6 and Rhino 7.

Once COMPAS CEM was installed from the comment line, we can additionally link it to Rhino and use it as Grasshopper plugin:

::

python -m compas_rhino.install -v 7.0

The flag -v 7.0 indicates that we will be installing COMPAS CEM and company in Rhino 7. If you are working with Rhino 6, replace that last bit with -v 6.0.

First steps

Are you a bug hunter?

If you find a bug or want to suggest a potential enhancement, please help us tackle it by filing a report <https://github.com/arpastrana/compas_cem/issues>_.

Questions and feedback

We encourage the use of the COMPAS framework forum <https://forum.compas-framework.org/>_ for questions and discussions.

Contributing

Pull requests are warmly welcome! Check the Contributor's Guide <https://github.com/arpastrana/compas_cem/blob/main/CONTRIBUTING.md>_ for more details.

Citing

If you use COMPAS CEM for a project or research, please cite us using these references <https://arpastrana.github.io/compas_cem/latest/citing.html>_.

Acknowledgements

This work has been supported in part by the U.S. National Science Foundation under grant OAC-2118201 and the NSF Institute for Data Driven Dynamical Design <https://www.mines.edu/id4>_.

License

MIT