About Me |
|
Computer Science Master's Student at the University of Waterloo Email: phdemontigny [at] gmail.com I am a math major turned computer science grad student who builds small games and applications in my free time. When I'm not working on these projects, I like to study interesting applications of mathematics, including computational geometry and machine learning. I also enjoy playing both computer and board games, participating in Magic the Gathering tournaments, training in Muay Thai, competing in intramural squash, and learning Japanese. About This SiteThis site is where I will post all of the papers, projects, and games I have worked on over the past few years. I will be updating this site regularly as I complete my various side-projects, so be sure to check back often! |
Links: website, github, Tech: Javascript, HTML, CSS, Fancybox A simple website editing API that I'm developing so a friend of mine with no programming experience can customize her personal website. The API abstracts away the standard HTML in favor of JavaScript calls for creating menus and pages. Current features include:
|
Links: report Tech: Python, Scikit-Learn, Random Forests This project was completed as part of a graduate course in Applied Machine Learning in the Fall of 2014. I investigated the viability of using Machine Learning Algorithms to predict the price of Magic the Gathering (MTG) cards using only the information contained in each individual card. In doing so, I hoped to predict which cards would be worth the most before they even became available. The results of my analysis suggested that even after 20 years of MTG, there are still too few cards in the higher price range to create a strong enough prediction algorithm using standard machine learning techniques. |
Links: github, report Tech: Java, Python, Fuego, Neural Networks As part of the Artificial Intelligence final project in December of 2013, my partners Simon Chase, Daniel Seita, and I created a simple program that plays the game of Go over the course of about two weeks. The program uses a neural net implementation that we trained using transcripts from professional games on 9×9 boards. The final product succeeded in that it was able to learn a non-random strategy. My role in this project was to design and program the input generator, to write the script that trained the neural net, and to create a basic Go player for presentation purposes. |
Links: game, codeheart.js Tech: Javascript, GIMP This game is based off of the popular mobile puzzles game Flow Free. My version differs from the original in that the levels are procedurally generated rather than being made individually. The algorithm I used is based on the solution from this Reddit post, with a few improvements. In every Flow level, there exists a solution in which the following two conditions are met: 1) every flow has size 3 or more, and 2) no two grid locations share a color without being connected (no "overlaps"). Every puzzle generated by my algorithm has a solution that satisfies these two conditions, which I refer to as the "optimal solution." |
Links: game, codeheart.js Tech: Javascript, GIMP This game was my second creation from the Machinis Ludo 48 hour game-jam in January of 2015. Inspired by titles such as Flappy Bird and Candy Crush, I modified the rules of Set to create a game that was both very challenging and very addicting. I hope to release this game as a mobile app in Google Play sometime soon. Note: All sound files were borrowed from The Legend of Zelda: The Wind Waker, another fantastic game. |
Links: game, codeheart.js Tech: Javascript, GIMP This game was my first creation from the Machinis Ludo 48 hour game-jam hosted by Professor Morgan McGuire in April of 2013. My goal with Constellations was to create a game that teaches graph theory and mathematical thinking through a series of thought-provoking puzzles. The game's main feature is the unlockable "challenge problems," many of which do not have solutions. This forces the player to prove to themselves which challenges are not solvable, as the game will never tell them. |
Links: profile, trello Tech: GLSL A "weekly" challenge in which members of our lab at Waterloo submit shaders that satisfy a given condition. Each subsequent challenege builds on the previous by adding more complex rendering requirements. The goal of this challenge is to gradually expand our knowledge of graphics and shaders as a group, and to eventually create some really cool scenes. For a description of each challenge and a list of the shaders submitted by our group, click on the "trello" link above! |
Links: game, report Tech: JavaScript, WebGL, THREE.js A horror-survival game in which the player is being chased through a forest by the Weeping Angel characters from the Dr. Who television series. The goal of the game is to turn on all of the lanterns in the forest without letting the angels sneak up on you. This project was inspired by the game "Slender: The Eight Pages," and attempts to create a similarly creepy experience for the player. It was implemented entirely in Javascript using the THREE.js WebGL API. The Weeping Forest took third place in the final project competition for my computer graphics class. |
Links: github Tech: C++, Lua A simple ray tracer implementation in C++ that draws scenes as specified in lua files. It has the following features, which can be seen in the generated image to the left.
|