is a collection of projects centered around competitive Pokémon battling.


EPOké (named after a portmanteau of EPO and ‘Poké’) leverages a reverse damage calculator (‘gmd’) and additional logic to construct the perceived state based on the perspective of the client. EPOké is designed to be useful in many domains, exposing additional information from replays, extending the Pokémon Showdown client tooltips/UI, or inside the engine of a Pokemon AI.


0 ERROR (named after a famous glitch in Generation 1, while also alluding to flawless play) is an AI based around MCTS and board state evaluation heuristics (expectiminimax, learned policy and evaluation functions, etc). 0 ERROR focuses on the OU singles metagame in every generation, originally playing using a fixed set of teams. 0 ERROR will iterate on ideas from existing AIs, utilize usage statistics and EPOké in an effort to surpass human-level battling performance. Within PocketMon, 0 ERROR can additionally be set up in an ‘omniscient’ mode where it is aware of the true battle state as opposed to relying on what EPOké can infer.


PocketMon (named in reference to the original Pokemon manga, with ‘Pocket’ referring to its mobile nature) will provide an interface optimized for battling on modern mobile phones. Battling 0 ERROR while offline is the primary goal of the project, but playing online against human opponents with the PocketMon UI is a potential future feature.