Giter Site home page Giter Site logo

robin-oval / compas_cem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arpastrana/compas_cem

0.0 0.0 0.0 128.71 MB

Inverse design of 3D trusses via automatic differentiation.

Home Page: https://arpastrana.github.io/compas_cem

License: MIT License

Python 100.00%

compas_cem's Introduction

COMPAS CEM

Github Actions Build Status License PyPI Package latest release Python versions ArXiv paper Zenodo DOI Twitter follow
./docs/images/staircase_24_fps_128_colors.gif

The Combinatorial Equilibrium Modeling (CEM) 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 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 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 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 is also shipped as a precooked Grasshopper plugin to 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

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.

Questions and feedback

We encourage the use of the COMPAS framework forum for questions and discussions.

Contributing

Pull requests are warmly welcome! Check the Contributor's Guide for more details.

Citing

If you use COMPAS CEM for a project or research, please cite us using these references.

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

compas_cem's People

Contributors

arpastrana avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.