Package: compas-cem
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.. image::https://img.shields.io/twitter/follow/compas_dev?style=social:target:https://twitter.com/compas_dev:alt: Twitter follow.. end-badges.. _COMPAS:https://compas.dev/.. _COMPAS CEM Docs:https://arpastrana.github.io/compas_cem/latest/index.html.. _CEM Framework:https://arxiv.org/abs/2111.02607.. _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://soa.princeton.edu/content/stefana-parascho.. _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-fluidTheCombinatorial Equilibrium Modeling (CEM) <https://arxiv.org/abs/2111.02607>_ framework forCOMPAS_.TheCEM 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 CEMencapsulates theCEM framework_ into an open-source structural design tool that enables the formulation and the solution of constrained form-finding problems in plain and simplePython <https://www.python.org/>_ code.Main featuresMix tension and compression forces:Explore a wider spectrum of structural typologies by combining internal tension and compression forces in the same structure. Design space frames, bridges, tensegrities, and staircases and go beyond the conventional catalog of compression-only shells and cable-nets!Solve constrained form-finding problems efficiently via automatic differentiation:Generate forms in static equilibrium that simultaneously meet a priori design constraints such as best-fitting a global target shape, restraining bar lengths, and controlling the reaction forces at the supports of a structure.Usable across different 3D modeling software and operating systems:COMPAS CEM runs on Windows, MacOS and Linux (perhaps one day in themetaverse) and it does not depend on any CAD software to work. However, it provides the necessary interfaces to be seamlessly used inside popular design environments likeRhino,Blender, andGrasshopper. As aCOMPAS_ extension, COMPAS CEM offers native integration and data exchange with other extensions and plugins in the COMPAS ecosystem.Move those sliders with the Grasshopper plugin:Are you aGrasshopper_ person? Worry not. COMPAS CEM is also shipped as a precooked Grasshopper plugin to readily integrate our constrained form-finding engine into your next spaghetti pipeline 🍝.InstallationThese are succint instructions to installCOMPAS CEMand itsGrasshopper_ plugin.
For detailed guidance, please refer to theCOMPAS CEM Docs_.InstallCOMPAS CEMin a dedicatedAnaconda_ environment viapip:::pip install compas-cemTo 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 ofCOMPAS CEM.Grasshopper pluginOnceCOMPAS CEMwas installed from the comment line, we can additionally link it toRhino_ and use it asGrasshopper_ plugin:::python -m compas_rhino.install -v 7.0The flag-v 7.0indicates that we will be installingCOMPAS CEMand company in Rhino 7. If you are working with Rhino 6, replace that last bit with-v 6.0.First stepsCOMPAS CEM Docs_COMPAS CEM Examples <https://arpastrana.github.io/compas_cem/latest/examples.html>_COMPAS CEM API Reference <https://arpastrana.github.io/compas_cem/latest/api.html>_COMPAS Tutorials <https://compas.dev/compas/latest/tutorial.html>_COMPAS API Reference <https://compas.dev/compas/latest/api.html>_Are you a bug hunter?If you find a bug or want to suggest a potential enhancement,
please help us tackle it by filing areport <https://github.com/arpastrana/compas_cem/issues>_.Questions and feedbackWe encourage the use of theCOMPAS framework forum <https://forum.compas-framework.org/>_ for questions and discussions.ContributingPull requests are warmly welcome! Check theContributor's Guide <https://github.com/arpastrana/compas_cem/blob/main/CONTRIBUTING.md>_
for more details.CitingIf you useCOMPAS CEMfor a project or research, please cite us using thesereferences <https://arpastrana.github.io/compas_cem/latest/citing.html>_.AcknowledgementsThis work has been supported in part by the U.S. National Science Foundation under grant OAC-2118201 and theNSF Institute for Data Driven Dynamical Design <https://www.mines.edu/id4>_.LicenseMIT