Origami Polyhedra Design

My friend John Montroll has a new book out, called Origami Polyhedra Design. It’s been in the works for quite a while and is a real tour de force. Congratulations John! This is his third book on origami polyhedra, and his first for the publisher A. K. Peters. (They publish a bunch of origami books including Robert’s ODS, and the Proceedings from the 3OSME Conference, which contains a paper by yours truly.) Unlike most origami polyhedra, which are modular, John’s are always from a single square sheet. This a challenging and rigorous style to fold in.

In a change from John’s usual style, this book is much thicker, almost 300 pages, and divided into three major sections. The first is a wealth of theory including general principles, design techniques and consideration, and methods for dividing into nths, for finding angles, folding various polygons, and other related topics. This is really good stuff. The second section of the book is devoted to a variety of models related to the Platonic Solids, including color-change and sunken variations. Totally awesome. The third section is Dipyramid models. This a particular specialty of John’s and there is a great variety of dipyramids with different proportions and number of facets, and a chapter of really cool dimpled (semi-sunken) dipyramids.

All in all the book is really quite amazing, and really takes origami polyhedra design to the next level. And while it is a real Magnum Opus, John has enough unpublished polyhedra to form the basis of anther book, so I hope this one does well and a sequel materializes.

John asked me to fold a few of the models pictured on the cover. I must say it’s very nice looking cover, with the model well arranged and photographed. John’s site is not yet updated to list the new book, and if you go to order it on Amazon there is no cover image yet. So I was taking some pictures of my models for the upcoming PCOC origami convention in San Francisco, and thought I’d share a shot of John’s book while I’m at it. (I know the lizard there doesn’t strictly fit with the theme, but it reminded me of an Escher print and I thought it looked cool.)

Origami Site Update

I’ve made a number of updates to my Origami Site. I’ve added new photos for my Moose, Elephant, Baluchitherium and Bears. I’ve also added a few new models including my War Elephant, Castle, and accompanying explorations, and added a new section for Origami Architecture. This is a substantial step forward for my origami site. I have a few models still for which I want to fold and photograph an exhibit-quality model, and beyond that breaking the list of models down to be browsable by category and year.

Enjoy!

Megafauna Origami

As mentioned previously I made some megafauna origami models to donate to the American Museum of Natural History for their annual origami holiday tree. I did three models this year: a moose, an elephant and a bear. All three are made out of large paper and therefore quite big. The moose is made from a 32” square of brown parcel wrap, which was the biggest usable piece I could find. I tried making an elephant out of the same stuff, but I had the idea of wrinkling and then flattening the paper first to give it an elephant hide texture. The paper ended up with a slightly strethcy, almost clothlike consistency. The model is just one layer thick over the whole back, so it came out way to floppy. A very interesting failure. I’ll have to keep the technique in mind for the future. I made another elephant out of a 24” square of Canson, which is a thick art paper and very good for making elephants. Lastly I made the bear out of 15” Tant. I’m quite pleased with how all three came out and I hope the museum will use them well.

As an bonus I am including a pic of a funny little are project Lizzy and Michelle undertook not to long ago. They started making origami boats out of Masu boxes, and then put them together on top of corks.

Fall Groove

Well it’s more of the same over here. Nonstop busy. Work work work, making Jack a dull boy. My job situation with the clueless manager seems to have sorted itself out at least. The fall has come. Leaf raking season is upon us, although I expect I’ll still have to mow the lawn one more time. It’s getting darker and colder. We have to turn the heat on every night these days. Starting to get up before the sky is fully light. Ugh. And it’s no longer light or warm enough to go skating in the evening when I get home from work. So I’ve switched to using the Nordic Track indoors, which is not as much fun but I can listen to music while I’m doing it, so it gives me a chance to listen to the mixes from my record. Continuing to chip away at that, thank you very much.

I did some cool origami stuff. I made some “megafauna” models to donate to the American Museum of Natural History for their holiday tree. More on that soon. I’ll take some pictures tomorrow in the daylight. I’ve also started diagramming my Medieval Dragon. It starts with dividing the paper into ninths, which is something I always used to eyeball, but for the diagrams I worked out how to do it the legit mathematical way, which is pretty cool.

Jeannie and celebrated out Crytsal anniversary last week (I looked it up). It was a school night and so we did laundry and helped the kids study. Ah, married life after 15 years. We did meet for lunch in the city and go to a nice Thai place called Yum Yum. Afterwards we went to Toys’R’Us in Times Square and I bought her a lego dwarven catapult.

