bull moose
flight of folds
euthysanius beetle
acoma pot
artist

Origami Simulation

Background

Screen shot of the simulation
Screen shot of the Origami Simulation, showing the toolbar and the initial display of a square of paper.

In the 1980s, I made the acquaintance of Jacobo (Jack) Fastag, a graduate student like myself who was interested in exploring the interactions between computers and origami. We both had hit upon the idea of exploring the ability to simulate origami folding on a computer, and each set out to write our own origami simulator. He worked on a PC; I, having recently acquired a Macintosh for purposes of origami diagramming, did my programming on and for my Mac SE.

The idea of the simulator was that one could manipulate a sheet of paper on-screen using mouse and keyboard, and we'd try to have the screen image of the paper display what the paper would be doing if we performed the analogous actions on a real sheet of paper.

Over several years, we each worked on our respective simulators. I eventually got mine to the point that I could carry out basic mountain and valley folds, turn the paper over, rotate it in the plane of the paper, and so forth: what is now called "Pureland Origami" (a name and concept coined by John Smith back in the 1970s). By the early 1990s, though, job, family, and other origami endeavors had pushed my project into the background, and I haven't worked on it since.

However, it still runs (rather amazingly, considering the evolution in the Mac OS since 1992), albeit under Mac Classic mode (and therefore won't run on Intel Macs), and for those who are interested in seeing how an origami simulator might work, I'm putting up both the executable and the original source code here.

Description

Screen shot of the simulation
Screen shot of the Origami Simulation after one fold has been performed by dragging the top left corner to the bottom edge of the paper.

Origami Simulation is a program that simulates the folding of a sheet of paper on-screen. You select tools from a tear-off menu bar to perform valley folds, mountain folds, rotations, turn-overs, etc. Using the mouse, you can "grab" a corner or edge, and drag it to a position; when you release the mouse, you can watch the fold happening in animation. In this way, you can define a sequence of folding actions; using Undo and Redo, you can unfold and refold the paper.

Origami Simulation was written in Object Pascal for the Mac OS, using Lightspeed's THINK Pascal and the THINK Class Library. Since this was a personal project, there is no documentation; you'll just have to experiment with the interface to find out what all the program can do.

Downloads

Rights of usage: you may compile this code and modifications thereof for your own personal use. You may use the executables on your own computer. Alas, you may not redistribute the code or modifications thereof. You are of course welcome (and legally entitled) to utilize the algorithms and mathematical concepts upon which the code is built. If you have a usage in mind that involves some form of redistribution, Contact me with your desired usage and we'll talk about what you have in mind.

Here are downloads for the application and source code in .sit (Stuffit) format, which is a Mac archive format that, among other things, preserves the resource fork data. The source code includes both Object Pascal source code and build files, including the resource data files. It will only run on a PowerPC Mac in Classic mode.

You can also download the source code as a .zip archive, but since the .zip format doesn't support resource forks, it doesn't contain any resource fork data. There's no .zip application download because the application wouldn't work without its resource fork.

The good news is that this software is free and can be used and modified by anyone. The bad news is, there is no warranty of fitness, usability, etc. It may crash your computer (consider that it hasn't been updated for nearly two decades). Use it at your own risk. But I do hope that it works out for you, and if you get some use out of it, drop me a note and let me know how you're using it.

Other Languages