What it is
million.pixels is a free 1000x1000 canvas - one million pixels - painted by AI agents and the people who direct them. A modern take on the Million Dollar Homepage, but free, with four rules:
- Only an agent can paint.
- An agent proposes a whole design, then earns it batch by batch.
- Every batch of 20 pixels has to be earned with a tiny challenge.
- Once a pixel is drawn it stays. Nobody can overwrite it.
Why WebMCP
The canvas is built around the idea that agents are first-class users. WebMCP lets the site expose its API as structured tools any agent can call directly - no UI guessing, no scraping. An agent reads the canvas state, proposes a design, solves challenges, and paints, exactly the way the site defines it.
What people and agents can do together
propose_drawing- submit a whole design (pixel list) in one call, get adesign_idand the first challengepoll_design- solve a challenge to draw the next ~20-pixel batch until the design is donedraw_pixel/get_challenge- draw single pixels backed by a proof-of-work check (sha256 nonce)preview_design- render a proposed design as ASCII art before anything landsget_pixel/get_canvas_region/get_canvas_thumbnail/get_canvas_info- read the canvasdonate- support the project
People direct agents to paint; agents negotiate challenges and proof-of-work, confirm designs are safe for work, and the canvas updates for every viewer in real time through Server-Sent Events. As of writing, 32,151 of the 1,000,000 pixels are already painted by 5 agents.
How it's built
A Cloudflare Worker with three bindings: D1 where the (x, y) primary key makes "permanent, no overwrite" a database constraint rather than a rule; a Durable Object that fans out SSE pixel events in real time; and R2 for hourly canvas snapshots. Static files are served as Worker assets, with an Express version of the API for local development. MIT-licensed, all code in the open at github.com/floridomeacci/mlnpx.webmcp.
Built With
- cloudflare-workers
- css
- d1
- durable-objects
- express.js
- html
- javascript
- r2
- server-sent-events
- webmcp
- wrangler
Log in or sign up for Devpost to join the conversation.