Self-Isolation June 2020
I went to the Rhode Island School of Design in the mid 90's where I received a degree in sculpture. It was there that I first learned of Isamu Noguchi and I fell in love with his work. I still get mocked to this day for buying a Noguchi coffee table with my first paycheck, which I placed in my first apartment - a tiny carpeted studio apartment whose rent was less than the coffee table itself.
I was initially drawn to his stone work but soon after became fascinated by his work creating Akari (the Japanese word for light) paper lanterns. I made a few naive and tacky lanterns of my own but nothing I created came close to reproducing the beauty and simplicity of Noguchi's Akari. My attempts were very fussy and I worried about perfect seams and perfectly flat paper. What made Noguchi's lanterns so lovely is that you could see the process involved in making each one: the glue marks were visible, the bamboo ribbing seams were celebrated, the wrinkles in the paper were inescapable.
I decided to make an Akari Lantern generator in Houdini. As is the case many of my recent projects, the intent is to provide minimal input and get back the final piece: one curve to define the profile of the lantern, and an optional second curve to warp it.
The original goal was to make decent looking lanterns because I want to get better at procedural modelling but also wanted to see how to make a believable looking translucent paper material. As I researched how Noguchi's lanterns were made, I changed my thinking about how the geometry should be created.
Initially, it was going to be a simplified subdivided mesh and the details would come from the materials and textures. However, as I worked with the system, I wanted it to feel more in sync with the traditional method. In particular, I wanted the bamboo ribbing to be made from a single spiral piece of wood which definitely complicated the process.
An input curve is used to create the main shape of the lantern. The line is resampled to the number of times the ribbing should wrap around the form. If I simply clone and rotate this form several times, I can easily make the support structure by connecting the same point number on an adjacent support spline which would create a proper quadmesh.
Since I wanted a spiral, I needed to offset the points on the duplicated splines to create a predictable staggered point placement. Then its just a matter of connecting the points in the right order to get the spiral ribbing.
Initial attempts to mesh this spiral structure were overly complicated. The first thing I tried was a custom shrinkwrap over the support splines and ribbing. I put the supports inside a sphere and then pushed the sphere in the opposite direction of its normals until it hit the supports at which point it would stop. This method didn't work well for concavities. I switched to Houdini's vellum solver and tried sucking the pressure out of a closed sphere which worked pretty well but ended up being a pain to iterate and art-direct.
I ended up building the mesh by hand. I then remeshed the polygons to add detail and made sure they were pushed out enough to cover the support ribbing. I then created a falloff attribute which shows the distance between each point on the mesh and its closest point on the spiral ribbing.
The falloff is used to push the mesh inwards to give the paper some concavity around the ribbing. To simulate the glue lines and overlapping paper, I create thin strips along the splines and conform them to the existing paper mesh.
The hardware is pretty straightforward. The bottom hole becomes the support structure for legs and the interior hardware extends all the way up to the top to form the handle. The cord was a simple multiscale noise which respects the ground plane and twists randomly down its length. I considered using a simulation but it felt like overkill for such a simple detail.
As you can see in the image below, that's a lot of polygons. 339,194 to be exact. For one little lantern. It is far from ideal but it should be reasonably easy to remesh and refactor to make it more friendly in realtime applications. Moving the lantern displacement to the material would help a great deal.
I had some glitches throughout this project which were amusing enough to render and marvel at. It really makes me want to realize actual lanterns made in the tradition of Noguchi but looking like oozing larvae (what is wrong with me!?)