This is the codebase for FabHacks: Transform Everyday Objects into Home Hacks Leveraging a Solver-aided DSL. Please expect there to be bugs/issues and let me know as you encounter them.
Related repository: Primitive Tagging
- Install dependencies (described below)
- Activate the fabhacks conda environment:
conda activate fabhacks - Install the fabhacks package:
pip install -e . - Setup the OpenSCAD path by setting the environmental variable
OPENSCAD_EXEC, e.g.export OPENSCAD_EXEC=path_to_openscad. Preferably add to terminal profiles like.bash_profile - Test with the viewer program:
python ui/viewer.py
This code is in Python and depends on openscad.
It'd be best to set up a separate Python environment using miniforge.
Use the command below to create a conda environment (tested with py38).
conda create --name=fabhacks python=3.8
conda activate fabhacks
Check that pip is installed using conda list. Then install the packages with
pip install -e .
python -m pip install numpy
python -m pip install importlib-resources
python -m pip install scipy
python -m pip install solidpython
python -m pip install libigl
python -m pip install dill
python -m pip install networkx
python -m pip install ete3
python -m pip install six
python -m pip install xxhash
conda install -c conda-forge scikit-sparse
conda install pyopengl (needed for running explorer)
python -m pip install pillow (needed for running explorer)
For polyscope, please clone this fork with ImageButton bindings for running the explorer.py UI, and install that version with python -m pip install -e .. If not intending to use explorer, feel free to do python -m pip install polyscope.