Clara Cheung / Work
05 / 05

Brushloop

Bringing an artist’s judgment into model training.

Why I started

A model can generate code that runs, without understanding what aesthetics work. I wanted to understand how my own visual judgment could become useful training feedback.

What I explored

A local training and review workflow for p5.js creative code, using teacher-generated examples, LoRA adapters, staged composition exercises, and human comparisons.

What I learned

I learned to connect visual judgment with model evaluation: simplifying feedback, finding patterns in accepted and rejected images, and separating code reliability from aesthetic quality.

Six generative art studies combining watercolor textures, translucent organic shapes, and geometric lines.
Brushloop · Generative p5.js imagesFig. 01

My role and motivation

I locally trained a model for generative p5.js outputs, building and directing the project independently with AI tools. My background as an artist shaped the evaluation: I was looking at composition, balance, rhythm, texture, and interest, as well as whether the code worked. I reviewed around 5,000 images over the course of the project.

How I built the learning loop

  1. Learn from a teacher

    Use a larger model to generate examples for a local coding model, exploring distillation and targeted training with LoRA adapters.

  2. Break the problem apart

    Explore composition in stages: mass, line, and color. Keep technical training separate from training for visual preferences.

  3. Make review practical

    Build a Streamlit review flow. Start with seven rating categories, then simplify much of the work to keep-or-reject decisions.

  4. Look for patterns

    Use pairwise and blind comparisons to examine what successful images share, and use those findings to guide the next experiment.

What the process involved

~5,000

Images reviewed by me

Reviews were rated across 7 categories, and were simple keep/reject decisions for blind comparisons.

Local ML

Training within limited resources

A smaller model (Qwen-3-coder), LoRA adapters, and examples from a larger teacher model.

Human review

Visual judgment alongside execution checks

Ratings, pairwise comparisons, and blind comparisons informed the experiments.

Adapting the process

  • Detailed aesthetic ratings helped me articulate what I was looking for, but became heavy at scale. Keep-or-reject decisions made repeated review more practical.

  • Comparing the two groups helped me look for recurring visual patterns and decide whether to change the examples, the composition constraints, or the training approach.

ML Learnings

  • The drawing tools, examples, labels, and review process all shaped the outcome. Improving the workflow required examining those pieces together.

  • The model didn’t reach release maturity. The lasting result was a hands-on understanding of local training and evaluation, and how an artist’s experience can inform both.

Next steps

I’m interested in creative systems people can teach through judgment and iteration. This project gave me a practical starting point for connecting artistic experience with machine learning.