Denis and Sarah came to visit last weekend. We all had lots of fun. Carrie and Michelle always get on great and little Anna is walking already. Saturday Mary’s all came over and Jeannie’s parents too. Jeannie made a fantastic dinner for sixteen people. Chicken parmesan, eggplant parmesan and pasta. I was surprised to discover we had enough tables and chairs for everyone to eat once.

Fall Down, Part II

Seems that this is the time of year for work in progress. Here’s an update on a bunch of project. You can skip it if you find it boring.

My job has entered a new planning cycle. I’m trying to figure out how to deal with a manager who’s making it difficult for me to accomplish what I need to do. I want to moving forward with a major new feature set of my product, and he’s not getting it together to provide me with usable requirements. I working on him to see that it’s in his best interest to let me take over some things, but he is reluctant to give up control even though he’s spread too thin.

In music, I’ve been finishing off my album Face The Heat. I updated the page, including links to the newest mixes. I’m in the final phase, really focused on the details of the mixes now. Probably one or two pass at each song remains, but I find after I do a mix I have to take a few days and listen to it.

But in the sense that I want to finish my record to make time for origami, so far it’s kinda backfired. I have a trip coming up to California next month for the Pacific Coast Origami Conference, and I’d like to have something new for that. I took the summer off from working on my book, but now I have to get back into it. Last winter I was in a groove of diagramming over a model a month, but that’s a pretty heavy pace. So far this fall I made some corrections to my Lizard and began diagramming my Medieval Dragon, which will be probably over 70 steps! I also have a bunch of models in development, including some insects: a new butterfly, a dragonfly, and maybe another crack at the ladybug. And then there’s the batch from June that need further refining: the Blimp, the Sphere and the Orb UFO. So I’ve been doing some origami, just not as much as I’d like. Ah well I still have a month.

I’ve also made progress on the Foldinator, my origami software. It is now generating the paper procedurally using the drawing API. Also I‘ve defined the various lines weights and colors the application needs. I have a bit further to go before I release the next demo, however. I want to draw the initial state of the paper based on what it says in the xml file for the model. This requires a bit of plumbing so that the paper is aware when the model is loaded. After that I will probably go on to the non-folding operations, namely flipping and rotating the paper.

I’ve realized that I am long overdue in updating my origami site with pictures of my 2009 models. The web site redesign is probably far enough along that I should shift gears and take care of this before carrying on with that. The photography and photoshop is a whole little project in itself. While I’m at it, I should update my general photo gallery with pictures from the summer before it gets too far behind.

Foldinator 2 Build 2

Development of Foldinator2 continues. You can see the second prototype here:

http://zingman.com/foldinator2/foldinator2.html

Meanwhile the first prototype is archived here:

http://zingman.com/foldinator2/old_versions/foldinator2_build01/foldinator2.html

It still doesn’t fold paper, but it’s starting to do some interesting things. You can click on the “Load” button and see a list of models, encoded as OrigamiXML files. Select one and open it. You can see the UI update display the model name and author, and the text annotation for the first step. You can use the shuttle controls in the lower right to move forward and backward thru the steps, and jump to the beginning or end of the model.

A bunch of stuff is going on behind the scenes in support of this. I’ve implemented a file loader for the xml file that contains the list of models and their file names, as well as for the models themselves. I’ve create a hierarchy of classes to represent the data. The first of these is OrigamiModel, which contains metadata about the model, such as the title and author, and holds references to two other objects, OrigamiPaper and an ArrayCollection of steps. OrigamiPaper has properties for the papers proportions, color and starting orientation. The steps are of type OrigamiStep. This class contains properties for the steps action, annotation, and an ArrayCollection of creases. OrigamiCrease encapsulates the data to represent a crease, including properties such as the end coordinates, angle, parity swing, layers, etc. These last two classes will likely develop more properties and functionality as I build the folding engine.

I need to do a bit of bulletproofing around the initialization, and then it’s on to the main event, namely drawing and animating the folding paper. To begin with I’ll just be drawing a square procedurally and in accordance with the initial state specified in origamiPaper. Then I’ll be analyzing the geometry of the crease in the first step and breaking the square into appropriate polygons with a common edge, and rendering that. At first I’m going to concentrate on non-folding operations, namely Flip and Rotate the paper. Then it’s on to simple folds: Valley Fold, Mountain Fold, and Fold/Unfold. It’ll be a fair amount of work to get this far. Hopefully I’ll be able to apply this recursively for the second and subsequent steps, but more than likely there’ll be some gotcha.

