Workshop · Pa Rang · Sat 23 May 2026 · 12:00–14:00

Mundane Moosh Moosh

A 2-hour workshop. Turn the most boring software in the world — a spreadsheet — into a generative visualizer. Use your own AI to invent formulas you'd never write by hand. No design or coding background needed. Just curiosity.

📋 Make your copy of the starter sheet Opens Google Sheets · click "Make a copy"

1 Manual — drive the grid with one word

Tab: 1. visual (manual) · ~10 min · zero formulas to write

The first tab is alive already. There's a 30×30 grid of colored squares, and one yellow cell on the right with the word สวัสดี in it. That's the only thing you control.

The mechanic

Every cell in the grid runs the exact same formula:

=RANDBETWEEN(0, LEN($AF$2))

Translation: "give me a random integer between 0 and the length of cell AF2's text". Twelve conditional-formatting rules map each integer (0..11) to a color. LEN("สวัสดี") = 6, so cells take values 0–6, lighting up the first 7 colors.

Spreadsheets recalculate every time anything changes. So every edit = a new random draw = a new visual. That's your frame rate.

Five things to try (10 minutes)

#Do thisWhat happensWhy
1Replace สวัสดี with hiGrid goes mostly dark — only 2 colorsLEN("hi") = 2
2Replace it with กระบือ or another long Thai wordBrightens — all colors light upThai uses separate codepoints for vowels & tones → higher LEN
3Hold Cmd/Ctrl + R (force reload of formulas)Whole grid re-rollsRecalc cycle = frame rate
4Open Format → Conditional formatting, change one color in the paletteThat number in the grid changes color everywhereCF rules = palette dictionary
5Change the formula to =RANDBETWEEN(5, LEN($AF$2))Dark colors disappearYou raised the floor
Tip: To change all cells at once, click any cell, press Cmd/Ctrl+A to select the whole grid, then paste a new formula into the formula bar with Cmd/Ctrl+Enter. The formula goes into every cell at the same time.

2 Formula — same trick, fancier math

Tab: 2. mandala (formula) · ~20 min · turn random into structure

Same idea — one formula, every cell, 12 colors. But the formula now uses each cell's position to compute the color, not random. Result: a structured pattern instead of noise.

The mechanic

=MOD(
  ABS(ROUND(
    SQRT((ROW()-25.5)^2 + (COLUMN()-40.5)^2) * $CE$2   ← distance from center × ring spacing
    - $CE$9                                              ← - time (animation)
    + $CE$3 * COS(ATAN2(COLUMN()-40.5, ROW()-25.5)
                  * $CE$4 + $CE$5)                       ← petal warp × twist
  )),
  $CE$6                                                  ← mod base = palette size
)

Six knob cells in the panel on the right control the shape:

KnobWhat it controlsTry
$CE$2 ring spacingHow tight the rings are0.2, 1, 3
$CE$3 petal ampHow much petals warp the rings0, 6, 20
$CE$4 petalsNumber of petals3, 8, 25
$CE$5 twist (rad)Rotation offset0, 1.5, 3.14
$CE$6 mod baseHow many colors used (max = 12)3, 12, 24
$CE$9 timeAnimation channel (manually nudge for now)type a new number — pattern shifts
Wave will demo: the mandala-zoom.ts script pumps $CE$9 from outside every 500ms → continuous animation. Same script also pumps the seed word for the LEN trick on this tab.

Things to try

#TryYou'll see
1Set petals = 1, twist = 0Pure concentric rings
2Set petals = 25, petal amp = 20Flower / mandala
3Set petals = 100Optical-illusion stripes
4Swap palette on the 🎨 palettes tab — copy hex codes into the CF rulesSame shape, different mood
5Change SQRT to SUMSQ or remove itPattern explodes into squares — break things on purpose

3 AI Lab — ask your AI for a formula you couldn't write

Tab: 3. AI lab · ~30 min · bring your own AI

The grid is empty. The knob panel is set up: 5 knobs, a seed-word cell, a time cell. Conditional formatting is already in place — paste any formula that returns 0–11 and the colors light up automatically.

Your job: tell your AI what pattern you want. Their job: write the formula. You paste it into A1, hit Cmd/Ctrl+A then paste-fill the whole grid.

