By Sam Luna-Nelson  ·  Based on this version by Zachary Yaro  ·  Source code