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 that a browser runs to produce each painting.
- Researcher Surya Narreddi originated the project; engineer Antoine Chaffin reproduced the full training pipeline on Hugging Face with every artefact published.
- Reinforcement learning, a technique where a model improves by chasing a numerical reward score, was used to teach a smaller model to match one person's artistic taste.
- All training scripts, datasets and finished models are free to use.
On 23 August, researcher Surya Narreddi posted a short video of watercolour paintings: soft washes of colour, imperfect edges, the looseness you'd associate with a human hand. A language model, the same category of AI behind ChatGPT, produced every one of them.
How does a language model paint anything?
It doesn't paint in the way you might picture. The model writes JavaScript that runs in a web browser, instructing a drawing library called p5.brush exactly where to place each stroke, how wet the wash should be, how translucent each layer sits. The model is restricted to just ten of the library's available methods. That constraint is part of what makes the results look considered rather than chaotic. Each decision is visible in the code: open it, change a line, run it again.
Why did this go viral?
Most AI image tools produce statistically smooth, almost too-clean pictures. These look handmade, and that contrast probably accounts for much of why Narreddi's video cleared 1.5 million views so quickly. For anyone who followed generative art in its early years, the work feels familiar. 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 a GAN (a generative adversarial network, two neural networks competing to produce and judge images) could do. This project sits in that tradition.
We covered the Qwen model family in our 21 August story on running frontier-grade AI at home; the base model used here, Qwen3.5-35B, comes from the same lineage.
What is the training trick?
The model learns through reinforcement learning: software improves by chasing a numerical reward, the same broad idea behind chess engines and recommendation feeds. Here the reward 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 human image preferences |
The pairwise judge is Qwen3-VL-30B, a large vision model that looks at a new painting next to four reference paintings and scores how often the new one wins the comparison. Those references were chosen by hand, so the judge 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 individual's eye.
The base model being trained is Qwen3.5-35B, a 35-billion-parameter open model (a parameter is one adjustable number inside the model; more generally means more capability), fine-tuned using LoRA, a technique that 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. All three learned. The hand-curated pool did shift what the model painted.
What this means for you
This is a concrete demonstration that a model can learn one person's preferences, not just averaged human taste, given a carefully built reference set. The harder work wasn't writing code. It was curating the pool of images that defined what "beautiful" meant during training. That moves the real labour from tuning numbers to making editorial judgements, which is a very different skill.
The full pipeline, with environment, training scripts and finished models, is published on Hugging Face, the open AI model-sharing platform, so other researchers can reproduce it.
Common questions
Do I need special hardware to run this?
The published training command runs on a high-end cloud GPU (a specialised chip that handles AI number-crunching), rented through Hugging Face's job service. Expect real compute costs if you run a full training pass yourself.
Is the original artist's work open too?
Narreddi's blog post covers an earlier, narrower stage of his project, close-up flowers rather than full compositions. He's 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 chases a different aesthetic. If your chosen style sits too far from average human taste, though, the HPSv3 component of the reward may work against you.



