The Boing Boing Gadgets 1K Competition Gallery

1kcompologo.png“1 kilobyte. 1 kibibyte. 1 kilobit. 1,000 ASCII characters. Source code, file size, tile size, the number of letters in a short story: you decide.”

That–making the most of limited resources–was our challenge to you. In return, we received a host of fantastic entries, ranging from short stories to procedural robot generators. Now comes the challenge of picking one to win a terabyte hard drive from Seagate, but not before we collect all the entrants in one place.

The gallery of 1K wonders follows after the jump.CSS Mario Head
By Pomokey
Shown here as an image – source code

css mario.jpg

Mona Lisa
By Gabriel McGovern – <1000-byte PNG

mona.png

1,000 digits of PI
by Cayton

1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989

Mini Robot Factory
By Umrain – <1000k javascript (reload to get a new one)

Find all 10
By Thaddeus Smith (Click photo to zoom)

1000.jpg

Untitled
By W000T

0100111101100100011001010010000001101111011011100010000001100001
0010000001010100011001010111001001100001011000100111100101110100
0110010100101110000010100100000100100000011101000110000101110011
0111010001100101001000000110111101100110001000000110010101100001
0111001001110100011010000010000001110100011000010111010101101110
0111010001110011000010100110000101101110011001000010000001110100
0110000101101001011011100111010001110011001000000111010001101000
0110010100100000011101000110111101101110011001110111010101100101
0000101001100001001000000111010001110010011010010110110001101100
0110100101101111011011100010000001110100011010010110110101100101
0111001100100000011011110111011001100101011100100010111000001010
0101000001101001011000110110000100100000011001100110000101101110
0111010001100001011100110110100101100101011100110010000001101011
0110100101101100011011110110010101100100000010100110000100100000
0110110101100101011001110110000100100000011101000110100101101101
0110010101110011001000000110111101110110011001010111001000101110

aBBGecedary
by Wastrel
wastrel1kkf9.gif

Tiny Illusion
By Comedian

TinyIllusion.png

Paint Program
By Aubrey
Screenshot shown – 1000 bytes of HTML, CSS and JavaScript

paintprogram.jpg

Untitled
By Dan Hernandez

danhernandez.gif

RGB tunnel
By IQ
Download Windows executable (I’m on a mac, will add a screenshot in a bit)

Mandala Painting Applet
By TechnogeekLink
Screenshot shown of the rotational version.

appletpaint.jpg

Straight Punch to the Crotch
By Billy HuntBand Logo

Straight-Punch-to-the-Crotch.gif

Bart
By Juan Calderon

bart.jpg

3D matrix of the BBG logo
by Advaranaut
Screenshot here – 1000 byte source

render1-full-thumb-480x360.jpeg

Short stories

Untitled
By Bardfinn

Frink was breathless: “It happened while I was testing a batch of the new Giant MagnetoResistive tech; I’d initialised the platter with zeroes and then read it back to verify. The qual script flagged it as a write failure, but with an incredibly high failure perce-”

Johnson interrupted: “Cut to the chase, man – you’re saying the run was contaminated.”

“No – no sir, it’s not that at all. I dug through the log fil-”

“So if it’s not contamination then it’s the test equipmen-”

Frink spoke uncharacteristically louder: “NO, sir, let me finish: I checked the log files. It’s reading back the same values every. single. time. No matter /what/ we write to the platters.”

“… So?”

“At first, we thought it was random noise – but it turns out to be twenty-two digits from the deeply insignificant depths of Pi, sir, followed by seven others.”

The room went really quiet.

Terwilliger drew breath and said “Followed by one through ten, right?”

“A thousand, sir. Binary counting.”

Untitled
By Michael W. Hyde

Today on the NewYou.com hour our guest is scientist, author – and until a recent press release, recluse – Doctor Joeseph Veriton. Thank you for coming on our show.”

“I’m delighted to be here, thank you for having me.”

“Doctor Veriton, how did you manage to encode an entire human genome into a single kilobyte?”

“The short answer is compression. The long answer is I didn’t; the DNA did.”

“Could you describe for us the theory behind it?”

“Sure. DNA has four ingredients, and those ingredients are mapped in a series in order to create the infamous double helix. What happens is: incredibly complex patterns begin to emerge, so complex that we can’t see them — but protein-based computers can, because they contain many if not all the same patterns, but in a different order. We don’t encode the genome, we encode the patterns. The protein can ‘unzip’ the pattern, using itself as a sort of template.”

“And what is your proof, doctor?”

