Monday, January 19, 2015

Adding triangles to YouPatch


The Racket Logo
Following my talk at RacketCon 2014 a few participants expressed interest in getting a quilt based on the Racket programming language logo (right).

Since I used Racket extensively both in inventing and developing YouPatch (www.youpatch.com) I thought it would be a nice gesture to make a free quilt design available to members of the Racket community.

However, just running the Racket logo through the YouPatch process (as it stood) made for an unsatisfactory result on two fronts:

  1. The curves of the original design are excessively pixelated
    Original design: 230 pieces
    at a low resolution (right).
  2. YouPatch's aggregation algorithm combines neighboring squares of the same color into larger pieces to reduce the amount of cutting and sewing— a key feature. Unfortunately it did badly in a few cases (especially so on simple logos like this) because it was based on the somewhat simplistic idea of chopping each block repeatedly into quarters. By looking at the original design you can probably see several places where neighboring pieces should have been combined.
So I improved the aggregating algorithm, achieving typically a reduction of 20% in the total number of pieces. [There's a trade-off here against the number of distinct shapes involved. I could get 30%, but we decided to restrict shape dimensions to reduce confusion during construction.]

Improved aggregation: 191 pieces

And I added an option to take a pixelated design and automatically and selectively add half-square triangles to reduce the "stair-casing" effect.

With half-square triangles: 279 pieces

Without the schematics, here's the triangle design in all it's glory:

The Racket Logo as a pixel quilt design with triangles
Racketeers, if you'd like this design free-of-charge, let me know and I'll generate and send you the pdf with all the instructions. You'll still need to buy the fabric and find a friendly quilter. [Try your local modern quilt guild if you don't know one.] 

Let me know what size you'd like: 
  1. Small wall hanging: 32" x 32"
  2. Medium wall hanging: 48" x 48"
  3. Double bed or lap quilt for the couch: 64" x 64"
  4. Queen bed: 80" x 80"
Now, in case you prefer another programming language to Racket, here's a sample of what happens to the logos of some other awesome languages that also have a liking for the greek letter lambda (λ):

Top-to-bottom:   1. original image    2. YouPatch squares   3. YouPatch triangles
At the time of writing the triangle-generating technology has not been built into YouPatch's self-serve features, nor have we finalized pricing.

I think you can see that this facility makes a big difference to logo-style pixelation (simple design, few colors, low-ish resolution), and of course it can be used for non-programming language logos! ;-)

It also can produce interesting arty effects on photographs. Here's the first pixel quilt featuring half-square triangles that we've actually made, featuring my daughter blowing bubbles:

1. Original image  2. YouPatch schematic  3. Actual quilt

The Racket logo is available for free, and we'll be making a triangle option available in 2015 as part of YouPatch, but the technology exists to do it now, so get in touch if you're keen!

No comments:

Post a Comment