Godel Escher Bach QR Code shadow cube

by SashimiTabernacleChoir, published

Godel Escher Bach QR Code shadow cube by SashimiTabernacleChoir Dec 31, 2011
3 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

72211Views 2700Downloads


The shadow of this cube in different directions gives QR codes pointing to the Wikipedia articles for Kurt Godel, M.C. Escher, and J.S. Bach respectively. Also a pretty challenging print test. Note that QR codes cannot be read in mirror image, so only 3 of the 6 possible cube orientations cast a readable shadow.

Notes. This was generated using a reduced-url QR code generator, a paint program to connect disconnected sections, Inkscape to convert to dxf, and OpenScad to extrude, rotate, and intersect the 3 images. OpenScad rendering took almost 30 minutes on a fast computer.

QR codes are fortunately very forgiving of fairly large modifications due to their built-in parity and redundancy schemes, and I verified readability of the images up through the dxf stage. (Although I got pretty close to the limit on one image, and my camera QR scanner had to rescan a few times to get a read.)

This is a complex image. To get a readable shadow your light source will need to be pretty far away to get a flat pass through. Perhaps someday I'll do a version with transformed geometry, matching specific close-up point sources.

If you can't get it to print cleanly enough to read, hey, claim it's a Borg Cube and gift it to your Trekkie friends.


Best to print this in black; then you may be able to get a QR scanner read looking directly at faces rather than shadows.

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Any thoughts on rendering the negative and trying a dual-color print? The covered innards could obviously be deleted from the model and it would make for a simple print. Or the innards could remain and we could use dissolvable PVA as the second/support material. And maybe I missed it in the discussion, but there would have to be quite a few floating fragments if this object were to truly exist, right?

I tried and failed to get a usable print of this. I don't think it can be printed with a FDM printer. Maybe a stereolithography printer such as Form1 could do it.

Yeah I have never been successful either. (Although once there was an interesting glitch with Skeinforge, which generated gcode essentially just creating a big cube of random plastic thread. Looked like an aerogel and squished like a sponge.)

I think this one may be in the category "cool in principle but not in practice". For one thing I'm no longer convinced all the mass in the interior is supported.

A great idea to represent a strange loop. nice work

Though it's true QR codes can't be read in mirror images, these particular reverse images codes do work. They point to the Wikipedia articles for Achilles, Tortoise and Crab.

Has anyone ever tried scanning borg cubes?

After sleeping on it, I think that for n=4 or greater you can construct a hypothetical extrusion pattern that leaves a portion of the interior unsupported. But let us change the game to remove unnecessary complications. Instead of a sphere just start with a thin spherical shell. Then you can slice QR extrusions through it radially as much as you want as long as no 2 QR patterns intersect on the surface. Storage density isn't remarkable and isn't volume dependent, it just depends on how many QR squares of a given size you can pack on the surface of a half-sphere. Next weekend maybe I'll dust off OpenScad and create a few test examples.


I hadn't thought about this in a storage density context. For this cube, 3 x 4296 bytes would be an (unattainable) upper limit. The actual capacity would be much much less than that because you have to seriously distort the pattern to get enough connectivity to provide support for all the pieces,
which typically are pretty disconnected in a QR.

An interesting question though is what would happen if you took a sphere of radius R, and sliced out a distorted QR with edge size L = a * R for some a
lt; sqrt(2). (Visualize this as a sphere with a square tunnel running through it, except the square tunnel isn't empty, it is a QR extrusion.) Now radially slice n such QR sections through the sphere starting at n different 'excavation' points on the surface. That would seemingly give us a higher storage capacity per object volume than the cube in this posting. But what are the conditions on n, a, and the excavation point locations that guarantee the n QR images will not contaminate each other or leave unsupported pieces of material inside the print? There will certainly be an upper limit on n unless a goes to zero. For that matter, it seems intuitive that the cube 'thing' pictured here will not have any unsupported interior chunks, but I have no idea how that might be proven.


this is incredibly cool.

i'm interested in what the typical storage capacity of one of these could be.

what would the error correction rate be here ?

according to the wiki article: http://en.wikipedia.org/wiki/QR_code#Storagehttp://en.wikipedia.org/wiki/Q...
you can store a maximum of 4,296 alphanumeric characters per face.

how much could someone expe
ct to store one of these ?
and how would the light source effect that capacity ?

Thanks. Been interested in shadow art since I saw some cool stuff in the early 80s, but until 3D printers came along the urge just sat in the back of my head. Hofstadter's GEB cube is perhaps the most well known shadow piece, so a riff on that theme seemed a good place to start. This project doubled as a learning exercise I gave myself as I was puzzling out the extrusion command in OpenScad. It was more painless than I expected - OpenScad is really easy and powerful.

And I thought it was a Borg cube in disguise...wow.

Wow. This is seriously cool.