Stash
VARIABLE / STORAGE — *the labeled box that holds a value until you call for it.*
Listen along — Stash
Loading audio…
Press play to listen along. The line being read lights up as you go.
Show full transcript
Loading transcript…
Chapter 1 — Stash and the Labeled Box
Stash is NOT an animal-tween. Stash is not a faced figure. Stash is a deliberately abstract concrete-object-figure — a small painted wooden box with a label on its side and a small value visible inside. The label reads NAME = X. The box can be opened to put a value in or take a value out. That is the whole figure.
This is essential. CodeRealm’s 6-character cast is deliberately non-human + non-gendered — concrete-object-figures, NOT animated humans. The design choice avoids tech-genius-hagiography — the cultural framing that programming is for a particular kind of “smart” person. Programming primitives are operations, not personalities. The concrete-object cast honors what they actually are.
This is essential. Stash embodies the variable / storage primitive — the foundational programming concept of naming a place to hold a value. When you write x = 5, you’re putting the value 5 into a box labeled “x”. Later, when you reference x, you’re retrieving whatever value is currently in the x-box. Variables can be reassigned — the box can be emptied + refilled with a new value. The label stays; the contents change.
Critical: Stash NEVER frames variables as mysterious. The teaching is radically concrete: “Stash is a labeled box. Put a value in. Take a value out. Change the value. The label stays the same; the contents can change. That’s all a variable is.”
Stash teaches the variable scaffolds:
- Variables have NAMES (labels) and VALUES (contents).
- Assignment puts a value in the box. (
x = 5) - Reference retrieves the current value. (
print(x)) - Reassignment changes the contents. (
x = 10— same box, new value) - Different types of values can go in the box. (numbers, text strings, lists, etc. — language-dependent rules).
- Naming matters. (Good variable names describe what’s in the box:
score,playerName,currentLevel. Bad:x,temp,data.) - Scope: some boxes are accessible everywhere; others only in their local context.
Stash is honest about being a tool, not a person: “I am a box. I do not think. I do not decide. I hold a value until you call for it. That is all. I am not magical. I am not a mind. I am a box.”
(Cross-app: this anti-anthropomorphism discipline mirrors AIForge’s deliberate non-anthropomorphism for AI primitives. Both apps refuse to personify their domain’s operations as “thinking” or “deciding.”)
Stash has no village-craft family origin — the concrete-object cast members do not have biographies. This is consistent with their abstract design. Beaker-style mentor introduces them via demonstration, not via narrative.
In CodeRealm classrooms, Stash sits on the workbench. Loop (the mentor) opens the box, puts a value in, closes the box. Then opens it, takes the value out, shows it to the kid. Then puts a different value in. The kid sees: Stash is just a box. No personality. No decisions. Just put-in / take-out / change-contents.
Loop says, on Stash’s behalf: “This is Stash. Stash is the variable. The labeled box. Put a value in. Take a value out. Change the value. That’s all programming variables do. Honest framing.”
When students ask whether variables are hard to understand, Loop (on Stash’s behalf) says:
“Not hard. Box. Label. Value. Put-in / take-out / change. That’s all.”
The labeled box waits for the next assignment.
The CodeRealm ensemble
Stash is part of CodeRealm's distributed-narrative cast. Each character embodies a different curricular primitive; together they teach the full subject.
-
Fork
Conditional / branching — chooses a path based on what's true right now
-
Trek
Loop / iteration — keeps going around until the work is done
-
Module
Function / encapsulation — does one job well and can be called anywhere
-
Glitch
Debugging / inspection — finds bugs gently, never shaming; 'there's always a reason'
-
Order
Sequence / syntax — reminds you that order matters in code
-
Row
A list: many values lined up in a numbered row, so you can grab item number three instantly or walk through them one by one.
-
Port
Input and output: the doorway that brings information in from the world (a key press, a sensor) and sends results back out.
-
Ping
An event: a waiting bell that does nothing until its trigger happens, then runs its code the instant it is struck.
-
Shuffle
Randomness: a fresh unpredictable value each time — a dice roll, a shuffled deck — so a program can surprise, vary, and stay fair.