optigami / research /origami /python_tools.md
sissississi's picture
go-back (#6)
e9b7141
# Python Libraries for Origami RL
## Origami-Specific
### rigid-origami (TOP PICK)
- **GitHub**: https://github.com/belalugaX/rigid-origami
- Gym environment for origami design as board game
- Has: PPO, MCTS, evolutionary, BFS, DFS agents
- Has: triangle-triangle intersection + kinematic validation
- Has: action masking, symmetry enforcement
- Output: PNG patterns, OBJ models, GIF animations
- Install: conda env + `pip install gym-rori`
### PyOri
- `pip3 install pyori`
- Graph-based crease pattern generation
- Huzita-Justin axiom implementation
- Flat-foldability checks
- FOLD + SVG export
- Dependencies: numpy, matplotlib, scipy
### FoldZ
- https://github.com/generic-github-user/FoldZ
- Early development, ambitious scope, not production-ready
## Supporting Libraries
| Library | What We Use It For |
|---------|-------------------|
| **numpy** | Core geometry, linear algebra |
| **scipy** | Constraint solving, optimization, spatial queries |
| **trimesh** | Mesh ops, collision detection, STL/OBJ I/O |
| **matplotlib** | 2D crease pattern visualization |
| **plotly** | 3D interactive visualization (Gradio-compatible) |
| **networkx** | Crease pattern graph analysis |
| **shapely** | 2D polygon operations, area calculations |
| **gymnasium** | RL environment API standard |
## Key Sources
- [Ghassaei Simulator](https://github.com/amandaghassaei/OrigamiSimulator) β€” MIT, JS/WebGL
- [FOLD format](https://github.com/edemaine/fold) β€” JSON standard
- [TreeMaker](https://langorigami.com/article/treemaker/) β€” crease pattern from tree diagrams
- [SWOMPS](https://github.com/zzhuyii/OrigamiSimulator) β€” MATLAB multi-physics reference
- [Tachi's tools](https://origami.c.u-tokyo.ac.jp/~tachi/software/) β€” foundational algorithms