Origami: JS Logo

A few years ago I wanted to try to design an origami version of the JS logo. This is the widely-used community logo for the JavaScript programming language. (There’s no “official” logo for the language, but that’s a whole other story that’s not relevant for this post.)

Original community JS logo

I did this not because it was particularly wanted by anyone, but simply as an interesting challenge—possibly one not attempted before. As documented elsewhere, I wasn’t experienced at designing origami models at that point. I broke it down into chunks, trying separate “J” and “S” designs. To keep things simple, I started with pixel-like shapes for the letters (90° angles only), then chucked in some 45° angles if I could get away with it.

After a fair bit of trying different techniques and refining folds, I ended up with the most efficient models I could think of. (“Efficient” in this case means using the smallest possible starting size of paper. Every bit of paper tucked away out of sight is effectively wasted; efficiency is minimising how much paper is wasted.)

But trying to combine the models together into a single “JS” design was beyond me. The differences in fold placements combined with the off-centre placement of the letters was too much. I knew I had to be missing some fundamental design technique that would unlock what I wanted to do. In the end I put it aside for a while… which became several years.

Last year I bought the newly-released first book by Mi Wu: Duo Color Origami. As I described earlier:

This was the missing information I’d been craving. Suddenly I was reinvigorated and trying completely different ideas and approaches, with far better results. I’d been so bogged down in a very linear, box-like way of thinking that I needed the kick to try completely different angles.

Previously I’d got so stuck in a fixed mindset of how to get the coloured shapes I wanted. I’d effectively been fixated on exposing “holes” to let a different colour come through. That required an awful lot of hiding layers of paper to make the outline of a shape on the edge of the paper, then folding the outline into the middle to expose the other colour.

Mi’s designs use a large variety of techniques to get colour changes. But the key thing for me was that very rarely did the designs rely on outline shapes like I’d been stuck on. Combined with the short essay about design approaches at the beginning of the book, I had a whole new arsenal of techniques to try.

Reinvigorated by this development, I went back to try the JS logo that previously defeated me. Rather than trying to meticulously plan the design as I had before, I just started folding edges in to the centre and went from there. Within a few minutes I’d already got closer to the desired result than any previous attempt.

But I still had a problem to tackle: What’s the right level of abstraction for this model? The original logo is a mixture of straight lines and flowing curves, with slightly inconsistent angles. I was never going to perfectly mimic the curves, so they would have to be abstracted to smaller straight lines in some way. My initial attempts had all been based on a combination of 90° and 45° angles, but that was only because of the limitations of my flawed assumptions of how to do it. With the new techniques, using 45° angles just didn’t look right — the letters looked too distorted.


I’d also been struggling to get the “S” right. I could either get the lower half correct, or the upper half, but not both at the same time. To overcome that and the not-quite-right-ness of the 45° angles, I attempted a new version that was only based on 90° angles. I first worked out what I was aiming for by opening the logo in Illustrator and overlaying a grid that roughly matched the shapes (11 units wide seemed to be best). Then I filled in the “pixels” as close to matching the logo as possible.

So the finished model should line up with an 11×11 grid. But the sides of the original square of paper must be at least twice as long, to account for folding them into the middle. A 22-unit grid is a pain to make, and doesn’t quite cover some of the extra folds needed for the colour change. So I rounded it up to 24×24, which is much easier to mark out with folding alone. (For 24 units, an edge only needs to be divided into thirds. Then each third is recursively halved 3 times to get 24.)

It only took 3 attempts to get the final model I was after, and the last of the attempts was just a minor refinement of the previous one.

Origami JS logo folded from yellow and black paper. The letter shapes are rectangular instead of smoothly curved.
Paper: Sandwich buttercup/black from origami-shop.com
Origami crease pattern for the JS logo. Creases are shown within a square as solid red or dashed blue lines.
Crease pattern, based on a 24×24 grid.
Origami crease pattern for the JS logo. Various shapes within it are coloured yellow or pink and scattered throughout the pattern.
Alternative crease pattern showing which parts of the paper are visible in the final model.
Origami version of the JS logo sitting next to the original logo design
Side-by-side comparison with the original logo


An exercise in frustration

Armed with the confidence that I’d finally cracked the simplified version, I could go back to tackling a more complex one. I’d also learned from Mi Wu’s yin-yang model that the edges of a finished model like this don’t have to be aligned with the original edges of the paper. After staring at the JS logo for a while I realised that the caps on the end of the letters form exact 30° angles. Handily, 30° is precisely one third of the right-angled paper corners, and very easy to find just by folding!

Finally I had the answer to the abstraction problem. Using multiples of 30° would provide a decent approximation of the curves without massively blowing out the complexity of the design. Of course, that’s all well and good in theory, but I still had to actually make the damn thing work.

Through a fair bit of trial-and-error, I kept getting close, but there was always some part that wasn’t quite right. At one point I even printed out a version of the logo and cut out the letters, to use as a stencil.

Two pieces of paper side-by-side. On the left is a printed copy of the JS logo with the letters cut out. Various measurements are scribbled on it. On the right is a roughly-folded origami model of the JS logo, with out-of-proportion letter shapes.
A rough attempt to match the stencil by freehand folding.

Using the stencil to line up the folds, every attempt got closer and closer. But I still couldn’t get everything to fall into place together, with the right proportions. If I got the “J” exactly right, the “S” was wrong. If I focused on the bottom of the “S”, the top would be out of whack. If I focused on the top, the “J” would be wrong again.

Eventually I realised that it was feeling like a chore rather than a hobby. The results I was getting just weren’t satisfactory. Not only were things not quite lining up, but the overall effect had a sort of “uncanny valley” feel (close enough to the real design to show what it’s meant to be, but still different enough to feel not-quite-right).

My family agreed that the 90° “pixels” version looked better anyway. So I re-folded it using the special yellow/black paper I’d specifically ordered, and called it a day.

My intention with these posts is not to produce finished models as a fait accompli, as if nothing goes wrong. This is how I see almost all origami models presented, and it can be disheartening to someone starting out with designing.

So this post represents mixed success, warts and all. I’ve finally completed at least one version of something I first attempted many years ago. On the other hand, I also failed to achieve the full original vision, but bugger it, I’ll show all the attempts anyway.

13 variations of origami JS logo attempts are scattered among printouts and sketches of shapes. Most of the models are rough and out-of-proportion. Some are only half folded.

It’s easier to live in a fantasy land

Even though it took years from start to finish, this was an extremely valuable exercise for me. Not necessarily for the end result, but because of the design lessons I learned in the process.

Along with all the tips and tricks mentioned above, there was one major lesson I now truly understand. There are many dual-colour geometric designs in the origami community, and some have letters/words like this. But exceedingly few of those are based on a pre-existing logo that has to be closely matched. It’s far easier to make letter-like shapes if there are no defined restrictions on size, style and placement.

Maybe next time I’ll just make something up instead.

One thought on “Origami: JS Logo

  1. Pingback: A little story about origami | Shoehorn With Teeth

Comments are closed.