Yichen Shou


Hi, I'm Yichen, but you can call me Ethan!

I am a Master's student studying Computer Graphics and Game Technology at the University of Pennsylvania, where I also studied Digital Media Design as an undergrad. I like to follow my dreams: my last one got me to take a gap year to teach English in rural Japan. My current dream is to work in the video game industry, as I have been playing games for 10+ years and making them in my free time for 5-ish years. If you have a cool game you could use some help making, email me at yichenshou@gmail.com.

Here is my resume.

Find Me On Other Sites

linkedin youtube github




Towerbeats is a rhythm-based tower-defense game I created in under 48 hours with Unity for the 2018 Global Game Jam. Imagine a normal tower defense game but every tower you build dynamically adds its own sound to the background music so that every playthrough features a uniquely created soundtrack. If you're really good at the game you can even use it like a music mixer to create your own songs!
Click here to download a playable version of the game! (Windows only)



Spacero is a 2D mobile game where you control an astronaut who must defend his space ship from incoming asteroids. The game is based on a "best runner-up game" local multiplayer browser game I made during the Penn Play game jam. The game is all about using the orbit of planets to get around the map smoothly and pushing planets into each other to blow them up. The game is currently in the works to be on the appstore sometime in 2018.

Space Escape

Space Escape is an Oculus Rift/Leap Motion VR game set in space where you guide an astronaut to safety with your own hands. Your hands are scanned into the game using a Leap Motion strapped to an Oculus Rift headset. The game was created using C# and the Unity game engine. Click on the thumbnail to watch a video demo of the game!


chARge is a mobile local multiplayer augmented reality jousting arcade game (I know it's a mouthful). You can play the game anywhere as long as you scan in a printout of the anchor image. The goal of the game is to control your knight character to knock out all the other player's knights while collecting power ups and avoiding traps. Your knight's movements are directly mirrored from your physical movements about the battlefield, so be prepared to move fast! Watch the trailer by clicking on the thumbnail on the left.


Typographic Portrait Generator

Monte Carlo Renderer

They say "a picture is worth a thousand words," but with the typographic portrait generator, you can have both! The web app scans your social media profile and creates a typographic portrait of your using your most commonly used words and a provided picture. The app was developed in python with the help of the wonder staff of Penn's World Well-Being Project. Using Python's powerful Scikit-image library, the app creates a black and white image that highlights facial features by combining results from different image thresholding algorithms. Then it fills up that image with words using a modified version of Andreas Mueller's wordcloud library. The app is currently only usable via the command line, but the web version is in the works. For now, click on the thumbnail for more pictures, read my dev-blog of the project, or check out its code on github.

Monte Carlo Renderer

Monte Carlo Renderer

The Monte Carlo Renderer is the final project of my Computer Graphics class and is built using C++, OpenGL and Qt. It implements rendering techniques like Multiple Importance Sampling, Global Illumination, uses data structures like K-d trees, and has features such as depth of field. Click on the thumbnails for some test renders.

All Your Words Are Belong To Us

All Your Words Are Belong To Us

"All Your Words Are Belong To Us" is a web app that visualizes the language of video game characters using MadLibs. It scans the dialogue scripts of various video games and builds a database of vocabulary for each game character, then picks out words they are likely to say and puts them into a sentence that you put it. The initial scan and database building is done in Java; the MadLib sentence generation is done in Javascript; both parts of the projects uses Stanford's Part-Of-Speech Tagger. Click on the thumbnail to try out the app.

Mini Maya


Mini Maya is a basic version of Autodesk Maya coded in C++/OpenGL with Qt. The final group project of my Intro to Graphics class, the program includes functionalities such as: vertex/edge/face selection, polygon manipulation, and a functional 3D camera. As the "deformer" of the group, I implemented free-from deformations, global deformations (e.g. twist), and the importing/exporting of OBJ files. Here's a video demo of the deformations!



The Games Of My Life Data Visualization Asian Stereotypes In Games Mandala Public Awareness Poster Melting


Self Portrait Stairs Skeleton Takeout

3D Modeling

Pixiu Unicorn Gundam GLaDOS