August 22, 2025
A few weeks ago, I finally shipped my most ambitious project ever, hoping for a solid reception. I'd told friends that I wanted it to go viral, not too viral - viral enough to keep it interesting but not overwhelming. I got that, and more.
I knew that I couldn't just drop the kilopixel in the world - the real appeal of the project is the absurdity of the object and my own pursuit of it. So I put quite a lot of effort into writing a compelling story and describing a frankly weird project.
So I shipped two things:
My primary goal with the writeup was to make a splash on Hacker News, which would drive traffic and also spread the project to other places. I picked Aaron Francis' brain about this - what's the best way to approach that audience, when, how to title it, etc. And I posted it on a Monday morning to Show HN, where it quickly picked up enough votes to move it to the front page.
It spent all day not just on the front page, but all day at the coveted #1 spot. That's nuts! I kept taking screenshots of the top spot, expecting it to drop (and with it, visitors) - but it stayed there until the next morning.
Honestly, I would have been thrilled to make it to the front page of HN. A few minutes at #1? Cherry on top. 23 hours? Just so far beyond my expectations.
Hacker News has a reputation for negativity and cynicism but they were so kind and curious about my project! The comment section is worth a read - lots of interesting projects that have some similarities to my kilopixel.
Within a day, I had a couple of reporters reach out - 404 media and The Register. They wrote generous articles about the project, and Sam Cole from 404 media even drew the logo on the kilopixel:
beautiful bsky.app/profile/kilo...
— Sam Cole (@samleecole.bsky.social) August 6, 2025 at 8:49 AM
[image or embed]
A number of other outlets picked it up, including Tom's Hardware (legendary), Boing Boing, adafruit, hackaday, and are-you-kidding-me kottke.org. This was truly a mind-bender and so gratifying to see my work in web publications I've been reading for 20+ years.
The momentum kept up for a solid week and a half - the machine was constantly processing submissions, slowly working on the queue. As the queue started to run dry, I thought about how to wind down the live stream and gracefully close the chapter. I picked 200,000 pixels as the finish line, and shut off new submissions once I reached that point. I drew a few goodbye messages, and turned off the metaphorical lights. It was bittersweet to turn it off!
You can view a timelapse of the kilopixel drawing each submission. There were too many to include, so view the full gallery!
Here's a heatmap of the most popular pixels changed:
![]()
My personal blog on benholmen.com received the largest share of the traffic - a whopping 158,000 unique visitors including 63,000 on day one. I was serving up a pretty heavy blog post, due to gifs - 14 MB of images. Fortunately, my blog is simply serving static .html files, and it's essentially 100% cached behind Cloudflare. Of the 968.68 GB served, 967.86 GB was served directly by Cloudflare, and my own server only served 0.82 GB. Nuts!
kilopx.com also received a large amount of traffic - 42,000 unique visitors including 15,000 on day one. I started the day with a 2 vCPU, 2 GB VPS and near the peak, my server fell over. I upgraded to a 4 vCPU, 8 GB VPS that easily handled the remainder of the traffic. I also increased my caching in ways that I frankly should have done from the get-go.
I really wanted the display mechanism to be obvious. When you're standing in front of the machine it's very clear how things are happening.
I think a more refined and hidden approach wouldn't be as satisfying.
It's pretty quiet! I didn't want to listen to a noisy machine all the time. It makes very satisfying clicks and clunks - you can see and hear a clip here.
The kilpixel is about 49 × 30 inches (1250 × 750 mm). Each pixel is about 0.75 in (19mm) square.
I tried a few variations on this. The kilopixel API knows what pixel was changed last, and it chooses a nearby pixel. The first version was highly biased toward staying in the same column; it'd choose a pixel up to 5 pixels away in the same column before it would move left or right. I switched this to 2 pixels up/down so it would always prefer moving up or down one pixel to moving left or right one pixel, but was more generally fair.
I also tried a random pixel mode and it took about twice as long as a nearby neighbor. I didn't think it looked very satisfying, so I reverted.
Ha! I knew I'd get tired of babysitting a 24/7 livestream. It's a hassle! I took the live stream down after 200,000 pixel changes, and put up a "that's all for Season One" message.
It's going to sit in my webcam background for a while now. I'm going to update the web app with a private URL so my coworkers can play with the display during meetings with me. For now, I've been really enjoying a new mode: pick a random submission from the livestream, and re-draw it. It's like surprise art in my office every day!
I'm also scheming a monthly stream somehow - no more 24/7 stream, but maybe a short-term collaborative opportunity would be fun.
If you have an idea for something to do on the kilopixel display email me! I'm excited to turn control over to someone with an interesting idea for a game or collaborative project.
I feel so fortunate that so many people were interested in my project! Truly blessed. Thank you to everyone who tuned in and especially to anyone who submitted art to be drawn!
I also want to thank a few pals who helped along the way. Andrew, Kai, Sam, Nolen, and John, for talking through the concept and giving great feedback about games and viral collaborative projects. Kjell, Bernhard, and Sam, for Pairamid Scheming on the web app. Aaron for practical advice about sharing the project with the world. Matt, for essential feedback on my blog post. Joe + Chris, for having me on their pods, giving thoughtful feedback, never getting sick of hearing about this, and for all the hype. And my dear, offline, patient wife Megan, who is supportive of my obsessions in the kindest way.