Raw File
Tip revision: ff449f8805685122cd6192fd6e21eadae8d97a70 authored by David Jourdan on 26 February 2024, 19:02:51 UTC
remove unused
Tip revision: ff449f8
# Shrink & Morph: 3D-printed self-shaping shells actuated by a shape memory effect
David Jourdan, Pierre-Alexandre Hugron, Camille Schreck, Jonàs Martínez, and Sylvain Lefebvre
![Teaser image](data/teaser.png)

This repository contains the implementation associated with the paper "Shrink & Morph: 3D-printed self-shaping shells actuated by a shape memory effect"

## Installation instructions

Installation can be done using standard CMake routines. On a typical Linux/macOS machine, the following should work:
git clone
cd shrink-morph
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j $(nproc)
Provided that you have the necessary graphics packages installed (if not the case, see [here]( CMake will download the required dependencies and compile the executable.

## Optional dependencies 

These libraries can downloaded for better performance:
- [OR-Tools]( the path where the downloaded archive has been extracted should be specified in the ```${ORTOOLS_PATH}``` variable in ```CMakeLists.txt```.
- [MKL Pardiso](

## How to run
From the command line, specify which mesh file (stored in ```/data/```) should be opened. For example with ```beetle.obj```  simply run
build/shrink_morph beetle
For those who prefer to use a command-line version of a the app, use the ```shrink_morph_cli``` executable:
build/shrink_morph_cli mesh wD width nFmin
with ```mesh``` the name of the input mesh, ```wD``` the smoothing factor (0 by default), ```width``` the width of the flattened plate in mm, and ```nFmin``` the minimum number of faces in the input mesh (it gets iteratively subdivided until reaching this value). For example, to generate the same results as the ```hat``` model in the paper, type:
build/shrink_morph_cli hat 0.1 100 10000

To generate the final gcode files, use the script. Its inputs are the .path file generated by the app, the name of your printer (only a few a supported at moment), and optionally the name of the output file, here is an example:
python ../data/input_file.path Creality_K1_Max -o output_file.gcode

## Display layers with Matplotlib
To generate SVG files showing the trajectories similar to Figure 7 in the paper, runthe `````` script:
cd ../data/
python 1
python 10
back to top