Skip to content

LLMs

LLMs are typically very poor at generating ASCII art, calling into question their ability to model the real world.

Core trick

A vision model ranks rendered ASCII drawings while an editor model rewrites the system prompt each iteration, with no weight updates.

Tags

Description

LLMs are typically very poor at generating ASCII art, calling into question their ability to model the real world. This project generates asciii art uses a method inspired by RL, but not technically RL that improves a prompt automatically and chooses what it thinks is the best attempt at generating an ascii art image of a specified animal.
ziadgit/volly★ 00 forksPythonMITCreated May 23, 2026 · last push May 23, 2026

README excerpt

<p align="center">
  <img src="assets/logo.png" alt="Volly — ASCII art that teaches itself to draw" width="420" />
</p>

# Volly

**ASCII art that teaches itself to draw — no fine-tuning, no training data, no gradient updates.**

Volly is a working demonstration of Karpathy's proposed third learning paradigm — *system prompt learning* — built on a single Gemini 3.5 Flash model. The model plays three roles in a closed loop: it draws ASCII art (Actor), looks at its own drawings as images and ranks them (Vision Judge), and rewrites its own instructions based on the critique (Prompt Editor). Each iteration the system gets visibly better at drawing the requested subject. No weights change.

## The thesis

LLMs are famously bad at ASCII art — they can't reason spatially in a token stream. That makes ASCII art an unusually honest demo target: failure is visually obvious to anyone, there's no single gold answer, and improvement is visceral.

The mechanism is inspired by [OpenPipe's RULER](https://openpipe.ai/blog/ruler) (LLM-as-judge giving *group-relative* rankings — better than absolute scoring because the judge only has to compare, not calibrate), but applied without any RL. RULER is a reward function for training; here we're not training. We're letting the judge's output drive *prompt rewriting* in plain English, iteration over iteration, while the model's weights stay frozen.

The result is a small, legible system that produces a curve any audience can read: a flat control arm (

Team