⚠️ #1 thing that goes wrong — read this first:
If you paste an AI formula and no colors appear (you see numbers or a blank grid), the formula is returning decimals or numbers outside 0–11. The 12 conditional-formatting rules match integers exactly.

Fix: wrap your AI's formula in this clamp:
=MOD(INT( YOUR_AI_FORMULA ), 12)
That forces the output to an integer in 0..11. Works every time. Make this your default paste pattern.

Bring your own AI

Any of these work — they all know Google Sheets formula syntax:

Don't have one? Wave's Gemini is on the projector — call out your wish, we'll co-prompt.

The prompt formula

Paste this template into your AI, fill in the brackets:

📋 Copy-paste prompt Give me a Google Sheets formula for a 40×50 grid where each cell shows
a value 0–11 based on a [RIPPLE / SPIRAL / PLASMA / RAIN / your wish] pattern.

Reference cells $BA$2..$BA$6 as knobs and $BA$7 as text seed.
Subtract $BA$9 for time animation.
Center the pattern at row 20, column 25.

Output: just the formula, paste-ready, no explanation.

Five wish-starters

If you don't know what to wish for, steal one of these:

WishWhat you'd see
Make it ripple like dropping a stone in waterConcentric waves moving outward
Make it spiral like a galaxyCurved arms rotating from center
Make it spell my name across the gridLetters from the seed word raining across cells
Make it react to one number — small = quiet, big = chaosOne knob controls overall intensity
Make it look like rain / fire / static / my mood todayWhatever vibe you ask for

What to do when your AI lies

It will. Spreadsheet formulas are precise and AIs sometimes hallucinate function names or argument orders. The workshop loop:

  1. Paste formula into A1. If it works → fill the grid.
  2. If it shows #NAME? or #ERROR! → click the cell, click the little orange error indicator, copy the error text.
  3. Paste the error back into your AI: "this gave me [error]. Fix it."
  4. Try again. Usually works on attempt 2 or 3.
If your AI keeps failing: ask it explicitly for "Google Sheets formula syntax, not Excel." Most AIs default to Excel which uses some different function names.

Going bigger — let AI design the whole sheet

Once you've paste-fixed-paste a few times, try this mega-prompt:

📋 The whole-sheet prompt I want a Google Sheet visualizer that feels like [the sea / a forest fire / rain at night / silence / your feeling].

Give me ALL of this:
1. A single formula to paste into a 40×50 grid. Output must be 0–11.
2. Twelve conditional-formatting hex colors that fit the mood, dark → light or low → high intensity.
3. A list of which cells should be the knobs ($BA$2..$BA$9), what each one does, and a default value.
4. One sentence on what to animate (which knob, how often) to bring it to life.

Paste-ready, no preamble.

🎨 Palettes

Tab: 🎨 palettes — copy hex codes into your Conditional Formatting rules to mood-swap any tab

Each palette is 12 colors. Replace the colors in Format → Conditional formatting → Edit rule on any tab to swap the entire mood without touching the formula.

yantra
fire
ocean
forest
neon
jewel
mono
thai
holo
andaman

🛠 Stuck?

The grid shows numbers (or nothing), not colors

This is the #1 thing that goes wrong — covered up in Block 3, repeated here. Wrap your formula:

=MOD(INT( YOUR_FORMULA ), 12)

Why: 12 CF rules use NUMBER_EQ "0"..."11" — exact integer match. Decimals (5.0001) or out-of-range (15) won't match. INT(...) forces integer; MOD(..., 12) clamps to 0..11. Other things to check:

Numbers are visible inside the cells

The "hide numbers" trick is missing. In every CF rule, set text color = background color. Numbers stay there for the formula but become invisible.

The whole grid is one color

Your formula returns a constant. Check if it actually uses ROW() and COLUMN(), or your random source (LEN, RANDBETWEEN, time cell).

My sheet feels slow

You probably pasted the formula into way more cells than the visible grid. Trim the grid to ~40×50 — that's 2,000 cells, still fast.

I broke something — how do I get back?

Cmd/Ctrl+Z as many times as you need. Or revisit the starter copy URL and make a fresh one.