# Pokemon Color Search

Utility for quickly finding pokemon by the sprite's "distance" from a given color.

See also explanations of [the underlying math](math.md) and [which images are used](pngs.md).

# Included Files

- `ingest.py` generates `database.csv` which is needed for `nearest.py`, 
`database-cam02.csv` which is an alternative database for `nearest.py` using 
the CAM02-UCS color space, and `database.js` which is needed for `nearest.html`. 
Requires numpy, Pillow (PIL), and [colorspacious](https://github.com/njsmith/colorspacious).
- `nearest.py` provides multiple options for finding pokemon "near" a color.
No external dependencies, but a database must be provided. If CAM02-UCS is
being used, this requires colorspacious and numpy.
- `nearest.html` and `nearest.js` allow you to use a front-end in your browser,
by opening `nearest.html` directly. The implementation is somewhat lazy to avoid
the use of an actual build system, and statically imports the dependencies
[Fuse.js](https://fusejs.io/), [d3-color](https://www.npmjs.com/package/d3-color),
and [d3-cam02](https://www.npmjs.com/package/d3-cam02). Requires `database.js`
to be present, meaning `ingest.py` must be run first, unless you are using the
included database.
- `explore.py` traverses a subset of the 24-bit RGB color space and finds the
pokemon that most closely match each color, and produces `best.csv` and 
`counts.csv` as results.
- `database.csv`, `database-cam02.csv`, and `database.js` are included as well,
built from the set of pngs detailed in [pngs.md](pngs.md).