Deep Summer

Well it’s the second half of the summer now, and we’re getting our first real heat wave. It’s been in the 90’s since last week, with no rain for a change, and no end in sight. We’re getting peppers and tomatoes from our garden daily now. And even though we’ve been busy, we’ve had some time to enjoy summer activities. We took the kids to Playland last Friday evening and the kids enjoyed the rides and we saw fireworks. Michelle is exactly 4 feet tall, which was the cutoff for a lot of rides, and it some of the ride operators were being extra picky. They wouldn’t let her on the big rollercoaster (too short), and then later they almost wouldn’t let her on some the kiddie rides (too tall)! They wouldn’t let me on the bumper cars for being too tall. The park has a bunch of old, classic rides from the 1920’s. The carousel had a genuine calliope, sort of a player piano crossed with a pipe organ and robot percussion section, that was fascinating to watch and listen to.

We went to beach on Sunday, which was great, except for on the ride home the car started making trouble, one of the brakes was overheating and seizing up. It’s in the shop now, but the car has just about 100,000 miles on it, so we’re starting to think about how long we want to keep it and keep repairing it. There are a lot of things I like about the Jeep, and over all it’s in pretty good shape, so it’s tempting to just keep it running. On the other hand, that’s the strategy we’re following with Jeannie’s car, so we don’t want to be in the situation where we need to replace both cars at the same time. And of course to replace it would be a whole research project to figure out what kind of vehicle to replace it with, and it’s gonna take a whole lot of precious time to do it right. Since I’m so tall, most of the cars our there are not good for me to drive, and even a lot of larger SUV’s are not well designed for tall people. Right now is not a good time for it’s since we have a camping trip coming up this weekend, and another road trip a couple weeks after that. Still, I think we better start looking into it so we’re prepared.

I’ve been making progress on a bunch of side projects. Luckily we’ve had no major home repairs or other projects of necessity for a little while, and things are at an even keel for the time being with my job, so I’ve been doing fun stuff. I’ve basically taken the summer off from working on origami and my book, since I was jamming on it really hard back in May and June. But it’s getting close to the top of the list as other things get done. I dusted off the Foldinator and began development of version 2.0. I worked out a format for Origami XML, and posted a first build. The second build will be along in a few weeks. I stated redoing my web site in PHP to support dynamic pages, and have implemented the first set of scripts. Still on the todo list is take pictures of all my new 2009 origami models, which will happen sometime this fall.

I’ve been making great progress with music. I bought a guitar a few weeks ago, and have been playing it enough that I’m starting to get somewhere. I’m think of writing a guitar based song even, something in the approximate style of Greg Lake. That will be on a future project, as this one is nearing the end. My friend Erik has agreed and to help me mix and master my record, which is great news. And I finished a complete song in record time in July. Now I’m working on the ninth and final song for my record, with the help of my friend John. More on that in a future post.

Foldinator 2 – First Build

Development of Foldinator2 is off to a good start. You can see the first prototype here:

http://zingman.com/foldinator2/foldinator2.html

Admittedly it doesn’t do much yet. So far it’s mostly framework and boilerplate MVC code. Not so glamorous, but important, like pouring the concrete for the foundation of the house. The data model class is defined and has a few important properties, including a reference to an object paper, which is currently just a square drawn to the screen, but will be the heart and soul of the application. The app presents a starting UI, and all the buttons are mapped thru events to commands. There may be more views and interface elements later, but this is enough to get going; anything new will fit into the established structure. Also I put a text output console, to make debugging easier going forward.

I have one more milestone to go before I get into actual folding in simulation. First implement the guts of Load button, read in an XML file and parse it, and assign the info and the steps to the (data) model. Next is to step thru the model using the shuttle controls. At first this will be text–only. The app will display the step number and the annotation for the current step. Once this is done, then it will be time to apply the fold specifications to the paper for each step.

Meanwhile, my brother Martin has begun work on an origami application of his own, and post a demo here:

http://www.victoryhearts.com/origamagiro/

His working title for it is “origamagiro”, a nice palindrome, but then he looked up the meaning of “giro” in Japanese here:

http://jisho.org/words?jap=giro&eng=&dict=edict

Well “giro” could mean battle, argument, controversy, guillotine…. or brothel. Martin sez: “Interesting contextual possibilities! Maybe we need to find a person actually fluent in Japanese to ask!”

