[HN Gopher] Show HN: I spent 6 years building a ridiculous woode...
___________________________________________________________________
Show HN: I spent 6 years building a ridiculous wooden pixel display
I built the world's most impractical 1000-pixel display and anyone
in the world can draw on it. It draws a single pixel at a time and
takes 30-60 minutes to complete a single image. Anyone can
participate in the project by voting for the next image to be
drawn, and submitting images. https://kilopx.com/
Author : benholmen
Score : 618 points
Date : 2025-08-04 16:16 UTC (6 hours ago)
(HTM) web link (benholmen.com)
(TXT) w3m dump (benholmen.com)
| joetannenbaum wrote:
| Incredible write-up and a hugely ambitious project. Thanks for
| sharing!
| aarondf wrote:
| This has to be the the most expensive cost per pixel display I've
| ever seen. And I've never loved a display more. This is absurd in
| the best possible way
| benholmen wrote:
| I don't think I want to think of the actual cost per pixel -
| especially the cost of my time! I have deliberately avoided
| accounting the final cost
| zahlman wrote:
| For what it's worth, dollar stores typically sell wooden
| cubes for arts & crafts purposes (board game designers also
| like them for prototyping) in bags that work out to a few
| cents per piece. I guess they're quite a bit smaller than
| what you ended up using, though. And of course that doesn't
| account for the frame or the control mechanism. (And now you
| have me trying to think of more robust ways to turn the
| pixels...)
| lemonberry wrote:
| But the experience and feeling of building it... priceless.
| Money can't account for that.
| Rexxar wrote:
| And absolutely no energy consumption when you don't change the
| image.
| kulahan wrote:
| Move over, e-ink displays. A new king is in town.
| joemi wrote:
| It was directly inspired by e-ink, after all.
| zer00eyz wrote:
| > I created a reciprocating poking mechanism that uses a
| flexible glue stick
|
| With the most cost effective and creative "wear item" ever.
| ortusdux wrote:
| I think the Mythbusters might still hold the record -
| https://youtu.be/ZrJeYFxpUyQ?si=pysqKGFiDO99oyvD&t=476
| mosdl wrote:
| Really cool and it would totally work for a restaurant/coffee
| shop.
| benholmen wrote:
| I think I might put this in my friend's coffee shop but I'll
| restrict access to people in the coffee shop. Not going to let
| the internet get a hold of that.
|
| In addition to the user-controlled modes I also have ambient
| modes. My favorite is a clock that struggles to draw the
| current time because it takes too long
| Mabusto wrote:
| You gotta do the classic bouncing logo from The Office.
| benholmen wrote:
| Genius. I'll do this when I install it in my Zoom
| background and take it off the internet
| cinntaile wrote:
| There was a fish project on here a few days ago that also had to
| deal with uh... adverserial images and it was (mostly?) solved by
| training a neural net to detect those.
| benholmen wrote:
| TTFP will surely be < 1 day
| rightbyte wrote:
| The constraint that the picture needed to be a right facing
| fish made it somewhat easier though. Now I need to paint
| another fish...
| xnx wrote:
| Wow. Impressive. I would never have guessed you'd use a Vanna
| White / Wheel of Fortune turning method.
| benholmen wrote:
| That it, the method will forever be called the Vanna White
| Method
| mjwhansen wrote:
| Ben, can I get a vowel, please?
| explodingwaffle wrote:
| This is awesome! Just so you know, you are legally obligated to
| do Bad Apple when interest dies down.
| alnwlsn wrote:
| By my estimation, it would only take 1/3 of a year to render
| benholmen wrote:
| y'know, I've been excited / feared that Bad Apple would show
| up. The good news is a lot of frames would probably just be a
| few pixels to change from the previous frame, so some might
| draw really quickly.
|
| Basically you want to avoid keyframes on this thing, they'll
| kill you
| drivers99 wrote:
| Some of the ports of Bad Apple have had to deal with this
| and they narrowed it down to the few changes needed for
| each frame. When there were too many pixels to change all
| at once, they would make fewer changes in exchange for a
| loss of quality.
|
| https://trixter.oldskool.org/2014/06/19/8088-domination-
| post...
|
| https://trixter.oldskool.org/2014/06/20/8088-domination-
| post...
| eclipticplane wrote:
| Amazing.
|
| Could turn this into a 4 color display at the cost of drawing
| speed?
| benholmen wrote:
| Yes! I have an RGB sensor that could handle that, but it's more
| bulky than the simple IR on/off sensor I went with. Could be
| four colors, or four shades of a color.
| stavros wrote:
| Why do you need a sensor? Don't you always know what face
| each cube is showing?
| xpe wrote:
| You could order the presentation of a set of images by some
| distance metric :)
|
| - naively: Levenshtein
|
| - better: real world edit time based on a model of the display :
| probably dominated by XY travel distance
| benholmen wrote:
| Oh I kinda love the idea of drawing the next one based on the
| pixel diff! Would be fun to game that queue.
| skrebbel wrote:
| you could have it render a movie
| sphars wrote:
| This version of the Bad Apple meme[0] does just that, with
| physical apples: https://www.youtube.com/watch?v=lT-fdnIK0k0
|
| [0]: https://knowyourmeme.com/memes/bad-apple
| munificent wrote:
| I was wondering about the algorithm to drive the plotter and
| update pixels, which ties into this.
|
| Given the current image being shown and the next image, you
| (presumably) want to plot the pixels of the next image as
| quickly as possible. I believe the optimal algorithm is:
|
| 1. Calculate the set of pixels that are changed between the
| current and next image.
|
| 2. Find the shortest path from the plotter's current position
| through each of those pixels. I believe breadth-first search
| (O(n)) is sufficient here.
|
| Running this on all potential upcoming images and choosing the
| one with the lowest total path cost would do what you propose
| under "better".
| ashleyhindle wrote:
| This is so great
|
| How is it volume wise while it's working? Manageable or painful?
| benholmen wrote:
| Pretty quiet! I spent some time figuring out how to make sure
| the stepper motors don't whine (the answer is microstepping and
| decent motor controllers). The pixel turning is very quiet
| unless it misses slightly, then it makes a clunk.
| xpe wrote:
| Another idea: have the cubes point an edge straight forward
| (instead of a face). Then if each cube has two adjacent dark
| sides and two adjacent light sides, one could setup _two_
| 'simultaneous' images: one viewed from the left at 45deg and
| another viewed from the right. (Each pixel would have four
| possibilities.)
| boothby wrote:
| Similarly, the camera could stay face-on and double the pixel
| count with largely the same hardware.
| zahlman wrote:
| For this to work, you'd want two adjacent faces painted,
| rather than opposite faces being painted, which seems to be
| how they're currently done (unless they only have one face
| painted?). Then the four possible rotations would allow for
| each possible pixel-pair. (The cubes could perhaps instead be
| squat rectangular prisms, to correct the aspect ratio, too.)
| boothby wrote:
| Likewise, if you generalize to 3-face array, you'd need an
| octagonal unit painted in a 2^3 debruijn sequence...
| mxfh wrote:
| If you're willing to sacrifice a color just use
| triangles/prisms the faces could then just be virtually
| adjacent and still rotate independently
|
| https://excalidraw.com/#json=driyv7dR-eODBzuh_hdrk,93QQvkYae...
| mxfh wrote:
| I guess the patents are long expired now and don't really
| apply to pixels, but that concept exists already for non-
| pixelated images and sadly these are replaced mostly by LEDs
| now in the wild:
|
| https://www.rotapanel.com/trivision-mechanism-and-prism-
| type...
| boredpudding wrote:
| This used to exist! I remember a video about this large analog
| billboard in Amsterdam (?).
|
| Unfortunately I can't find the video. Will edit if I do (or
| anybody else finds it first).
| smokel wrote:
| Perhaps you are thinking of Daniel Rozin's "Wooden Mirror"
| (1999)?
|
| https://www.smoothware.com/danny/woodenmirror.html
| benholmen wrote:
| Rozin was a direct influence on me! Seeing his stuff ~10
| years ago got me thinking about unorthodox displays.
| boredpudding wrote:
| That's a very good one, but in my case it was a huge
| billboard that was advertising movies and stuff.
|
| It had cubes in different colors so from further away it
| would look like an image.
| fentonc wrote:
| Awesome project! I built a somewhat similar 30-pixel display:
| https://www.chrisfenton.com/the-pixelweaver/
|
| Mine was entirely mechanical (driven by punch cards and a hand-
| crank), and changed all of the pixels in parallel, but a lot of
| the mechanism development looked extremely familiar to me.
| benholmen wrote:
| This is incredible! I can appreciate how much work it took to
| make this happen. Well done!
|
| I was recently in the presence of some linotype machines from
| the 1800s and it's so good to be humbled by the achievements of
| people who came before us. That machine was so complex, I could
| barely begin to figure out how to manufacture one. Your
| discussion of looms reminds me of that!
| cgriswald wrote:
| This is great, but you can get even more impractical: build a
| framebuffer!
| joshmanders wrote:
| This is awesome, Ben!
| derefr wrote:
| Speaking of "alternatives to e-ink for a zero-power-use-when-not-
| updating dot-matrix display"...
|
| Has there ever been designed a "display" that is just a thermal
| printer hidden in one end of a box, and a take-up spool +
| tensioning spring hidden on the other end, such that the
| "display" is then a continuous thermal paper "scroll" stretched
| across the box behind [UV-protective!] glass, that can be
| "refreshed" by printing a new full-width image to the thermal
| printer?
| cgriswald wrote:
| Allow me to correct you: Some fax machines use thermal paper so
| your display can be at least 8.5".
| tristor wrote:
| Ooh, I like this idea. You could also use the box structure to
| stretch the display so it has 4 sides if you build the
| mechanism correctly, which means as you refresh the image on
| the "primary" display it moves the other images to the
| secondary, tertiary, and quaternary displays before it gets
| taken up. You can use tensioned rollers at each corner hidden
| by the frame if you plan for a gap for "bezel".
| daotoad wrote:
| If you wanted to take this a little further, you could cover
| the "display" with heat erasable ink like is used in a Pilot
| Frixion pens.
|
| This ink is interesting in that it fades when heated (60 C),
| but darkens when cooled (-10 C). In between those temperatures
| it is stable.
|
| Thus you could have one loop that is continuously reused. Not
| sure how many cycles you can get before the ink degrades.
| gmueckl wrote:
| I like that idea. The printing process should probably be
| inverted: cool the paper as a whole to darken the whole sheet
| amd use a small heating coil to erase.
| turtlebits wrote:
| Not sure if you can call it a display if you have to throw it
| away to change an image.
| mjwhansen wrote:
| Such a cool project, Ben!
| saltcured wrote:
| I keep trying to imagine "faster" variations.
|
| What about some system to shoot wooden spheres into a tube or
| channel for each scan line, selectively feeding different color
| spheres. Some combination of gravity or pneumatics to drive it.
| So a scan line would flush out one end and refill from the other.
| Then scale it up to a stadium size unit with bowling ball pixels.
|
| I guess a challenging part would be proper timing to recycling
| the colors back into their appropriate supply channels. And also
| introducing some kind of damping to quiet it down and reduce the
| wear and tear on the pixels.
|
| On the other extreme, you could go active matrix and have blocks
| that simply rotate in place to show different face colors based
| on some solenoid/servo action.
| rented_mule wrote:
| Your idea is not too far from marble pixel art machines...
| https://youtu.be/w1ks0Vy98KI
| jstanley wrote:
| Hah, cool, I had an idea for a similar project (although I'm not
| crazy enough to make 1000 pixels, or a robot to turn them for
| me). But I got as far as making a JavaScript simulation and
| realised I couldn't be bothered manually turning the beads
| https://incoherency.co.uk/beadboard/
| re wrote:
| Really cool! I just watched it finish "cat saying 'hi'". It
| doesn't look like any new posts have shown up on @kilopx.com on
| Bluesky for the last 9 days though.
|
| A few suggestions for improvements:
|
| - After completing a submission, move the "pen" out of the way as
| much as possible to get a clean photo of the completed art before
| moving onto the next submission.
|
| - On the website, show attribution for the currently in-progress
| submission.
|
| - On the website, have a "history" gallery for completed
| submissions. It looks like pending submissions have permalinks
| that say "Timelapse will be available after this is drawn", but
| there's no way to discover permalinks for completed submissions
| (or the in-progress one).
| rexreed wrote:
| This is cool. I wonder, as you were iterating on the design and
| development, why didn't you start with a very small grid (10x10)
| to validate or test different options for their practicality and
| operation before scaling up to the 1000 pixel versions? It might
| have saved a lot of time and money, but maybe small scale tests
| aren't sufficient to work out the kinks?
| paulorlando wrote:
| Reminded me of NYU's Wooden Mirror Project:
| https://www.youtube.com/watch?v=Wb6eFGbwPeA
| CodeWriter23 wrote:
| Best practical application of glue stick ever!
| alexandersix_ wrote:
| When you commit, you really commit. What an incredibly cool
| project.
|
| I need to go find some corgi art to upload next!
| yubblegum wrote:
| It may be "ridiculous" but the fact remains that you are
| (clearly) awesome.
| hugs wrote:
| I'm working on something similar, but 3D and faster motion:
| PinThing / TAP (Tangible Actuated Pins) [1]
|
| "Motorized pin art display" is what i'm going for...
|
| The problem with passion projects: Progress is never as much or
| as fast as I want, though! Hard to find the people who want to
| throw money at things like this and/or buy them. And anything
| mechanical gets complicated and expensive very quickly. But it's
| so much fun and a great way to learn and apply so many new
| skills: laser cutting, 3D printing, CNC milling, circuit design,
| embedded programming, etc.
|
| [1]: https://youtu.be/tx4W3ZDA_Vg
| theletterf wrote:
| A refresh rate of 370 microhertz gives "Calm Technology" a whole
| new meaning. I love it.
|
| https://en.wikipedia.org/wiki/Calm_technology
| bl0rg wrote:
| Coincidentally that's also the framerate of the YouTube stream
| main camera (please fix OP)
| lemonberry wrote:
| This is really interesting. Have you read Amber Case's book,
| "Calm Technology"? If so would you recommend.
| theletterf wrote:
| I do! https://passo.uno/best-tech-writing-books/
| lemonberry wrote:
| Thank you! I subscribed to your RSS feed too. Nice
| interrobang reference in your About Me.
| yunusabd wrote:
| Very nice!
|
| > I have a mechanism to quickly delete problem submissions.
|
| Did you build a male genitalia swastika classifier like the fish
| guy? (What a sentence)
|
| https://news.ycombinator.com/item?id=44719222
| tlaverdure wrote:
| This has been a fun project to follow. Great job, Ben! Hope I'll
| see one of these in a coffee shop, mall, or airport one day.
| dpe82 wrote:
| Super cool project! I see the map on the wall.. where in
| Wisconsin are ya?
| benholmen wrote:
| Western Wisconsin, Eau Claire. It's beautiful here
| TrnsltLife wrote:
| Very cool. I loved reading your write-up. It reminded me of
| something I'd read in a steampunk novel once. I had to Google it
| to get the details. It's the kinotrope from Gibson & Sterling's
| Difference Engine.
|
| I found a blog post about it and someone who made one with a
| servo for each pixel. Now that would be expensive!
|
| https://differencing.blogspot.com/2010/04/kinotrope-clackers...
| jwagenet wrote:
| Breakfast design has made a number of similar panels with
| different "mediums", likely inspired by Rozin's work:
| https://breakfaststudio.com/works/echo
| antithesizer wrote:
| Evil triumphs when good people lean into their hobbies.
| paulgerhardt wrote:
| See also Daniel Rozin's _Wooden Mirror_ [1999]
|
| https://digitalartarchive.siggraph.org/artwork/daniel-rozin-...
| _giorgio_ wrote:
| It reminds me of this
|
| In Christopher Nolan's "Interstellar," the "Interstellar library"
| refers to the tesseract, a 5-dimensional space within a black
| hole, visualized as a bookshelf. This structure is not a physical
| library but rather a construct created by future humans, allowing
| Cooper to interact with the past and relay gravity data to his
| daughter, Murph.
| donatj wrote:
| Oh hey, I know you IRL from the PHP meetups! I've been watching
| this develop on Bluesky!
|
| Super cool project.
| bobafett-9902 wrote:
| this is so cool! add some Mark Rober build type music montage and
| this is a viral video on YT
| grliga wrote:
| this similar(?) one paints one pixel at a time, but with ping
| pong balls
|
| https://everyware.kr/home/portfolio/r/
| joemi wrote:
| This is pretty cool as-is, but I can't help but try to think up
| ways to increase the speed. (Not the point, I know.) I feel like
| it should be able to do a whole column pretty quickly with some
| optimizations. If the device that turns a block could do so
| without needing x-axis alignment to change, then you could do a
| whole column pretty quickly. Or perhaps it'd be better to do rows
| instead of columns, since the y-axis alignment shouldn't need to
| change with the current device. As for the block-turning device
| itself, I think some sort of thing that rotates would speed
| things up since you wouldn't need to reset, I think. I bet a
| manufacturing automation specialist could get this thing
| cruising...
|
| BTW I love that you initially went with a very direct e-ink
| analog with the balls!
| jamestimmins wrote:
| This is really exciting. The world of non-electronic computer
| interfaces has a ton of potential, so I love seeing people build
| them and write up their experiences.
|
| Congrats OP!
| stavros wrote:
| This is fantastic, great job! I loved reading about the process,
| and it's the sort of pointless thing I really enjoy seeing done
| to perfection.
| crimony wrote:
| You have four sides to each pixel cube, have you considered
| black, white and two grey levels?
| christophilus wrote:
| Rad. The occasional crazy project like this is what keeps me on
| HN.
| fitsumbelay wrote:
| this is what I come to hacker news for. this. so awesome
| mappu wrote:
| There's a full colour one of these in the entrance hallway inside
| the Berlin Technikmuseum, near the Zuse exhibit - there are 12800
| cubes, each with 4 colours:
| https://www.youtube.com/watch?v=BfWFLnsy6QA
| 0x696C6961 wrote:
| But can it run doom?
___________________________________________________________________
(page generated 2025-08-04 23:00 UTC)