The Kilopixel recap - season one

August 22, 2025

THE KILOPX RECAP

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:

HACKER NEWS

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.

Screenshot of Hacker News with my article in the top spot

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.

PINCH ME

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...

[image or embed]

— Sam Cole (@samleecole.bsky.social) August 6, 2025 at 8:49 AM

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!

Some favorite submissions

You can view a timelapse of the kilopixel drawing each submission. There were too many to include, so view the full gallery!

Kilopixel art by Matt Stauffer Kilopixel art by aldmors.bsky.social Kilopixel art by papasmurfio69.bsky.social Kilopixel art by Jesse Donat Kilopixel art by Andrew Feeney Kilopixel art by Chris Morrell Kilopixel art by Dane Kilopixel art by Gustavo Karkow Kilopixel art by manyone1.bsky.social Kilopixel art by 0x010f.bsky.social Kilopixel art by Xevion Kilopixel art by Justin Kilopixel art by Jesse Donat Kilopixel art by Chris Morrell

View all submissions

LET'S BREAK IT DOWN

Everybody likes hard numbers.

  • 200,840+ visitors on the blog + controller
  • 15,840 minutes of livestreaming (11 solid days)
  • 206,204 pixels changed
  • 20,539 views on the live stream (favorite comment: "I was only able to get about seven hours into this before I lost interest...")
  • 421 submissions to be drawn
  • 0 penises drawn (not for lack of trying)

Here's a heatmap of the most popular pixels changed: Pixel change heatmap

TY $NET

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!

benholmen.com unique visitors graph benholmen.com requests graph benholmen.com bandwidth graph

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.

kilopx.com unique visitors graph kilopx.com requests graph kilopx.com bandwidth graph
YOU ASKED

Some common questions and suggestions:

Why not put the arm behind the display so it's not in the way?

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.

What does it sound like?

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.

How big is it?

The kilpixel is about 49 × 30 inches (1250 × 750 mm). Each pixel is about 0.75 in (19mm) square.

How does it pick the next pixel?

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.

You should keep it running!

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.

What's next?

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.

THANKS FOR WATCHING

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.

fin.

Popular Posts

Recent Posts

View all