Martin’s approach is in many ways complimentary to mine. He’s developing in Silverlight, so the possibility of us sharing code is slim to none, but that’s ok cuz we can share ideas at a conceptual level, which may ultimately be far more fruitful. Second, while I’m working my way in and building the groundwork, he’s diving right in and confronting the hard conceptual problems of graphics, modeling an animation head on. So while my first demo has a bunch of nice looking buttons, his has a virtual piece of paper that the user can manipulate.

Watch this space for future developments.

Origami XML

As I mentioned last week, I feel inspired to dust off my origami software, the Foldinator, and try and move its development along towards a release version. I brief recap: I first conceptualized Foldinator as an application to author origami diagrams, since there is no such purpose-built software out there. As I thought about it I realized it would in fact have to be something of an origami simulation, with the steps of the diagrams working an actual animated simulation of the paper.

I started with the application design, concentrating particularly on the user interface and authoring tools. I wrote a paper on the subject with I delivered at 3OSME a few years back. I was writing it in Flash, which in those days meant ActionScript 1, which is a bit of a kludgey language without proper objects or data types. Around this time I was out of work for a while after the dotcom crash and made a good start on a prototype since I was able to give it some serious focus for a few months. The prototype could record and playback steps, and execute several operations including Rotate, Turn Over, (Valley) Fold and Fold, and Valley Fold.

When I got to the point where I had to grok a sequence of valley folds, I knew I had gotten to the heart of the problem. I had to figure out how to model this algorithmically to proceed, how to break the paper into a bunch of inter-related parts with hinged and/or joined edges. This made harder by the limitations of ActionScript as a language, which was not really designed for serious application development. I considered rewriting the whole thing in Java, but that would have meant a completely new approach and implementation of the drawing engine. A related problem was how to represent the data that comprised a sequence of steps. At the time I was using generic objects with properties, again due to AS1 limitations.

Around this time I got a new job and the amount of time and energy I was able to put into the project waned. After long days of writing software, it was hard to come home and work on a whole ‘nuther project at night, and besides, I wanted to put more of my origami time into actually designing and folding models.

Well things have changed since then and I figure it’s time to give it another shot. For a while I was trying to get some kind of R&D funding so I could work on this full time. But that does not look like it’s likely to happen, so I might as well get on with it.

One thing that that’s changed is ActionScript has grown up into a full-fledged Java-style object oriented language, and Flex into a professional grade authoring platform for web applications, built on Eclipse. Flex is a superset of Flash and includes the Flash vector drawing and animation engine. So the platform for Foldinator 2.0 is Flex.

Another thing that’s changed is I’ve figured out over the years how to be productive in small focused efforts that accumulate over time. (Having kids kind of forces you to get good at using your time wisely.) The key is to have a discreet and achievable goal every for every session that you sit down to work at something, whether it’s a few hours of even just an hour or less. Sometimes the goal can be just to think about it or come up with a plan for something, but I try and do my thinking offline, so when I sit down to work there’s a short-term goal. The first thing I did was create a new Flex project and set up the basic framework, and import my old Flash code to pick over and see what can be ported and what should be scrapped.

The other thing I did was to start to work out the data representation side. The first prototype focused on the authoring and interface side of things. This comes at it from the opposite end. Naturally, the logical choice is to use XML, so I thought coming up with an XML schema to represent an origami model would be an important step. Having googled “Origami XML” it does not appear that anyone has done any work on this. I told my idea to Brian Webb and he said “That sounds like a trip to Singapore right there,” referring to the upcoming 5OSME. I’m not sure I want to this, but I’m thinking of going to this year’s PCOC, because it’s in San Francisco and I used to live there and it’d probably be a lot of fun. Maybe there will be an opportunity to present a paper there, like the Monday sessions at the OUSA convention in New York.

In any event, the design goal of OrigamiXML is to represent a model by its folding sequence, in a way that’s application agnostic, in other words independent of Foldinator. I’d like to make OrigamiXML a standard that can be shared with the origami and software communities, so that Foldinator can share documents with other applications. I ran this idea by my brother Martin, who is thinking of developing an origami themed computer game in SilverLight.

I have started with a few examples of traditional and simple models expressed in Origami XML. They are: Picture Frame, a pureland model invented by my daughter Elizabeth a few years back (for those of you who are not folders, pureland means the model has only mountain and valley folds), the traditional Swan, the Waterbomb Base, and the Preliminary Fold. These bring up the issue of reverse folds, which it looks like I’ll have to get to sooner rather than later.

In the offing I have a few more models partially specified: The bird base and traditional crane, which will necessitate working out how to specify and execute a petal fold, the frog base, which will do the same for a squash fold, and a funny little thing I made up and call the bird-dog base, which is half a bird base on one side and half of Montroll’s dog base on the other.

