Skip to content

moro3one/origami-stl-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Origami STL Generator

Crease pattern (SVG / FOLD) → STL sheet with living hinges → 3D-print flat → fold by hand into a 3D origami shape.


Concept

INPUT:  Crease pattern (mathematical model of an origami fold)
           ↓
PROCESS: Generator converts fold lines into living hinges in a 3D model
           ↓
OUTPUT: STL of a flat sheet with V-grooves on every fold line
           ↓
PRINT:  Print the flat sheet (no supports needed)
           ↓
FOLD:   Fold along the lines → 3D origami shape in PLA / PETG

Living hinge — technical principle

Rigid panel        [thickness 1.5–2.0 mm]
    |
Fold line          [thickness 0.4–0.8 mm, width 1–2 mm]   ← living hinge
    |
Rigid panel        [thickness 1.5–2.0 mm]

Mountain fold  → V-groove on the bottom face
Valley fold    → V-groove on the top face
Bidirectional  → grooves on both faces (neutral fold)

Recommended materials:
  PETG — best for living hinges (flexible, durable)
  PLA  — works, but cracks at small bend radii
  TPU  — most flexible, but holds a folded shape worst

You will need to dial in panel_thickness, hinge_thickness and groove_width for your printer / nozzle / material combo. Start with the values above and iterate.


Reference projects worth reading

Project URL Why it matters
OrigamiSimulator github.com/amandaghassaei/OrigamiSimulator WebGL simulator + STL/OBJ export of folded state
FOLD format github.com/edemaine/fold Standard JSON format for crease patterns
rigid-origami github.com/belalugaX/rigid-origami Python: automatic generation of rigid crease patterns
origami-printing ealitt.github.io/origami-printing Image → SVG → 3D model with living hinges
Flexifier printables.com/model/505713 Generator for flexi print-in-place models
CurvedCreases github.com/amandaghassaei/CurvedCreases Curved-fold patterns
Oriedita oriedita.github.io GUI editor for crease patterns

Suggested reading order:

  1. OrigamiSimulator — already exports STL, fastest way to validate end-to-end
  2. FOLD format — understand the data model for crease patterns
  3. rigid-origami — Python library for procedurally generated patterns

Tech stack

Language:    Python 3.10+
3D mesh:     trimesh or numpy-stl
Geometry:    numpy, shapely (2D ops)
CAD:         OpenSCAD (parametric models via Python API)
Format in:   SVG (crease pattern) or FOLD (JSON)
Format out:  STL

Optional:
  - svgpathtools  → parse SVG fold lines
  - ezdxf         → DXF export (e.g. for laser cutting)

Project layout

origami-stl-generator/
├── README.md              ← this file
├── crease_to_stl.py       ← main generator
├── living_hinge.py        ← living-hinge parameter module
├── fold_parser.py         ← FOLD format parser
├── svg_parser.py          ← SVG crease-pattern parser
├── models/
│   ├── basic_fold.fold    ← test: single fold line
│   ├── waterbomb.fold     ← waterbomb base
│   └── crane.fold         ← crane (full model)
├── output/
│   └── *.stl              ← generated files
└── tests/
    └── test_generator.py

Quick start

# 1. Install deps
pip install trimesh numpy shapely svgpathtools

# 2. Reference reading
git clone https://github.com/amandaghassaei/OrigamiSimulator
git clone https://github.com/edemaine/fold

# 3. Calibration print
#    Print a 60×60 mm tile with a single fold line down the middle:
#      panel_thickness = 1.5 mm
#      hinge_thickness = 0.4 mm
#      groove_width    = 1.0 mm
#      material        = PETG (or PLA)
#    Bend until it cracks → record the minimum bend radius.
#    Use that to calibrate your real prints.

License

MIT.

About

Crease pattern (SVG/FOLD) to STL with living hinges — print flat, fold as paper into 3D origami shape. Python + math.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages