A purely Python computational origami library for scientific studies

Authors

  • Pooja Thaker Science & Engineering Magnet Program, Manalapan High School

Keywords:

computational origami, languages, mesh, FOLD format, fold, rabbit ear, pyori, svg, graph, traversal, crease pattern

Abstract

Origami, traditionally an artistic endeavor, has evolved into a significant area of study within scientific concentrations such as genomics, materials science, and structural engineering. Computational tools like Rabbit Ear have facilitated the exploration of origami's mathematical properties; however, their utility in scientific research is limited due to their focus on creative coding and reliance on the JavaScript ecosystem. My research introduces PyOri, a novel Python library designed to bridge this gap by adapting the principles of computational origami for scientific studies. Developed as a pure Python package, PyOri ensures compatibility with a wide range of scientific computing environments and is available for installation via PyPI & pip. The library provides functionalities for modeling and visualizing origami structures, including graph-based crease pattern generation, conversion to SVG and FOLD formats, and interactive 3D visualization. By integrating with widely-used scientific Python libraries such as NumPy, SciPy, and PyTorch, PyOri offers a versatile platform for simulating and analyzing foldable structures in various scientific contexts.

PyOri employs the FOLD format, a mesh-based structure, to represent origami models, containing information on vertices, edges, faces, and interrelations. This format allows for detailed manipulation of origami structures, including the creation and traversal of crease pattern graphs. Users can convert these patterns into scalable vector graphics (SVG) and FOLD files for visualization purposes. The library supports interactive 3D visualization of origami at different stages of foldability, facilitating a comprehensive understanding of the folding process. Additionally, PyOri enables the creation of folds using foundational principles such as the Huzita–Justin axioms and includes functionality for conducting flat-foldability checks on crease pattern graphs. Future developments aim to incorporate advanced meshing techniques and mesh manipulation capabilities, further enhancing the library's applicability in scientific research. This work ultimately aims to bridge the gap between computational origami and scientific research, enabling the exploration of complex systems through the lens of foldable geometries and is published for use on pip & PyPI.

References

(“Kinematics of spatial linkages and its applications to rigid origami”)

(https://medium.com/analytics-vidhya/how-to-create-a-python-library-7d5aea80cc3f)

(https://packaging.python.org/en/latest/tutorials/packaging-projects/)

(https://rabbitear.org) - Rabbit Ear Docs

(Origami Simulator)

(https://github.com/edemaine/fold/tree/main) - Info on .fold file

(fold - npm) - Info on .fold file

https://erikdemaine.org/papers/FOLD_CGW2016/paper.pdf

Twists, Tilings, and Tessellations: Mathematical Methods for Geometric Origami -- by Robert J. Lang

Computational Origami: (https://langorigami.com/article/computational-origami/)

“A Computational Algorithm for Origami Design” (https://courses.csail.mit.edu/6.885/fall04/erik_notes/anydpi/L18_paper.pdf)

“Automating Rigid Origami Design” (https://arxiv.org/pdf/2211.13219)

(Many more)

Downloads

Published

2025-06-15

Data Availability Statement

GitHub, not public yet; to be published very soon but by the date of presentation

How to Cite

Thaker, P. (2025). A purely Python computational origami library for scientific studies. Journal of Science & Engineering , 1(9). http://34.172.72.90/index.php/jse/article/view/81

Similar Articles

1-10 of 18

You may also start an advanced similarity search for this article.