If you look at the XML, there is some meta data at the top, including things like the title of the model, the author, and copyright info. Then there’s information about the paper: it’s proportions, whether it ought to be two-color and so on. Although I am mainly focused on single-sheet models, it supports specifications for multiple sheets. How to put multiple sheets together into a model is a bride to cross when we get there.

The heart of the document is the sequence of steps. Each step includes an action, which indicates the kind of step usually “fold”. It also has an annotation, which is a human readable description of the step, like those that typically appear in published diagrams.

Then there is room for any number of creases. At first I thought I would have just one crease per step, but then I realized it is necessary to have multiple crease to support reverse folds, squash folds, petal folds, and sinks. This means too that the OrigamiXML can support arbitrarily complex compound folds that collapse all at once, that are common in box-pleated models and other advanced modern styles.

A crease is specified by several parameters. First is the location, which can be either an end point and an angle or two end points. I’m not sure yet whether these coordinates are relative to the unfolded sheet as in a crease pattern, or to the current view of the folded model as in conventional diagramming. I’d prefer that latter, but have not yet worked out if this is possible, or if it will introduces too many cases of unsolvable ambiguities.

Other parameters include Swing, which specifies which way the folded paper moves (Left, Right), as well as Parity (“Mountain” or “Valley”), Type (Inside Reverse, Outside Reverse, etc., although I’m not sure if this belongs with the step of the crease), and an optional value for the number of layers to fold thru, which defaults to “all”.

Another feature is that steps can be nested, so a step can contain multiple sub-steps. The intent of this is to handle common diagramming situations such as “Repeat steps 19 -24 on the left side” or “Petal fold, repeat behind.” In the second case, this simple instruction actually breaks down into four steps. First the petal fold (which itself involves three creases). The next step is to turn the model over. Third is another petal fold, and last is to turn it over again. Having to make this into four steps in a diagram would be tedious to the diagrammer and bothersome to the folder, so I’m hoping to be able to automate this out.

That’s as far as I’ve gotten so far. I’d like to figure out a way to vet this to the origami community and get some feedback. Probably a simple post to the O-list ought to do it. Meanwhile I’ll start development on Foldinator 2.0 and by having it read in these XML files and parse them, and build the logic in the engine ones action at a time until it can execute these models. I fully expect there will be some back’n’forth between the XML and the engine to get the kinks ironed out. We’ll see how it goes. Wish me luck.

OUSA ’09 Pictures

Here are a bunch of pictures from the convention. Get ready, there are a lot of ‘em. First up, a few personal favorites among the many, many models on exhibit.

Seth Friedman’s Blue Bar Pigeon. Perhaps my favorite model this year. I think birds are the new bugs in origami. Over the past few years I’ve seen ever more detailed and more sculptural birds. This is one of the best yet. Pigeons are an animal I know intimately, and this one really captures the essence of the animal. Very moving.

Marc Kirshenbaum’s “Blue Sky”. Marc is known for complex models including insects and musicians, and for his whimsical sense of humor. This year he brought that all together in his “Original Beatle”, a beetle playing a guitar. But to me Blue Sky demonstrates such a simple and fresh approach, and ends up being very evocative, so here it is.

Joseph Wu always does such amazing work. He has just the right sculptural touch to bring a subject to life. Here are some of his pigs and an octopus.

Brian Chan is a virtuoso folder who loves to tackle supercomplex subjects. His work transcends mere technique. Here is the anime heroine Rei.

Michelle’s candy box was selected for this year’s Origami by children exhibit.

Here’s a bunch of photos of my exhibit. I hope you don’t find it too indulgent, but what the heck, it’s my blog.

Every year the girls like to fold Laura Kruskal’s Convention Crown.

Here’s T.J. Norville and I folding my U.F.O for the oversized folding competition. It was awesome fun.

My origami Sphere, inspired by Thelonious Monk. Not too battered after spending a whole day bouncing around my backpack. It’s made from a frog base in a way roughly analogous to the way a Waterbomb comes from its base. I’ve been carrying this idea around with me for a while, but had no idea if it would worked until I tried it, particularly the way the paper goes in around the equator. This also is a proof of concept for the tail and fins for my work-in-progress Zeppelin model. I’m now working on a second, rounder, version of the Sphere with 72 rather than 32 facets.

My Pyramid/Sphinx, spontaneously invented in response to a conversation with John Montroll and Won Park.