gramaziokohler / integral_timber_joints

Robotic Assembled Timber Structures with Integral Timber Joints
MIT License
9 stars 0 forks source link
270 clamps python timber

integral_timber_joints

compas compas_fab

Python library for designing timber structures with integral timber joints.

This repo is part of the Robotic Assembled Timber Structures with Integral Timber Joints project.

Design Goals

The goal of the python library is to be able to achieve the following high-level functions:

Installation (library)

Conda environment (optional)

Create a new environment with python 3.7 and install this package in the new environment

conda create --name itj python=3.7
conda activate itj

One of the dependency from compas is planarity, which depends of cython. You will need to install this manually:

pip install cython --install-option="--no-cython-compile"

or

conda install cython

Clone and update submodules

Install this library from source by cloning this repo to local and install from source.

git clone --recursive https://github.com/gramaziokohler/integral_timber_joints.git
cd integral_timber_joints

The --recursive flag when cloning above is used for initializing all the git submodules. You can learn more about submodules here.

Later in the development, whenever you need to update the submodules, issue the following:

git submodule update --init --recursive

Install libraries

Run this the following in terminal from the root folder of this repo. All libraries are installed from source (in the editable mode).

# Install the submodule libraries from source
pip install -e .\external\compas
pip install -e .\external\compas_fab
pip install -e .\external\compas_fab_pychoreo

# install `integral_timber_joints` from source 
pip install -e .

# Run the following code add the python library paths to Rhino / Grasshopper:
python -m compas_rhino.install -p compas compas_fab compas_ghpython roslibpy compas_rhino jsonpickle integral_timber_joints geometric_blocking

Alternatively if development is intended you can install with developer tools:

# replace `pip install -e .` above with
pip install -r requirements-dev.txt
invoke add-to-rhino

⚠ when used in rhino, please start the RPC proxy beforehand by: compas_rpc start

Python dependencies, explained

The following python dependency are installed in the above process. See requirements.txt for more info on the specific versions pinned.

The following libraries are installed "automatically" (via pip or conda, learn about their difference here)

The CGAL bindings are best installed from conda: conda install -c conda-forge cgal. Otherwise, you have to be brave enough to build from source following instructions here.

The following two libraries are installed manually from git submodules, to better keep track of our development cycles:

Installation (external software dependency)

Install the following software:

Module Structure

See this markdown file regarding the organization of the code and how it relates to dependency and compas core libraries.

Sequence and Motion Planning

See this file for instructions on running the planning.

Credits

This repository was created by Pok Yin Victor Leung (leung@arch.ethz.ch) @yck011522 at @gramaziokohler, with the help of other contributors.