Wind-Up Bird is a strong Riichi Mahjong AI built using explainable AI (XAI) techniques. It shows how it sees the game: opponents’ expected value, likelihood of ready hands, and likely scoring patterns. These estimates power a dynamic grading system that puts mistakes in context, helping you focus on the decisions that matter.
At its core is Advantage-Weighted Regression (AWR), which lets it learn from human play. Its internal critic estimates action values and guides which decisions it learns from. The goal is human-like play without sacrificing strength.
The project is open source, and transparency matters. You can watch Wind-Up Bird’s games on RiichiLab, read the source code, or join the Discord to share feedback and help build it.
Contributors
Wind-Up Bird is built by edgy-raven. AI coding tools are used extensively during development.
- Thanks to MochaMoko for the tileset.
- Thanks to everyone who played early versions, reported bugs, and stuck with the project through a lot of rough edges.
Like other AI log reviewers, Wind-Up Bird compares your choice with its preferences, but is more tolerant of human choices and can identify human error patterns, such as repeatedly overlooking the same safe tiles, without penalizing each repetition separately.
Unlike other Mahjong AI log reviewers, Wind-Up Bird does not treat each decision equally. Its decision importance system takes the game situation into account.
- Self-hand Quality — Mistakes in a hand that is unlikely to win matter less than mistakes that might make the difference between winning and only reaching a ready hand.
- Opponent Threats — Failing to take defensive measures matters less when opponents are unlikely to be ready than when they are ready to win.
- Criticality — A strong model preference between a good versus an okay choice is less important than a good versus bad choice.





