Hey look at that! Code that can virtually fold origami? Say hello to Rabbit Ear.
What’s all this now?
The goal of it being a creative coding framework is to provide a sturdy and general technical backend for the prospect of a variety of expressions of origami software, calculators, and design tools.
Artists have demonstrated numerous times now that software can be built, it would be
Other origami software?
What makes Rabbit Ear different:
- It doesn’t do one thing, like how Treemaker makes uniaxial bases, it’s a general purpose design tool.
- The goal is to immerse the user inside the analog world of origami, not to replace the designer.
- I noticed that UI and UX aren’t often given budgets in academic software. Good design makes software accessible, inclusive, and in this case can better introduce origami to newcomers.
🍭 It’s free 🎉 open source 🔬 and extendable 🔮
inside a crease pattern file
If you see issues with the numbers in the image above, you’re not alone. Vector images are saved by storing their endpoint locations, x,y. I’d like us to imagine a crease pattern file which isn’t a vector image, but rather one that stores a computer program, a set of codes for an interpreter, and the folding sequence can be performed.
The kite base
Take a simple example: there are six points involved in the crease pattern of the kite base, the four corners and the two bisector endpoints, lying at 0.585786437627 along the unit square
If we store the operations that made those lines, instead of the numbers, it’s like storing
- the vectors instead of the raster
- the recipe instead of the food
- the sheet music instead of a recording
and just like music, a performance allows freedom for interpretation, creating a new conversation around what makes a good performance.
Kite base in code
// crease the first line, the diagonal, save it var diagonal = cp.crease(0, 0, 1, 1) // locate the two edges var leftEdge = cp.nearest(1, 0.5).edge var bottomEdge = cp.nearest(0.5, 1).edge // perform axiom #3, bring a line to a line cp.creaseEdgeToEdge(leftEdge, diagonal) cp.creaseEdgeToEdge(bottomEdge, diagonal)
shrink the API until it reads like the language used by two people folding origami together.
If a fold sequence is abstracted, it can be re-applied in unconventional ways and new contexts.
Diagrams are a huge labor for origami artists. If the folding sequence is codified, diagrams can be auto-generated.
I’m excited to see where this future takes us.