73 comments

  • fentonc 2 days ago
    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 2 days ago
      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!

      • knome 2 days ago
        If you enjoy linotype machines, I'll suggest you watch 'Farewell ETAOIN SHRDLU', a documentary on the last night the New York Times ran its hot press system
  • re 2 days ago
    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).

  • theletterf 2 days ago
    A refresh rate of 370 microhertz gives "Calm Technology" a whole new meaning. I love it.

    https://en.wikipedia.org/wiki/Calm_technology

    • lemonberry 2 days ago
      This is really interesting. Have you read Amber Case's book, "Calm Technology"? If so would you recommend.
    • bl0rg 2 days ago
      Coincidentally that's also the framerate of the YouTube stream main camera (please fix OP)
      • benholmen 2 days ago
        I think the issue is that I'm streaming to disk with ffmpeg and recording at 5 fps to save space. OBS must be locked to the same frame rate since it's sharing the webcam?

        My original concept included two webcams, one for OBS, one for ffmpeg. Guess I should have gone with that!

  • aarondf 2 days ago
    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
    • Rexxar 2 days ago
      And absolutely no energy consumption when you don't change the image.
      • kulahan 2 days ago
        Move over, e-ink displays. A new king is in town.
        • wkat4242 2 days ago
          This will be my new Kindle!

          Only drawback is having to hire a C130 if I want to take it on a trip with me :')

      • joemi 2 days ago
        It was directly inspired by e-ink, after all.
    • ortusdux 2 days ago
      I think the Mythbusters might still hold the record - https://youtu.be/ZrJeYFxpUyQ?si=pysqKGFiDO99oyvD&t=476
    • benholmen 2 days ago
      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
      • lemonberry 2 days ago
        But the experience and feeling of building it... priceless. Money can't account for that.
      • zahlman 2 days ago
        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...)
        • ralferoo 2 days ago
          When I was a kid, my school had several "1 litre" tubs of 1cm³ wooden cubes so that we could stack them 10x10x10. This would have been very early 80s UK.

          Just googled and I found some on Shein with 200 cubes for £2.50. They also have 2cm sized ones at £1.31 for 20 cubes and 4cm ones for £1.88 for 4 cubes.

          You'd still have to drill holes in them all, but I wonder if a different solution might be possible - for instance holes in the wooden strips between the rows of cubes that are slightly wider than screws that hold the cubes suspended from the strips. If they weren't too tight, the cube could rotate freely. But maybe just drilling holes using a CNC would easier (and potentially you could drill all the holes on a flat plane of wood before cutting up into cubes).

    • zer00eyz 2 days ago
      > I created a reciprocating poking mechanism that uses a flexible glue stick

      With the most cost effective and creative "wear item" ever.

      • benholmen 2 days ago
        I was extremely pleased with that discovery! Needed something a little grippy, pliable yet firm, and disposable.
    • robocat 2 days ago
      Some more fabulous expensive pixels, the Danny Rosin mirrors mentioned in the article:

      https://youtu.be/0o_9CHYeRvI

      • sleepybrett 2 days ago
        I came to post about Rosin's work as well. I personally love that he uses clever lighting and angles to create the shading for his pixels instead of just painting one side. It makes it feel like a mirror, all one material like a magic wallhanging.

        That said the one I experienced was an earlier work had was fully driven by hobby servos (or something that sounded very much like them) and when you get even one of those going it's loud as hell. I didn't get to look at the construction too closely and this was many years ago. I expect that he did some kind of sound dampening because it wasn't as.. deafening as I expected. But it still kinda 'took me out of it' a bit.

  • xpe 2 days ago
    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 45° and another viewed from the right. (Each pixel would have four possibilities.)
    • mxfh 2 days ago
      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...

    • boothby 2 days ago
      Similarly, the camera could stay face-on and double the pixel count with largely the same hardware.
      • zahlman 2 days ago
        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 2 days ago
          Likewise, if you generalize to 3-face array, you'd need an octagonal unit painted in a 2^3 debruijn sequence...
          • zahlman 1 day ago
            ... But that's as far as you could take it, since 16-gons would show at least 7 faces while only having an encoding for 4.

            I also thought of using hexagonal prisms, showing two faces at a time in paired colours but using three colours. These would also need much less clearance in order to rotate freely, compared to face-on cubes.

    • robocat 2 days ago
      Or paint the 4 faces RGBK or CYMK or to get a colour display?
  • GistNoesis 2 days ago
    As an experiment, I just spray painted 66 magnet spheres in half, to make a physical display in 5 minutes. I manually rotated the sphere into position and it holds the image.

    https://gist.github.com/unrealwill/b8f585758880009113805bd95...

    Small spherical magnets are quite cheap.

    There is hope of physically moving them if you put each sphere into a 3d-printed countersink hole over some metal sheet (so that the magnet is hold in place against the plastic), moving a electro-magnet head over you can rotate the magnet, like a scaled-up version of a 2d magnetic tape.

    You may even create a Ising model if you put magnets too close to each other.

  • TrnsltLife 2 days ago
    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...

  • bubblebeard 2 days ago
    It’s great to see someone doing something just for the love of doing it. We so often get wrapped up in reaching a goal we forget the journey is what matters most. The curiosity and will to learn new things. I think this project reflects this quite well, and bravo on this amazing achievement. It’s seriously badass.
  • mappu 2 days ago
    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
  • derefr 2 days ago
    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?

    • daotoad 2 days ago
      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.

    • tristor 2 days ago
      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".
    • cgriswald 2 days ago
      Allow me to correct you: Some fax machines use thermal paper so your display can be at least 8.5".
    • turtlebits 2 days ago
      Not sure if you can call it a display if you have to throw it away to change an image.
    • Maxion 2 days ago
      Look into ticker tape, and dot matrix printing, this is how early computer displays worked.
  • xpe 2 days ago
    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

    • munificent 2 days ago
      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".

    • benholmen 2 days ago
      Oh I kinda love the idea of drawing the next one based on the pixel diff! Would be fun to game that queue.
  • saltcured 2 days ago
    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 2 days ago
      Your idea is not too far from marble pixel art machines... https://youtu.be/w1ks0Vy98KI
      • benholmen 2 days ago
        I love this project! I was well on my way with the kilopixel when I find him or it would have given me pause.

        He's optimizing for some very different things though.

  • cinntaile 2 days ago
    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 2 days ago
      TTFP will surely be < 1 day
    • rightbyte 2 days ago
      The constraint that the picture needed to be a right facing fish made it somewhat easier though. Now I need to paint another fish...
  • fuzzieozzie 10 hours ago
    A more practical project that has been commercialized: https://www.vestaboard.com/
  • joemi 2 days ago
    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!

    • leoc 2 days ago
      If you had a rotating mechanism which allows slip then you could have rotor shafts which rotate all the blocks in a column while braking mechanisms prevent all the blocks in a given row from moving. Or you could have both rotor rows and rotor columns if you implement a rough mechanical equivalent of the hysteresis systems of ferrite-core memory. Or (I think GistNoesis suggested something similar https://news.ycombinator.com/item?id=44794092 ) if you hide a neodymium permanent magnet just under one corner of each of the blocks you could use a pair of electromagnets behind that block to pull the block from either orientation into the other, almost a solid-state solution apart from the axle the block would rotate on and potentially one which could set the entire display at once.
    • benholmen 2 days ago
      Thanks for thinking through it! I've found that moving left-right is a little noisier and has a little vibration - up-down is smoother. However, it's not that noisy and it'd be fun to experiment with different algorithms for finding the next pixel.
  • hugs 2 days ago
    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

    • benholmen 2 days ago
      I love this so much! Will it be mounted so that gravity makes the pins fall back down or do you need a retraction mechanism?
      • hugs 2 days ago
        it's all motorized, so it can be wall-mounted or table-top mounted.
  • mister_mort 2 days ago
    Opening the site and immediately seeing it drawing a frame from Bad Apple was amusing, I suspect someone will attempt to automate submissions of frames from that video at some point.
  • paulorlando 2 days ago
    Reminded me of NYU's Wooden Mirror Project: https://www.youtube.com/watch?v=Wb6eFGbwPeA
  • crimony 2 days ago
    You have four sides to each pixel cube, have you considered black, white and two grey levels?
  • CommenterPerson 1 day ago
    This is very cool. I might have the skills to replicate this but would never be able to accomplish it. My brain is warped .. to get motivated, I need the end result to be of some tangible value. Pure fun doesn't work for me, sadly. I am also unable to go and learn something just for the sake of learning.

    Just an aside, an I realize efficiency is NOT a metric for your fabulous display .. here is another interesting mechanism. Maybe one could build a 10K or 100K display with this?:

    https://en.wikipedia.org/wiki/Split-flap_display

  • yupyupyups 2 days ago
    https://benholmen.com/assets/images/kilopixel/assembling-tim...

    Legends say this is how MicroLEDs are made, one pixel at a time. That's why they are so expensive.

  • curiosity42 2 days ago
    Absolutely wild this came up today. Just last night I was fiddling with my kids 'magnetic ball board', bought at SF MoMA, and thinking that it could be turned into a cool display by loading a small magnet on the 3-d printer gantry.
  • eclipticplane 2 days ago
    Amazing.

    Could turn this into a 4 color display at the cost of drawing speed?

    • benholmen 2 days ago
      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 2 days ago
        Why do you need a sensor? Don't you always know what face each cube is showing?
  • explodingwaffle 2 days ago
    This is awesome! Just so you know, you are legally obligated to do Bad Apple when interest dies down.
  • yunusabd 2 days ago
    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

  • seltzered_ 2 days ago
    Very neat to see! I've been wanting to make one for ~15 years, one approach to making one would be inspired by a wooden binary counter where each 'pixel' has a gravity latch that rolls out when on one side and triggers a flip for the next adjacent pixel: https://youtu.be/zELAfmp3fXY

    Also worth noting this art project: http://breakfastny.com/dot-screen

  • verdverm 2 days ago
    Mumbo Jumbo built a similar concept on Hermitcraft using trap doors. There is a revolution going on called "buildstone", using redstone to create aesthetics

    Mumbot 2.0 https://www.youtube.com/watch?v=uUzU8HnjBI4&t=1108s

    Grian made an animated waterfall with dispensers, snow particles, and potioned arrows: https://www.youtube.com/watch?v=gGPS8hURZks

  • rudasn 2 days ago
    Super cool and congrats for getting it done. You should be proud, even just for persisting all these years.

    Also, I'm surprised "All your base are belong to us!" hasn't been submitted yet!

  • mosdl 2 days ago
    Really cool and it would totally work for a restaurant/coffee shop.
    • benholmen 2 days ago
      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 2 days ago
        You gotta do the classic bouncing logo from The Office.
        • benholmen 2 days ago
          Genius. I'll do this when I install it in my Zoom background and take it off the internet
  • joetannenbaum 2 days ago
    Incredible write-up and a hugely ambitious project. Thanks for sharing!
  • aidenn0 2 days ago
    I wonder how hard it would be to get two consecutive images that are pixel-wise inverses of each other in the queue; maximum rendering time!
  • jstanley 2 days ago
    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/
  • _giorgio_ 2 days ago
    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.

  • rexreed 2 days ago
    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?
    • benholmen 2 days ago
      Definitely! I scaled up to 3×21 to validate some things and immediately broke a lot of what I thought would work.

      I tested a 1×10 grid of the wooden pixels to try out some different variations as well.

  • wraptile 2 days ago
    There's always something new and novel in each mechanical display projects. Love reading these!
  • johnorourke 2 days ago
    It's the 'camera' from the book Project Hail Mary!

    https://en.wikipedia.org/wiki/Project_Hail_Mary

  • pstuart 2 days ago
    I have to confess I only skimmed it, but it seems that if the choice is to rotate an object, then using a simple flap on an axis would be both cheaper and likely faster (less mass to move). I realize that efficiency was not a goal, but it does align with the pricing issue.
  • xnx 2 days ago
    Wow. Impressive. I would never have guessed you'd use a Vanna White / Wheel of Fortune turning method.
    • benholmen 2 days ago
      That it, the method will forever be called the Vanna White Method
  • alexandersix_ 2 days ago
    When you commit, you really commit. What an incredibly cool project.

    I need to go find some corgi art to upload next!

  • grliga 2 days ago
    this similar(?) one paints one pixel at a time, but with ping pong balls

    https://everyware.kr/home/portfolio/r/

  • ahmed_ssh 2 days ago
  • dandaka 2 days ago
    Why is the pen in front and not behind the display? It would allow for a clear view; now it is obstructed.
  • jamestimmins 2 days ago
    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!

  • boredpudding 2 days ago
    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 2 days ago
      Perhaps you are thinking of Daniel Rozin's "Wooden Mirror" (1999)?

      https://www.smoothware.com/danny/woodenmirror.html

      • boredpudding 2 days ago
        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.

      • benholmen 2 days ago
        Rozin was a direct influence on me! Seeing his stuff ~10 years ago got me thinking about unorthodox displays.
  • stavros 2 days ago
    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.
  • paulmooreparks 1 day ago
    I'd love to see Conway's Game of Life on this thing.
  • tlaverdure 2 days ago
    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.
  • donatj 2 days ago
    Oh hey, I know you IRL from the PHP meetups! I've been watching this develop on Bluesky!

    Super cool project.

    • benholmen 2 days ago
      Hey, I know you! Thanks for checking it out, looking forward to seeing you at the next PHP×MSP!
  • shiandow 2 days ago
    Apparently I can't watch tge feed without logging in, that's kind of annoying.
  • enopod_ 2 days ago
    Ben, the arm seems to be misaligned, it is punching into the shelfes!
  • yubblegum 2 days ago
    It may be "ridiculous" but the fact remains that you are (clearly) awesome.
  • ltbarcly3 2 days ago
    Incredibly cool, but how is there not a single video on the page!?
  • dpe82 2 days ago
    Super cool project! I see the map on the wall.. where in Wisconsin are ya?
    • benholmen 2 days ago
      Western Wisconsin, Eau Claire. It's beautiful here
  • cgriswald 2 days ago
    This is great, but you can get even more impractical: build a framebuffer!
  • dan00 2 days ago
    That's absolutely useless and that's great!
  • ashleyhindle 2 days ago
    This is so great

    How is it volume wise while it's working? Manageable or painful?

    • benholmen 2 days ago
      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.
  • 0x696C6961 2 days ago
    But can it run doom?
  • dripdrapdroop 2 days ago
    I wish everything in the world was like this.
  • joshmanders 2 days ago
    This is awesome, Ben!
  • mrheosuper 2 days ago
    it's mandatory to play bad apple on it.
  • CodeWriter23 2 days ago
    Best practical application of glue stick ever!
  • bobafett-9902 2 days ago
    this is so cool! add some Mark Rober build type music montage and this is a viral video on YT
  • Ayushmishra23 23 hours ago
    make a youtube video
  • mjwhansen 2 days ago
    Such a cool project, Ben!
  • fitsumbelay 2 days ago
    this is what I come to hacker news for. this. so awesome
  • paulgerhardt 2 days ago
    See also Daniel Rozin’s Wooden Mirror [1999]

    https://digitalartarchive.siggraph.org/artwork/daniel-rozin-...

  • christophilus 2 days ago
    Rad. The occasional crazy project like this is what keeps me on HN.
  • GypsyKing716 1 day ago
    Sounds like a huge waste of time.
  • wkat4242 2 days ago
    I don't see a live view on kilopx.com? That's a bit disappointing.

    Edit: Oops there is, it was an issue on my side.

    • rasguanabana 2 days ago
      There is a live view, but it looks like the machine has broken down
      • wkat4242 2 days ago
        Oh yes I see it's a YouTube embed, I had those blocked sorry
  • zakirullah49 2 days ago
    Come on
  • techlatest_net 2 days ago
    [dead]
  • antithesizer 2 days ago
    Evil triumphs when good people lean into their hobbies.