ProjectsProduct · Interaction · Engineering

ShinySim

ShinySim evolved from a small Flask coding experiment into a typed, data-driven, multi-generation shiny-hunting simulator—combining product framing, interaction design, probability modelling and deliberate data-quality controls.

Visit Site
The final ShinySim desktop workspace
The deployed simulator brings encounter, controls, context, route editing, rules and session feedback into one responsive workspace.
01

Legacy prototype

The original Python and Flask experiment proved weighted encounters and a one-in-n shiny outcome. It also revealed the limits of server-rendered actions, coupled session state, unvalidated route totals and a blocking Auto Hunt loop.

The original Flask ShinySim interface
A genuine local reconstruction from the preserved Flask source.
02

Simulation foundation

The rebuild began with a pure TypeScript domain layer. Explicit route, result and session types separated probability from React, while injected randomness made boundary conditions deterministic and strict fixed-point validation prevented misleading encounter tables.

03

Interface rebuild

The new single-page workspace gives the current encounter priority, then separates direct controls, statistics, history and configuration. Watched Hunt, fast-forward Auto Hunt and manual stopping remain distinct and understandable.

ShinySim current encounter and simulation controls
Encounter hierarchy and the three intentional run modes.
04

PokéAPI-backed encounters

A typed adapter filters version-specific location data by method, excludes unsupported conditions, aggregates duplicate slots and enriches each route with levels and sprite metadata. The interface clearly distinguishes authentic provider data from local edits.

ShinySim game context and route editor
Provider context, route authenticity, editable slots and strict total validation.
05

Game-aware rules

Game selection now resolves through a rules registry rather than one global denominator. Earlier titles use their generation’s base rate, while eligible later games expose Shiny Charm rolls and a transparent effective probability.

ShinySim Generation VI rules with Shiny Charm enabled
Generation-aware odds, charm availability and effective probability.
06

Coverage validation

A discovery and audit pipeline examined 18,479 candidate contexts and generated 5,306 truthful selections across 26 games. Conditional, incomplete and deterministic acquisition records were documented and excluded rather than normalized into misleading hunt tables.

07

Final product

The released product supports searchable game-to-method navigation, live route loading, editable encounters, bounded history and responsive behavior. Its 116 automated tests cover probability, validation, state transitions, provider reliability, catalog integrity and performance-sensitive hunt behavior.

The final ShinySim mobile experience
The same task hierarchy preserved in a deliberate 390-pixel mobile flow.
Live product

Try the simulator.

Visit ShinySim