Can an AI learn your taste? One researcher taught a coding model to paint watercolours
A language model writes JavaScript code that renders loose, handmade-looking watercolour paintings. The results went viral. Now the full training recipe is open for anyone to run.

Key points
- A video of AI-generated watercolour paintings posted on 23 August surpassed 1.5 million views within days of going live.
- The paintings are not images: a language model writes roughly 150 lines of JavaScript code that a browser then runs to produce each painting.
- Researcher Surya Narreddi originated the project; engineer Antoine Chaffin reproduced the full training pipeline in the open on Hugging Face.
- The training method uses reinforcement learning, a technique where a model improves by chasing a reward score, to teach a smaller AI model to match one person's artistic taste.
- All training scripts, datasets, and finished models are published and free to use.
On 23 August, designer and researcher Surya Narreddi posted a short video. It showed watercolour paintings: soft washes of colour, imperfect edges, the kind of looseness you associate with a human hand.
The catch? A language model, the same category of AI behind ChatGPT, painted every one of them.
How does a language model paint anything?
It does not paint in the way you might picture. The model writes code, specifically JavaScript, a programming language that runs in web browsers. That code then tells a piece of software called p5.brush, a drawing library that adds natural brushstroke tools to the browser, exactly where to place each stroke, how wet the wash should be, and how translucent each layer sits.
The model is restricted to just ten of the library's available drawing methods. That constraint, counter-intuitively, is part of what makes the results look considered rather than chaotic.
The output is readable. You can open the code, change a line, and run it again. Each decision is visible.
Why did this go viral?
The paintings look imperfect. Right now, most AI image tools produce statistically smooth, almost too-clean pictures. These look handmade. That contrast is probably a large part of why Narreddi's video passed 1.5 million views so quickly.
For anyone who followed generative art in its early years, the work feels familiar in a good way. Google's DeepDream in 2015 started as a debugging tool and became art. The portrait Edmond de Belamy in 2018 came from artists probing what an older type of AI called a GAN (a generative adversarial network, two neural networks competing to produce and judge images) could do. This project sits in that tradition.
What is the training trick?
The model learns through reinforcement learning, a method where software improves by chasing a numerical reward, the same broad idea used to train chess engines and recommendation feeds.
The reward here is aesthetic. Four things are scored on every painting the model produces:
| Signal | Weight | What it checks |
|---|---|---|
| Gate check | 0.05 | Code compiles and produces an actual painting |
| Code length | 0.05 | Gentle nudge toward longer, more detailed scripts |
| Pairwise style judge | 0.60 | Compares the painting against a hand-curated reference pool |
| HPSv3 preference model | 0.30 | An open AI model trained on millions of human image preferences |
The pairwise judge is itself an AI, a large vision model called Qwen3-VL-30B, that looks at the new painting next to four reference paintings and scores how often the new one wins the comparison. Those reference paintings were chosen by hand. So the judge, in effect, encodes one person's taste.
HPSv3 is a separate open AI model trained on a large collection of human choices between image pairs. Its score reflects average public preference, not any one person's eye.
The base model being trained is Qwen3.5-35B, a 35-billion-parameter (a parameter is one adjustable number inside the model, and more of them generally means more capability) open model, fine-tuned using a technique called LoRA, which updates only a small slice of the model's weights rather than rewriting the whole thing.
Three versions were trained with different weightings between the two judges to see how far personal taste could steer the result. All three learned. The hand-curated pool did shift what the model painted.
What does this mean for ordinary readers?
For most people, the takeaway is a concrete proof that AI models can learn an individual's preferences, not just average human taste, given a carefully built set of examples. The harder work was not writing code. It was curating the pool of reference images that defined what "beautiful" meant during training.
The full pipeline, including the environment, training scripts, and finished models, is published on Hugging Face, the open AI model-sharing platform, so other researchers can run it themselves.
Common questions
Do I need special hardware to run this?
The published training command uses a high-end cloud GPU (a specialised chip that handles AI number-crunching), rented through Hugging Face's job service. Expect meaningful compute costs if you run a full training run yourself.
Is the original artist's work open too?
Narreddi's blog post covers an earlier, narrower stage of his project. He has said a full technical report is coming. The open implementation described here is a separate reproduction by Antoine Chaffin, with all code and models published.
Can this approach work for other art styles?
In principle, yes. Swap the reference pool for a different set of images and the model would chase a different aesthetic. The researchers note that if your chosen style sits too far from average human taste, the HPSv3 component of the reward may fight against you.


