• Things I've made

    Like, random personal projects from days gone by

  • A bit about me

    Art & Engineering

    Among other things, Rachel considers herself an engineer, an artist and an educator. Rachel is fascinated with problems at the intersection of the technical and the creative.

    She currently works at Bonfire Studios as a engineer focusing on gameplay and procedural content generation. She previously taught a class at the University of Pennsylvania on procedural content generation in computer graphics (creative coding), of her own design. Rachel loves games of all stripes -- board games, narrative games, strategy games and those special conversations that evolve into games of sorts.

    Rachel graduated from the University of Pennsylvania with an MSE in Computer Graphics and Game Technology. Before that, she earned a BS in computer science, and a minor in creative writing at the University of Chicago. She also has background in linguistics, and is generally interested in computational linguistics, NLP and machine learning.

    Away from the computer, Rachel can most often be found daydreaming about games, doodling on whiteboards, climbing something or obsessively folding origami.

  • Games I've Made

    Games are my life. Here are a few projects I've designed and developed. (You'll have to wait to see what my studio is working on!)

    Electron Universe

    VR Action, Unity for the HTC Vive

    This game was made during my VR game design internship at Prologue Immersive. Electron Universe is a surreal story about a young boy who escapes from his pest-infested home into an imaginary science fiction world where he shrinks down to fight insects with a high tech slingshot.


    The story concept and models are by Prologue. I did most of the programming, AI and level and mechanic design.


    Puzzle, Unreal

    This game was originally an entry for PennPlay, a student game jam with the prompt "time".


    The premise is as a shadow-being, you can only walk in the shadows, but you find a magical compass that allows you to move the sun the sky, changing the angle at which shadows are cast. 


    Arcade/Action, Unity

    Moonshot is a variant of Pong -- instead of paddles and a ball, there are planets and a moon. Each planet attracts the moon with its gravitation force. The nearer to the moon, the greater the force exerted. Players score by slingshotting the moon into their opponents goal, but forfeit a point if they touch the moon, so must position carefully.


    Moonshot was designed as a local two-player game, but I've also included simple AI for solo play. There's also dodgeball mode, in which players have to avoid a swarm of moons for as long as possible. Try it here!


    VR Exploration/Puzzle, Unity for Oculus Rift

    Carroll is a short, whimsical escape-the-room puzzle game inspired by Alice in Wonderland. Players find themselves trapped in a room and must drink potions to grow and shrink in size to experience the room at different scales. Our team wanted to create a VR experience that really took advantage of VR immersion, and we felt the perspective change in Carroll fit the bill.


    Carroll was created by a team of four for PennApps, and won the Design Route prize.




    Food Fight

    Action, Unity

    This game was the winning entry for the two-week What-If Game Jam with Philly Dev Night. Food Fight is a simple button-mashing game with the simple premise, what if food came to life? It features adorable art, animations and music by my talented teammates. My friend AJ and I handled the gameplay programming.


    Try it yourself!

  • Teaching

    Educating, making information and ideas accessible, is a passion of mine. I consider it my privilege and responsibility to teach.

    CIS700: Procedural Graphics

    University of Pennsylvania, Lecturer

    I teach a technical elective class on procedural content generation at UPenn in the computer science department. The course is essentially about how to use algorithms and code as a creative medium for visual output (aka, "how to paint with math"). I designed the course from scratch, including the syllabus, lectures, and assignments, using JavaScript and WebGL. We cover a variety of topics, from LSystems and replacement grammars to noise functions and non-photorealistic rendering techniques.


    I've made the course as open source as possible -- read more, and check out some of my students' amazing work here at the course site.

    Volunteer programming instruction

    iPraxis, STEM mentor / scienteer

    iPraxis is an organization that works with Philadelphia public schools to bring STEM education to middle school classrooms that would otherwise may lack STEM exposure.


    I helped design and teach the curriculum for a new computer science after school program using simple game exercises (such as guess the number, mad-libs and text adventures) to teach students basic Python.


    I'm proud to say I was awarded the 2015 iPraxis Mentor of the Year!

  • Technical Projects

    Here are some of the coding projects I've worked on for school, work and just for fun.

    PIC/FLIP Fluid Simulator

    C++ & OpenGL : CIS563 Physically-based Animation

    This is a fluid simulator and particle viewer created from scratch. The fluid solver uses the FLIP/PIC algorithm, which is much too complicated for me to do justice in a paragraph. Instead, see the original SIGGRAPH paper, a veritable masterpiece.


    Although there's still much to be done here, I'm quite proud of this simulator -- I consider it to be some of the trickiest implementation I've ever tackled. Code is on github.


    C++ & OpenGL : CIS561 Computer Graphics

    This is a path-tracing renderer, featuring global illumination, multiple-importance sampling, specular, diffuse and transmissive BRDFs and russian roulette termination. The scene is read in from a custom scene file. I've also been experimenting with different denoising techniques.


    I'm especially fond of this renderer because I believe it's the project that has taught me most about computer graphics to date.

    OK Google Speaker Clustering with K-means

    C++ & Flume : Google software engineering internship project

    This was a machine learning research project with the Hotword team with OK Google, which is responsible for producing a speech models that accurately determines whether a user has said "OK Google". The goal of this project was to investigate whether training multiple smaller models will offer performance gains (more accurate confidence ratings) when a user is matched to a personalized model rather than the current generalized model, and to conduct research about what speaker attributes are the most divisive, or produce the clearest groupings.

    K-means Color Compressor


    A simple color compression tool using the k-means algorithm, an unsupervised machine learning algorithm good for clustering. There are many great explanations of the algorithm as pertains to compression out there, like this one. Feel free to try it here.

  • Say hello!

    Don't be afraid to reach out.