This WebGL app simulates how any origami crease pattern will fold. It may look a little different from what you typically think of as "origami" - rather than folding paper in a set of sequential steps, this simulation attempts to fold every crease simultaneously. It does this by iteratively solving for small displacements in the geometry of an initially flat sheet due to forces exerted by creases. It calculates the geometry of folded or partially folded origami using a dynamic, GPU-accelerated solver; the solver extends work from the papers Origami Folding: A Structural Engineering Approach and Freeform Variations of Origami. It also supports an immersive, interactive VR mode using WebVR. More information about the solver and the app can be found in the accompanying paper.
Live demo here, code on Github.
The Origami Simulator lets you simulate how any crease pattern will fold in 3D. Try it here.
Folding a traditional crane in one step in the Origami Simulator.
Crease patterns are uploaded into the app in SVG or FOLD formats. SVG crease patterns use color and opacity to set the direction and final fold angle of each crease. These patterns are triangulated and modeled as pin-jointed truss networks with additional angular constraints in the solver. At each step of the simulation, the displacements of nodes in the origami are calculated and used to update the visualization.
This app uses a compliant dynamic simulation method to solve for the geometry of an origami pattern at a given fold angle. The simulation sets up several types of constraints: distance constraints prevent the sheet from stretching or compressing, and angular constraints fold or flatten the sheet. Each of these constraints is weighted by a stiffness - the stiffer the constraint, the better it is enforced in the simulation.
Cauchy strain or engineering strain is a unitless measurement of how much a material is being stretched or compressed under load. The app can be put into a strain visualization mode that illustrates the strain across an origami sheet by mapping it to a color from blue (no strain) to red (max strain). Visualizing strain gives a sense of how much the distance constraints in the origami pattern are being violated (i.e. how much the sheet is being stretched). The strain at each vertex is evaluated by averaging the percent deviation of all its distance constraints with adjacent vertices. This deviation is reported as a percent of the total length of the distance constraint to remove scaling effects.
Strain map of folding waterbomb tessellation. The pattern tends to curl to minimize internal strain in the material.
Six-Pointed Hypar variant with strain map. This model was triangulated in an alternating asymmetric hinge triangulation based on the paper (Non)existence of Pleated Folds: How Paper Folds Between Creases.
Direct interaction with a Huffman Waterbomb tessellation in virtual reality. This app connects to virtual reality hardware via the WebVR api. In this mode, you can visualize the mesh folding in 3D and interact with it directly. Grab the mesh with both hands to see how it moves and watch internal strain propagate through the model. A longer VR demo video is on YouTube.
Typically, origami patterns are made from many straight creases, but by using curved creases it's possible to create more organic forms. Curved creases are simulated in the app by discretizing them into many small, straight segments - according to the paper Curved Folding.
Harmonics of a circular pleat origami, eventually resting in a low frequency configuration.
Kirigami is a variation on origami that incorporates cuts into a folding pattern. Many "popup" patterns used in cards or books are examples of kirigami. Green lines in crease patterns are treated as cuts when imported into the app. Left is a crease pattern for a Miyamoto Tower by Happy Folding, middle and right are popup designs by Popupology.