With a nod, three more Doctors Veriton walked on, stage right.

UPDATE: A late entry came in from Stubbe: a procedural animation with music! I haven’t had a chance to see it, yet, as it requires a swish video card.

Two minute procedural animation with music
By Stubbe
Screenshot/Video forthcoming
Windows executable
movie

And here’s a bigger version of Mona Lisa, still under 1,000 bytes, courtesy of Gabriel:

big-mona.png

About Rob Beschizza

Rob Beschizza is the Managing Editor of Boing Boing. He's @beschizza on Twitter and can be found on Facebook too. Try your luck at besc...@gmail.com

 

This entry was posted in Uncategorized. Bookmark the permalink.

20 Responses to The Boing Boing Gadgets 1K Competition Gallery

  1. cgk says:

    Regarding Pi,

    It’s possible to encode the digits of pi into the binary of the 1024 bits allowed (I’m using the license given to assume a base 2 kilobyte :).

    Each digit can be encoded as 4 bits (giving 16 representable values). If given the values of the digits in advance, then you can store 2048 significant digits of pi (4 bits per digit, 1024bytes -> 8192 bits / 4 -> 2048 digits).

    Better yet, you could encode using 3 bits (or 8 values) across each 8-bit byte. Then, using the left over 2 bits, indicate if the digit in the following combined 2×3 bit chunks is greater than 7 (0-7 == 8 values). (i.e. 00 111 000 -> digit 1 == 8 digit 2 == 0 and 01 111 000 -> digit 1 == 8 digit 2 == 9)

    Then, as the digits are statistically random, you should more often get those first 2 bits set to 0 about one in 4 times (8 values out of 10 will be representable in 3 bits or about 80% of the time. Two chances, works out to chances works out to 64% of the time).

    This then allows one to use compression on the bit stream of the digits, as you’ve introduced a regular occurrence of 0′s and reduced the real-noise nature of the stream (i.e. you’ve moved some bits around so that the zero’d bits tend to regularly end up in the same places). By then moving all of those 2 bit blocks into one place in the bit stream, then running compression (like gzip) on the entire bit stream, you can squeeze in more digits out. Unfortunately, this will work best the longer run of digits you want, with 1024 bytes worth, you don’t get any benefit.

    Just sayin…

  2. cayton says:

    And here I thought mine was well-thought out…kudos

  3. cayton says:

    PS The mini Robot factory is my favorite!

  4. toby_panzer says:

    All the entries are pretty good, but I really like that robot generator.

  5. gabrielm says:

    Poor lil’ Mona… With only 1000 pixles, she looks so tiny and scared up there.

    I know! Her sister Big Mona will take care of her. She takes up 100,000 pixels – but thanks to the magic of PNG compression, still weights in under 1000 bytes.

  6. bardfinn says:

    I love the robot generator. That’s terribly nifty.

  7. hemidemisemiquaver says:

    translation of untitled by WoooT (It’s ascii):

    Ode on a Terabyte.
    A taste of earth taunts
    and taints the tongue
    a trillion times over.
    Pica fantasies kiloed
    a mega times over.

    Personally, I prefer the ones and zeros :P

  8. hemidemisemiquaver says:

    Also, I have to point out that the rules are ambiguous. You say 1 kilobyte, 1 kilobit, and 1,000 ASCII characters, all of which represent a different number, and consequently, the sizes of the submissions are different.

    And if you reply, please don’t say anything to me that starts with kibi-.

    &lt/nitpick&gt

  9. Rob Beschizza says:

    Heim, yes, the guidelines are vague, but that’s deliberately so, to encourage creativity (and boy, did we get it!). We’re not going to be sticklers about anything, and were ready to accept basically any rationalization for the actual size of an entry, as long as it wasn’t taking the mickey.

  10. gabrielm says:

    Also, I have to point out that Hemidemisemiquaver forgot his opening “nitpick” tag…

  11. w000t says:

    So many cool entries – I especially love the variety. Comes out like Thirteen (or more) Ways of Looking at a Kilobyte.

  12. andvaranaut says:

    In the interest of disclosure, I’d like to point out that color is not included on my entry. The 3D matrix includes the BBG logo, some guides, and a (crude) model X-wing, USS Enterprise and Death Star, but the color is not ;)

    Also, as the backstory of my contribution is a bit complicated, I invite you to read it if you have the time (there are more renders there where the other objects are more easily seen):

    Link to explanation page

    In any case, the entries were great. Congratulations everybody!

  13. Thaddeus Smith says:

    @hemi …it wasn’t a competition for units of measure. it was a competition for the best use of the number 1000, while making the most of limited space.

    it just seems that many people latched onto the 1000 byte or kb and ran with it.

  14. technogeek says:

    I’m very glad that I’m an entrant, not a judge. This isn’t just apples and oranges, it’s apples and orangutans — there’s a lot of good stuff here, taking the idea in very different directions.

    Nice work, everyone!

    As someone else said: This fuzzy contest is a concept worth repeating periodically, maybe with different themes rather than coming back to 1K.

  15. technogeek says:

    @Thad — I suspect that’s because the motivating prize was the disk drive, so most of us were biased toward thinking in terms of data.

    Also, 1000 bytes or words makes for something that’s easy to submit electronically. If someone had taken it as 1000 real-world objects, they’d have had to not only craft their entry but create electronic documentation for it (a good photo, or instructions for replicating it, or…). Arguably that’s a bit more work.

    On the other hand, anything that might amuse the judges is certainly worth considering.

  16. Thaddeus Smith says:

    ah, but what is the best use of space? cramming a single image into 1000 bytes ..or cramming a bunch of 1000′s (not necessarily a 1000 1000′s) into a single image?

    like you said Techno, I too am glad I was an entrant and not a judge. ..

  17. andvaranaut says:

    I have to agree heartily with Technogeek, w000t and others above. When you have a contest, having some restrictions is what works best for creativity – you don’t want too many conditions, but the quality of entries is better when you do not have full freedom. This is a very well known effect, and, actually, I would argue that the quality and variety of the submitted entries is a good proof of it. The conditions were restrictive enough to make the contest challenging, but flexible enough (or too ambiguous, whatever your take) to allow for a variety of creative interpretations. (and boy, there have been some).

    I do support the idea of repeating these contests. I recall that Rob recently complained about all these gadgets that he had to get rid of. Maybe you can get somebody to sponsor the postage and organize a weekly or biweekly contest like the 1K one, in that you send out one of these useless trinkets signed by a few BB/BBG editors as a prize. The symbolic value would be enough. One usually enters these kids of contests because of liking a challenge. :)

    I have to say that doing a real-life 1000 object/tile/whatever would have been really cool (it would have probably taken a lot of physical effort, though) :)

  18. technogeek says:

    For what it’s worth, I like little Mona better than big Mona. At the small size, the square pixels aren’t as noticable… and it has the appeal of a traditional miniature painting, where part of what’s impressive is how much detail the human visual system interpolates when given suitable hints.

    But big Mona — or little Mona magnified — is a nice illustration of how much detail work was needed to make the shading come out well.

    Stubbe: I’d really like to see some documentation of how your entry works. I haven’t played with 3D/pseudo-3D rendering since the days when we would have had to code most of the geometry and shading ourselves and build up all the frames in batch mode rather than realtime. Whole different ballgame these days.

  19. stubbe says:

    technogeek:
    There are two major parts to my entry. One part handles the window setup, direct3d initialization, shader compilation, effect parameter interpolation, music etc. The only rendering performed here is the rendering of a fullscreen quad (two triangles). This part is written directly in x86 assembly.

    The other part is the pixelshader bound to the quad, which does the actual rendering of the effect. For each pixel I calculate a primary ray vector based on its coordinates, which I then manually raytrace/raymarch to find an approximate intersection point with the implicit surface. An approximate normal is calculated which is then used for some fake’ish lighting :)

    As the color of each pixel is calculated independently based only on the coordinate of the pixel and the parameters of the implicit surface, it is sort of like the good old days before the use of hardware rasterizers :)

    Everything is linked and compressed using my own tools. Short story is that it is a specialized version of one of my other tools: http://www.crinkler.net/
    I will not bore you with the details of the long story :)

  20. Rob Beschizza says:

    That’s quite a competitive perspective, but I like it. I think we’ll be repeating this theme again, very soon, as a series of stricter battles: 1 kilobyte game; 1 kilobyte image; short story in 1K of ASCII; and so on.

    As it happens, I’m rustling up as many decent prizes as I can so that we can have plenty of reward for the entries we’ve gotten here.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 

More BB

Boing Boing Video

Flickr Pool

Digg

Wikipedia

Advertise

Displays ads via FM Tech

RSS and Email

This work is licensed under a Creative Commons License permitting non-commercial sharing with attribution. Boing Boing is a trademark of Happy Mutants LLC in the United States and other countries.

FM Tech