Open the app

codeface paint ./your-photo.jpg --blobs 8000

Your photo, re-painted blob by blob.

Thousands of soft colour blobs, fitted live by gradient descent on your own GPU. Nothing is uploaded. When it is done, your picture is a list of code you can print.

Paint my photo How it works

BLOBS · LIVE
2,048
MISTAKE
2.57%
UPLOADED
0 bytes
Demo: a photo of a windowsill, re-painted by Code Face from 32 to 2,048 blobs (the finished painting has 8,000). Each stage is drawn here from its real code file.

SCROLL · THE CURSORS BUILD THE REST

01 · HOW IT WORKS

Three steps, all on your machine.

  1. 1Drop a photo

    Pick a photo. Your browser reads it and shrinks it to 512 pixels; it never leaves this device.

  2. 232 blobs become 8,000

    It starts with 32 big blobs and keeps adding smaller ones where the picture is still most wrong.

  3. 3Gradient descent

    Every step nudges each blob's place, size, angle, colour and opacity to make the mistake smaller.

02 · THE CODE

Your picture is a list of code.

Every blob is one line of hex. The text file is the picture: open it in the app and it paints itself again.

One line is one blob. This is blob 803 of the demo:

2f06x6c08y3f8w8d7hd99angadd06bcolourbcop

x y
where its centre sits, as a fraction of the picture's long side
w h
its size along its own two axes, on a log scale
ang
which way it is turned, 0 to 180 degrees
colour
red, green and blue, two hex digits each
op
how opaque it is, from 00 to ff

stage-08000.txt12 of 8,000 lines · select one to copy it

An A4 portrait poster on a dark background: thousands of tiny lines of code, coloured by the demo photo, so the plants, the toy dinosaur and the statue show through the text. A detail of the same poster at print resolution: the white flower drawn by rows of hex code, each character tinted by the picture behind it.
The demo's 8,000 lines as an A4 poster, made with the app's own poster export; the inset is a detail at print resolution.

03 · THE POSTER

Print the code.

The poster is the whole code file, every blob line, tinted by your picture so the picture shows through the text.

Download it as vector SVG that stays sharp at any size, or as a 300 dpi PNG, from A4 up to 50 × 70 cm.

Make one

04 · HONEST AND PRIVATE

Nothing generated. Nothing sent.

  • No AI generation

    Nothing is invented. Every blob is fitted to your own photo by plain gradient descent: re-painted, not generated.

  • Your photo stays here

    It is read, fitted and drawn in this browser tab, on your own GPU. The site has no backend that could receive it.

  • No analytics, no tracking

    No analytics, no cookies, no tracking scripts. Nothing on this site is loaded from another site.

  • Open source, MIT

    Every line is on GitHub under the MIT licence: read it, run it, change it.

Back to top