/developable-prostheses

Source code release for the paper "Developable Metamaterials: Mass-fabricable Metamaterials by Laser-Cutting Elastic Structures"

Primary LanguageC++

Developable Prostheses

Project

This research project build on the structures initially presented at ACM CHI 2021: Project page, Paper

Building the program(s)

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebugInfo
make

Make sure to pull all dependencies:

 git submodule update --init --recursive

Running the Binaries

This project contains multiple binaries to test or demonstrate different aspects of the code:

TODO: please edit this as you see fit

  • ruffles_debug_strip.cpp: for finding material properties. simulates a flat strip clamped at the left side. can set bending stiffness k_B manually and simulate the deflection in Y direction. intended to cut paper strip and have it bend under gravity, measure deflection and use this to match the deflection, thereby finding k_B for the simulation. see Discrete Shells and the Madlaina's Thesis for more details.

  • ruffles_test_springiness.cpp: recreates the test case from the technical evaluation that is compared to the simulation in our previous CHI'21 Paper (Figure 21).

  • ruffles_debug_optimization.cpp: Shape optimization: step through heuristic optimization to fill a 2D shape. current test case is a square. also includes densify operations.

  • ruffles_debug_ruffle.cpp: this currently shows the ruffle in an arch shape, probably to shows how to manually set ruffle by defining section lengths. currently set to the arc ruffle. has simulation, densify, etc. as well.

  • ruffles_editor.cpp: editor used in paper, allows loading 3D model, apply cutting planes to get polylines, should have all simulation capabilities.

  • [your binary]: briefly describe what it does.

Dependencies

TODO: add detail, links, etc

  • libigl
  • L-BFGS

Building on previous works (relevant readings)

  • Our CHI'21 Paper: project page, paper
  • Madlaina's Thesis on gdrive, contains a few more implementation details
  • Discrete Shells, used for "paper" simulation: paper
  • Air Meshes, used to avoid self-intersections: paper, video