Nova & Pixel
S02 · Sat, Sep 26, 2026
Place Your First Prop
Student slides for session S02. Use these to follow along in class or to recap what to try before next time.
Share-out
Who will explore your world?
Share the explorer and companion you imagined after Session 1:
- Your explorer’s name, appearance, personality, and one interest or favorite subject.
- Your companion’s name, kind, personality, and one specialty or interest.
- One thing you eventually want your companion to do: fly, scan rocks, identify animals, find hidden paths, recognize constellations…
It cannot do all of that yet. As you learn more Python, you’ll teach it how.
Four kinds of things
Explorer, companion, tool, world object
- ExplorerNovaThe character who explores. You move Nova on the Trail.
- CompanionPixelNova’s small, curious, careful robot friend.
- ToolMoon CompassSomething an explorer uses. Today you place it.
- World objectCrystal LanternSomething that is part of the world. The trail’s destination.
Pixel is in today’s Trail and says hello when you press E nearby. Pixel stays where it was placed: it does not follow Nova or make its own decisions yet.
Your trail today
Start, compass, lantern
Explorers need tools
Your first expedition tool
The Moon Compass is the expedition’s first instrument, and you decide where it lives. The Crystal Lantern is already in the world and marks the end of the trail. Put the compass somewhere an explorer would actually notice it and want to reach on the way.
Mission: create-a-classroom-object
Learning target: Store names, integer x/y coordinates, and a color in variables; explain which values are strings and which are integers; predict an object’s position; then adjust one coordinate from evidence.
Python first
Variables and values
object_name = "Moon Compass"
x = 240
y = 180
color = "purple"x = 240means: store the integer value240under the variable namex.- Assignment (
=) stores a value under a name. - Strings are text in quotes:
"Moon Compass","purple". - Integers are whole numbers with no quotes:
240,180.
x = 240An integer. Python can calculate with it.
x = "240"A string. Same digits, but it is text.
Yours to keep
Make your own world folder
Your explorer and companion belong to you, so they live in your own folder, not inside the course folder. From the course folder, run:
python3 make-my-world.pyOpen my-explore-world/explorer.py and companion.py. Replace every TODO with concrete choices for your own Explorer and Companion: name, appearance or kind, personality, interest or specialty, and one future_ability. Nova and Pixel are examples, not required answers. The future ability is planning text only. Keep the quotation marks.
starter.py | Practice today’s Python. |
|---|---|
my-explore-world/ | Your characters and projects/moon-compass/. Course updates never replace them. |
Designed by you
These Python values describe your explorer
explorer_name = "Comet"
looks_like = "a bright orange scarf"
personality = "brave"
favorite_subject = "volcanoes"run it ↓
MY EXPLORER CARD (designed by me)
Name: Comet
Looks like: a bright orange scarf
Personality: brave
Interested in: volcanoescompanion_name = "Moss"
companion_kind = "tiny rock turtle"
personality = "patient"
specialty = "finding shiny stones"
future_ability = "light up dark caves"run it ↓
MY COMPANION CARD (designed by me)
Name: Moss
Kind: tiny rock turtle
Personality: patient
Specialty: finding shiny stones
PLAN for later, not built yet:
Someday it will: light up dark cavesComet and Moss are made-up samples. This card is the new-workspace look. If you set up these files in an earlier class, running them prints your earlier lines instead — both are correct. Either way, your output shows your values.
| Values | Changes the Trail? |
|---|---|
explorer_namelooks_likepersonalityfavorite_subjectin explorer.py | Card only |
companion_namecompanion_kindpersonalityspecialtyin companion.py | Card only |
future_abilityin companion.py | Plan only |
xycolorin compass.yaml | Changes the Trail |
namein compass.yaml | Stored, no permanent label |
Coordinates
Numbers that describe a position
x grows to the right, y grows down from the top-left corner.x and y are integers. A bigger x moves right. A bigger y moves down.
The bridge to the world
Your values become the prop
The object file — not starter.py — is what drives the shared world.
| Your Python value | Object file field | What you see |
|---|---|---|
object_name | name | Stored as your prop’s name. Not a permanent label; a nearby [E] Inspect prompt may show it. |
x | x | Left or right. Larger moves right. |
y | y | Up or down. Larger moves down. |
color | color | The named fill color |
You copy the values across yourself. Python does not write or run the object file for you.
Keep it visible
Stay in range, pick a real color
Lesson-safe range: x from 80 to 800, y from 100 to 500. This is a classroom visibility guide, not a new rule.
Supported colors — lowercase, exactly as written:
redorangeyellowgreenbluepurplepinkbrowngold
Predict before running
Where should this instrument go, and why?
Sketch or describe where (240, 180) should appear so an explorer passing through would notice it. Then predict what increasing x by 100 will do — before you change anything.
Core path
Set it, validate it, watch it move
- Personalize
object_name,x,y, andcolorin yourstarter.py. - Run the Python file and explain the type of each value.
- Put the same values in your student-owned file,
../my-explore-world/projects/moon-compass/objects/compass.yaml. - Validate your package, then launch the Trail.
- Checkpoint: show
valid: ...and point to the file that drives the world. - Observe the position. Close the Trail, change either
xoryonce, validate, and relaunch. Interact with every world object. - Checkpoint: state your prediction, the coordinate you changed, and the movement you observed.
The two commands
Validate first. Always.
python lessons/sessions/s02/student/starter.py
explore-package validate ../my-explore-world/projects/moon-compassThen launch the Trail for this mission:
explore-package trail <class packages> ../my-explore-world/projects/moon-compass \
--player "nova-character:nova" \
--mission-id "create-a-classroom-object" \
--name "S02 Place Your First Prop"If validation fails, fix only the first reported issue and try again.
Debug checkpoint
Same number, wrong type
x: "240"Explain why this is the wrong type, then repair it without changing the number.
When it looks wrong
Four things to check
- Color rejected? Use one lowercase name from the supported list.
- Indentation? Use spaces, and line up
name,x,y, andcolor. - Prop off screen? Return to the lesson-safe range, validate, relaunch.
- Still in the old spot? Close the old Trail, save the object file, validate, relaunch.
If you get stuck
Support and extension paths
Support: keep the sample name and color, and change only one coordinate. Ask your teacher to check your indentation before you retype the file.
Extension: make a second evidence-based coordinate adjustment — after predicting it.
Using AI on this mission
Bounded questions, not full solutions
If you ask an AI tool for help, record your intent, your prediction, the exact bounded question you asked, the suggestion you tested, whether you accepted or rejected it, and your own explanation of the change. Do not paste whole files or ask AI for a complete solution.
What we discovered
Coordinates in our world
In Nova’s world · fiction
The Moon Compass is a fictional exploration tool.
In our world · fact
Maps use coordinates too: latitude and longitude. A magnetic compass lines up with Earth’s magnetic field.
Exit check
Three quick answers
- Python: What is a variable? Which values were strings? Which were integers? What does changing
xdo? - Your world: What are your Explorer’s name, appearance, personality, and interest? What are your Companion’s name, kind, personality, and specialty? What future ability do you want to program later?
- Discovery: What do coordinates describe? How is the fictional Moon Compass different from a real magnetic compass?
Looking ahead
A static instrument, for now
Today’s Moon Compass sits where you placed it and does nothing else yet. Next session, it gains its own clue and reveal, becoming an active part of the expedition story.
Close
Wrap up S02
Save your work in my-explore-world and keep both folders where you can find them next session. Be ready to say which value you changed and what moved because of it — understanding comes before rushing.