Skip to content

Day 34: Design Your Own Pokémon

Thursday, May 7th, 2026

Objectives

  • I can design a Pokémon (name, type, six stats, height, weight) and explain my choices.
  • I can use box plots, scatter plots, and histograms to compare my design against real Pokémon.
  • I can revise stats that look wrong, based on what the plots show me.
  • I can save my final Pokémon as a .csv file and sketch it on paper.

Warmup: Get the Designer

Today is a design day. Mr. Willingham wrote a Python tool that does the plotting for you, so your job is to make good design choices and check them against real data.

Download pokemon-designer.zip

Download and unzip

Click the button above. In Downloads, double-click pokemon-designer.zip. You’ll get a folder named pokemon-designer/ with two files:

  • designer.py — the tool.
  • pokemon.csv — the dataset.

Open the folder in VS Code

File → Open Folder… and pick pokemon-designer/.

It is in your Downloads.

OPTIONAL Install one new library

We already installed pandas and matplotlib yesterday. Today you can use one more, for hover tooltips on scatter plots. In the VS Code terminal run:

python3 -m pip install mplcursors
The tool will still run if mplcursors doesn’t install — you just won’t get hover tooltips. Don’t get stuck on this; ask for help and move on.

Run the tool

Click on the Play button at the top right of designer.py to run it. In the terminal, you should see:

============================================
    POKEMON DESIGNER  -  Day 34
============================================

=== Design Your Pokemon ===

Pokemon name:

<button class=“hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50” title=“Copy code” aria-label=“Copy code” data-copied-label=“Copied!”

<div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div>

Follow the prompts. For now, type any name and pick any type — we’re just making sure it works. When the menu shows up, pick 5. Save and quit and accept the default filename. You should see “Saved to: …” with a path. Done.

Checkpoint: Warmup

  • I unzipped pokemon-designer.zip into my python-class folder.
  • I ran python3 designer.py and it asked me for a name.
  • I made it all the way to the menu and saved a Pokémon.

Work Session: Design Your Real Pokémon

Now you’ll design the Pokémon you actually want. The tool does the plotting. Your job is to decide and revise.

Brainstorm before you type

Before running the tool again, think about:

  • What is your Pokémon’s personality? Is it sneaky, tough, fast, fragile?
  • What is its primary type? Does it have a secondary type?
  • What is its role in battle? A glass cannon (high attack, low defense)? A tank (high HP and defense, low speed)? A speedster?

Your stats should match the personality. A “tank” with speed = 200 doesn’t make sense.

Use the menu to test your design

When the menu shows up, you have three plot tools:

PlotWhat it showsBest for
Box plotWhere your stat sits inside the typical range for your type.“Is my attack normal for a fire type?”
Scatter plotYour Pokémon as a star among all 800 Pokémon, on two stats.“Which real Pokémon is most like mine?”
HistogramThe distribution of one stat across every Pokémon.“Is my speed unusual for any Pokémon, anywhere?”

Try at least one of each.

Revise

After looking at a plot, you’ll usually spot a stat that’s way off. Pick 4. Edit my Pokémon and adjust it. Then plot again. Loop until you’re happy.

Designers don’t get it right the first time. The point of today is to let the data argue with you, then change your mind.

Save your final Pokémon

Once it feels right, pick 5. Save and quit. Use a filename like your_pokemon_name.csv. The tool will print the full path where it saved.

Distribution
How often each value shows up in a dataset. A histogram is a picture of a distribution.
Outlier
A value far outside the typical range. Outliers can be exciting or wrong — your call.

Checkpoint: Work Session

  • I brainstormed a personality and role before entering numbers.
  • I tried a box plot, a scatter plot, and a histogram.
  • I revised at least one stat after looking at a plot.
  • I saved my final Pokémon as a .csv file.

Closing: Submit and Sketch

You’ve finalized the numbers. Two last steps.

Submit your stats

Open your saved .csv in VS Code so you can copy the values, then submit them with the form:

Submit Pokémon Stats

Sketch it

Now bring it to life. Mr. Willingham has paper. On the paper, draw:

  1. Your Pokémon — front view, big enough to see.
  2. Its name, type(s), and the six battle stats along the side.
  3. A one-sentence flavor description (like “The Seed Pokémon” → “The Glitch Pokémon”).

Hand in the paper sketch when you’re done.

Standards

  • MS-CS-FCP.3.2 — Develop a working vocabulary including data and data analysis — students extend yesterday’s vocabulary with distribution, outlier, box plot, and scatter plot.
  • MS-CS-FCP.4.2 — Use the design process to brainstorm, implement, test, and revise an idea — students brainstorm a Pokémon, implement it as data, test it against the real dataset with plots, and revise the stats that don’t fit.
  • MS-CS-FCP.6.3 — Analyze and explain the suitability of a computational artifact — students judge whether their designed Pokémon “fits” the real data and explain which stats are typical, unusual, or out of place.
  • MS-CS-FCP.6.4 — Develop work for creative expression — students use a computational tool to design an original creature with both numerical stats and a hand-drawn sketch.
Last updated on