Skip to main content

The Combinatorial Equilibrium Modeling framework for COMPAS

Project description


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://zenodo.org/badge/107952684.svg :target: https://zenodo.org/badge/latestdoi/107952684 :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-fluid

The Combinatorial Equilibrium Modeling (CEM) <https://arxiv.org/abs/2111.02607>_ 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

  • Mix 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: 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. Do so efficiently using automatic differentiation and gradient-based optimization.

  • Usable across 3D modeling software and operating systems: is written in Python. It runs on Windows, MacOS and Linux (perhaps one day in the metaverse) 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 like Rhino, Blender, and Grasshopper. As a COMPAS_ 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 a Grasshopper_ person? Worry not. COMPAS CEM also ships as a precooked Grasshopper_ plugin so that you can readily integrate our constrained form-finding engine into your next spaghetti pipeline 🍝.

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

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

  • COMPAS 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 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>_.

Credits

COMPAS CEM is developed by Rafael Pastrana_ at Princeton, with the endorsement and support of Ole Ohlbrock, Pierluigi D'Acunto_ and Stefana Parascho_.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compas_cem-0.2.1.tar.gz (163.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compas_cem-0.2.1-py2.py3-none-any.whl (271.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file compas_cem-0.2.1.tar.gz.

File metadata

  • Download URL: compas_cem-0.2.1.tar.gz
  • Upload date:
  • Size: 163.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for compas_cem-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b82c6d3e701cc8521f7a1d76706229b9db7f237efb58d184fcae04aec5e7dc00
MD5 fa6876635e92b7a9bc6bc3a816cc3c15
BLAKE2b-256 d79a393d055571d72c99969c070a1d4fcb417a09e2207b50a6d26900406bb2f4

See more details on using hashes here.

File details

Details for the file compas_cem-0.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: compas_cem-0.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 271.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for compas_cem-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 048fcac07d438b6623f0ce598069039c65b54c85d612a4a25c51d3c72f0986a1
MD5 ff87d7b436d22dd168a6fa11290ced01
BLAKE2b-256 3ba845f2c7fa97448cd9012adc6011330808eae5076ee2095a148f8e4106f8bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page