Textures as text
A 16×16 Minecraft texture is 256 pixels drawn from a handful of colours. That is small enough to write down. TextureScript treats a texture as text: a grid of 16 rows of 16 characters, where each character names a shade from a palette.
What text buys
Anyone who can write can draw. A language model cannot move a mouse in a paint program, but it can write 16 lines of 16 characters. Grids make an agent a first-class author, not a helper that describes what a person should draw.
Every pixel is addressable. A critique can say "rows 3 to 5, columns 10 to 12, use c
instead of d", and the fix is an exact edit. Tools name pixels as (column,row) for the same
reason.
Changes are reviewable. A grid diffs line by line in git. Two drafts can be compared by
reading them, and diff shows which pixels a fix touched.
Colours stay disciplined. Keys stand for shades of a material, not arbitrary colours. A grid cannot introduce a stray colour by accident; to change a colour you change the palette, and every texture of the family follows.
Rendering is deterministic. The same grid always gives the same PNG, so a texture can be regenerated, checked in CI or compared byte for byte.
What text costs
Text is a poor medium for judging a picture. A grid tells you where pixels are, not whether the plant reads as corn. So TextureScript never stops at the grid: every render writes a ×16 preview to look at, and crops are judged in a 3D scene beside vanilla blocks. The loop is to draw in text and judge by eye, at the scale the game shows.
Related
- Your first texture walks through the loop.
- Grid files gives the exact format.