Show the fish, not the sushi: 77 ingredient cards redrawn so cooking feels like a reward
Our sushi game's cards showed finished sushi, so a card looked just like the dish you made from it. One Claude Code session redrew all 77 as raw ingredients, from a whole bluefin to a yuzu fruit, and made cooking a visible change: the knife cuts, the slice lands on the rice, the price counts up. Part 11.

What we asked“Ingredient cards currently show finished sushi, which gives away the payoff and makes cards and dishes look the same. Redraw them as raw ingredients (the whole animal, a rice sack, the plant or bottle for accents), and make making a dish a visible transformation: the fish is cut, the slice lands on the rice with its accents, and the finished sushi appears big before the price counts up. Every animal must be recognisable without its name.”
What happened
- Built the animals from parts in one shared file and redrew all 77 cards, including every city's local catch
- Added the cut-onto-rice sequence to the prep board
- Checked every card on a contact sheet at 1× and 2×, and the board, the cooking and a pack opening in a real browser at 720 px wide
In part 10 Neta became a game about making each dish as expensive as possible. But its cards still showed finished sushi. A salmon card looked exactly like salmon nigiri, so making the dish showed you nothing new.
So the cards now show what you start with: the whole animal, and the plant, bottle or tool for everything else. Sushi only appears when you make it. Dave the Diver works the same way: you catch the fish yourself, and the sushi bar serves the dish.
Play it
Invent your first dish to see the cut, then open the free pack. Open full screen (saves your game).
1. Cooking you can watch
When you make a dish, the raw animal appears, a knife cuts through it, the slice lands on the rice, each accent flies on, and the finished sushi flashes in at twice its size. Then the price counts up.

Tapping speeds it up, and with reduced motion the dish just appears.
2. Every card, redrawn
All 77 cards: the starting fish and shellfish, every city's local catch, and everything else. The test was that each animal reads without its name, so each keeps one feature you can spot at 1×: the tuna's yellow finlets and sickle tail, the mackerel's tiger stripes, the golden-eye's huge gold eye, the squid's arrowhead fins. Toro and wagyu are cuts of meat, so they show the cut: chutoro is a cross-section of the steak, and otoro is a belly slab with a tuna tail behind it.

Forms are their tool: a hand for nigiri, a nori ring for gunkan, a bamboo mat for rolls, a press box for oshizushi. Rice is a tub, a straw bale or a sack. Rarer cards keep their backgrounds and holo effects from part 2:

3. Animals from parts
The art is drawn in code, like the people in part 7: each creature is made from shared parts (a body shape, fins, a tail, an eye, stripes or spots) in one file, and each city adds its own catch through the same hook it uses for the rest of its art. Two new scripts make a contact sheet of every card and frame-by-frame shots of the board, so the check can be run again after any change.
What it cost
One prompt, no follow-ups: 74 minutes and $7.58.
Still weak, from its own report: the three yellowtails (Tokyo's, Kanazawa's and Toyama's winter one) and the red fish (golden-eye, rockfish, rosy seabass) are easy to mix up, and the yuzu on the old close-up dish art is hard to see.
Next: fewer, better choices
A second playtest found too much on screen, so the next part cuts packs to three cards and turns each new card into a pick of three.
Make your crafting feel like a reward
- Copy the skill below into
.claude/skills/card-packs/, or download it. - Draw cards as the thing before crafting, never the result. The result is the reward.
- Ask for a contact sheet of every card at 1×, and check each one reads without its name.
The skill that made it work
The card-packs skill from part 2, updated after the playtest: cards show the raw ingredient, duplicates level a card up, and packs end on the number jump. Copy the rules below, or download it with its references.
- Cards are game items. Every card is something the game uses (an ingredient, a unit, a recipe), with its data in one table: id, name, tier, art, and what it does in the game. Packs feed the main loop: a new card unlocks or improves something within the next minute of play. A collection that sits beside the game is a side game nobody needs.
- Six tiers, one new effect each. Common (grey, flat), Uncommon (green, depth), Rare (blue, foil), Epic (purple, motion), Legendary (gold, light), Ultimate (red, spectacle). Each tier keeps everything from the tier below and adds one thing, the way Marvel Snap's card upgrades do. A lower tier never borrows a higher tier's effect. The tier must read from the border colour alone, plus a corner gem and pips for colour-blind players. See [references/tiers.md](references/tiers.md).
- Crisp art, separate shine. The card art is pixel art at one scale, never blurred. Shine, glare, sparkle and glow are separate layers on top: shine through a hand-drawn foil mask (only the parts meant to be foil shine), with its colour bands stepped to whole art pixels; sparkles are 1–3 px plus-shapes from the palette, not soft dots. Cards tilt toward the pointer (at most about 14°) and spring back.
- Make each card worth looking at. A card shows a big illustration of the item as it is before crafting (about 40–56 art px): the raw ingredient, never the finished product (a whole fish, not the sushi), so making something shows a transformation, a name in a pixel font and one line of what it does. Rarer cards get richer art: a background scene instead of a flat colour, the item breaking out of the frame at Epic and above.
- An opening sequence that builds. Tear (following the drag or a click), cards stacked face down, flip one at a time, the best card last. Before a rare-or-better card flips it glows its tier colour, longer for higher tiers; then a burst, a flash and a small screen shake that grow with the tier. End on a summary of the pack with NEW and LEVEL UP tags, then the result in numbers: how the best dish and the income per second changed ("best dish 1.2K → 3.4K, income +38%"), counted up. In an incremental, the event is the number jump. See [references/reveal.md](references/reveal.md) for the timings.
- Always skippable. Tap to finish a card early, a "reveal all" button, and a reduced-motion setting (no shake, half the time). A pack with only commons must take under about 4 seconds to open.
- Show the odds. Per-slot odds for every tier, and the real chance per pack including guarantees, one tap away in the shop and the pack screen. Never change the odds based on what the player has done or spent.
- Guarantees and pity. Every 5-card pack has at least one Rare or better in its last slot. Visible pity counters: an Epic or better within 10 packs, a Legendary or better within 40. The first pack is free and scripted to unlock something new right away.
- No wasted pulls. A duplicate levels up the card (more value, more stock); show the level bar filling. Card levels need a growing number of copies (1, 2, 4, 8...) so commons keep levelling while rare cards level slowly. Past the max level, duplicates turn into a currency that can buy a chosen card. See [references/fairness.md](references/fairness.md).
- Fewer, bigger packs. A pack is an event, not a button you press every minute. Price it so an active player opens one every 5–8 minutes early on and every 15–30 minutes later, and make each one move income noticeably (a goal of +20% or more). Packs cost the game's main currency and grow with income.
- Measure it. Simulate at least 100,000 packs with a fixed seed and report the real rate of each tier per card and per pack, the longest drought for Epic and Legendary (must respect pity), how many packs a full collection takes, and how much currency duplicates give. Check the opening sequence in a real browser at 720 px wide and on a phone, for every tier (add a debug way to force a tier).
- Report the tier table, the measured rates, the time to open a pack, and what is not done.
Save it as .claude/skills/card-packs/SKILL.md in your project.

