(by jakobl)
Flatworm is a python module and GHPython implementation for generating rigidly foldable quadrilateral meshes (RFQM) in Grasshopper.
Support Email

Flatworms are colorful free swimming ocean worms, that in accordance with their name, are flat! Similarly, atleast in terms of flatness, Flatworm is a GHPython implementation of the pure-python module RFQM.py for generating 'rigidly foldable quadrilateral meshes' (RFQM) in Grasshopper, that are flat foldbale! Such meshes may be used to create complex and flexible structures out of rigid materials, as no mesh face is ever deformed in the folding process.
Flatworm provides basic means of generating custom RFQMs as well as the famous Miura Ori fold pattern. Meshes are generated from four lists of angle arrays, describing the direction angles and fold angles for two sides of the mesh respectivly. The 'direction angle' is the ccw angle between the fold line and x-axis in xy-plane, while the 'fold angle' is the angle between the faces on either side of the crease in the fully folded state of the mesh.

The project is structured around a pure-python core module (RFQM.py) with only minimal Rhino/Grasshopper dependencies. While this decision may slow the geometrical calculations it makes the module portable, and our hopes are that the RFQM-module can live a cross-platform life of its own! We welcome you do develop your own integrations of it while urging you to keep it portable and free of dependencies!

The module is based on an algorithm by by Robert J. Lang and Larry Howell from the article 'Rigidly Foldable Quadrilateral Meshes from Angle Arrays' published 2018 in the 'Journal of Machanisms and Robotics'.

Installation notes

  1. Unzip and copy/move the entire Flatworm directory to your UserObjects directory. Usually (on windows) C:\Users\your_username\Appdata\Roaming\Grasshopper\UserObjects
  2. If your UserObjects directory is located elsewhere, you'll need to adjust the path string within the nodes accordingly.
  3. In case of emergency, send me an email and we'll sort it out ;)


Developed by Jakob Lilliemarck for Tengbom - https://tengbom.se/