Hello, Rabbit Ear

Hey look at that! Code that can virtually fold origami? Say hello to Rabbit Ear.

ray fold

What’s all this now?

This is a creative coding library, like Processing or Open Frameworks. It’s not an application, but it can be used to build apps. Check out some examples:

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?

Did you know there’s origami software? TreeMaker (‘94), Oripa (‘05), Tess (‘05), and Origamizer (‘08), and those are just the design oriented ones.

What makes Rabbit Ear different:

  1. It’s Javascript which means any computer can run it (Mac, PC, Linux, Chromebook), it runs in the browser.
  2. It doesn’t do one thing, like how Treemaker makes uniaxial bases, it’s a general purpose design tool.
  3. The goal is to immerse the user inside the analog world of origami, not to replace the designer.
  4. 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 🔮

open file

fold file

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

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.

J.S. Bach's Invention 4

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)

That’s a lot of Javascript, perhaps difficult for people who don’t yet know code. But herein is the goal:

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.


download Rabbit Ear