Constrained form-finding meets automatic differentiation.
Project description
compas_cem
Constrained form-finding meets automatic differentiation.
Getting Started
CEM is a geometric form-finding technique to create mixed tension-compression structures. This COMPAS package is developed by Rafael Pastrana at the CREATE Laboratory at Princeton University in collaboration Patrick Ole Ohlbrock and Pierluigi D'Acunto, from the Chair of Structural Design at ETH Zürich.
If you are curious about CEM's underpinnings, we refer you to these two excellent resources:
- The journal paper.
- The original Rhino/Grasshopper CEM implementation by Ole and Pierluigi.
Additionally, feel free to check the
examples to
get a first impression of what compas_cem
can do for you.
Installation
The preferred way to install compas_cem
is to build it from source in only five simple steps.
First, create a new conda
environment from your command line. The only
requirements are python
, compas
, and rtree
.
conda create -n cem python=3.7 COMPAS=0.16.2 rtree=0.9.4
conda activate cem
We need to fetch compas_cem
from this repository. Go to the folder where you want to store it and run the following. For example, if you are a macOS user and want to put it in the pre-existing ~/code/
folder:
cd ~/code/
git clone https://github.com/arpastrana/compas_cem.git
Next, Move into the the repository's folder (the one you've just cloned) and install compas_cem
using pip
:
cd compas_cem
pip install -e .
To double-check that everything is up and running, still in your command line interface, type the following and hit enter:
python -c "import compas_cem"
If no errors show up, celebrate 🎉! You have a working installation of compas_cem
.
Optional Dependencies
As a CAD-agnostic framework, COMPAS
has compas_viewers
, a standalone package to display 3d geometry from the command line. This is pretty
helpful when wanting to orbit and zoom around a form-found model without
resorting to a full-blown CAD software like Rhino
and Grasshopper.
Some of the examples presented depend on compas_viewers
to display the
resulting form-found structure. However, the viewers package is entirely
optional, and is not required for compas_cem
internals to work. If you are interested to, please follow the installation instructions provided
by the compas_viewers
repository.
Link to Rhino / Grasshopper
There will be times when modeling a complex structure is easier to do with a few
mouse-clicks instead of a hundred lines of code. COMPAS
enables connecting
compas_cem
to Rhino and
Grasshopper to access (almost) all of its
functionality from the inside.
To create the link, run the following snippet from the command line:
python -m compas_rhino.uninstall
python -m compas_rhino.install -p compas_cem compas_rhino compas_ghpython
Contributing
Pull requests are welcome!
Make sure to read our contribution
guide.
Please don't forget to run invoke test
in your command line before making a
pull request.
Issue tracker
If you find a bug or want to suggest a potential enhancement, please help us tackle it by filing a report.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file compas_cem-0.1.8.tar.gz
.
File metadata
- Download URL: compas_cem-0.1.8.tar.gz
- Upload date:
- Size: 43.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1044d674e44d10989662d0d8d607dd84a66dce1afe1652c3e44ff519a0e59ad1 |
|
MD5 | b3c01ed397c0c1878d0950c084bf5377 |
|
BLAKE2b-256 | 34f40d4957d382160837c9741a19fa705385f211654f13c01e25928005e47e04 |
File details
Details for the file compas_cem-0.1.8-py2.py3-none-any.whl
.
File metadata
- Download URL: compas_cem-0.1.8-py2.py3-none-any.whl
- Upload date:
- Size: 59.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef1e74e0b0f2c820f3c2fa382bb0f9f486b5b365b6231fc0b212d726ef38bcb7 |
|
MD5 | 65f7561d03f309c1984bb16802d72092 |
|
BLAKE2b-256 | 7de2a4293c852e79ac1c69b8d2efbd36e3cf76435519df15ad884277dc6f70ae |