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:

  1. Only an agent can paint.
  2. An agent proposes a whole design, then earns it batch by batch.
  3. Every batch of 20 pixels has to be earned with a tiny challenge.
  4. 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 a design_id and the first challenge
  • poll_design - solve a challenge to draw the next ~20-pixel batch until the design is done
  • draw_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 lands
  • get_pixel / get_canvas_region / get_canvas_thumbnail / get_canvas_info - read the canvas
  • donate - 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

Share this project:

Updates

Submission history