University of Toronto
Steve Engels
Professor, Teaching Stream,
Dept. of Computer Science, University of Toronto

Research Profile

I've been involved in several research projects over the years. While the projects listed below are a summary of my current and past research, I'm open to discuss new ideas and research collaborations.

Publications -- Current Research -- Past Research -- Pre-UofT Research


  • Engels, S., Pikula, B., FlexComb: A Facial Landmark-based Model for Expression Combination Generation, poster presentation at AIIDE 23 (Artificial Intelligence for Interactive Digital Entertainment)
  • Engels, S., Gerigk, J., Playing Various Strategies in Dominion with Deep Reinforcement Learning, poster presentation at AIIDE 23 (Artificial Intelligence for Interactive Digital Entertainment)
  • Engels, S., Design Factors for Educational Video Games, PhD thesis
  • Engels, S., Tong, T., Chan, F., Automatic Real-Time Music Generation, poster presentation at AIIDE 15 (Artificial Intelligence for Interactive Digital Entertainment)
  • Nacke, L., Engels, S., Mirza-Babaei, P., Actionable Inexpensive Games User Research, in Proceedings of the 33rd Annual ACM Conference Extended Abstracts on Human Factors in Computing Systems (CHI EA '15)
  • Engels, S., Zingaro, D., Tong, T., Designing and Evaluating Audio-Based Game Features, poster presentation at CHI Play (part of ACM annual conference on Human Factors in Computing Systems)
  • Engels, S., Massively Multiplayer: A Dozen Schools Teach Together, Collaboratively and Competitively, lecture presentation at Game Developers Conference 2014
  • Engels, S., Eisner, D., Automatic Real-Time Music Generation, poster presentation at Game Developers Conference 2011
  • Engels, S., Lakshaman, V. and Craig, M., Plagiarism Detection using Feature-Based Neural Networks, in Proceedings of Special Interest Group on Computer Science Education Conference 2007

Current Research

My current research interests revolve around video game design and applications of machine learning & artificial intelligence (largely related to game design).

Facial Expression Generation

I've been fortunate enough recently to collaborate with Ubisoft La Forge on several exciting projects. Some of the initial work that led me to La Forge was in facial expression generation, which created authentic character expressions based on facial training data in the wild.

Game Design for STEM Education

Our student research teams work with UofT's Science Unlimited program to create games that can supplement the high school science curriculum. We generate around half a dozen games each year, in the hope that we can create a complete corpus of activities that help science teachers in and out of the classroom.

Automatic Music Generation

We have created software that can take in a piece of music, analyse the patterns in the notes, and generate original music in the same style, in real time, forever. We presented this research at the Game Developer's Conference in 2011, and have been working on it since then to improve the way it generates music at a high level.

3D Terrain Generation

Similar to the music generation project, we created a tool that allows a level designer to specify basic constraints that a level must have, before filling in the rest of the level with procedurally generated terrain. This tool allows levels to be stored very cheaply as simply contours, which would make it easier for game servers to transmit large-scale levels in a short amount of time. In addition, the type of terrain generated by this tool can be based on a corpus of example levels, which can make the style of the new level imitate the style of the original level.

Augmented Reality

We've worked on making a real-time augmented reality product for mobile devices, which detects features in a room with the digital camera, and estimates the dimensions of the room based on the relative movement of these features.

Past Research

My initial research interests at the University of Toronto were in applications of artifical intelligence techniques and video game design.

Games for the Blind

For several years, Daniel Zingaro and I designed video games for blind players. Our goal was to raise the standard of these games, by providing a set of best practices for potential game designers.

Games for Seniors

I've done some work over the years with Dr. Jing Feng (and indirectly, with Dr. Ian Spence) on their research into video games to improve cognition. Based on their findings, we make games that act as the basis for further research. They provide the target, and we try to hit it :)

Open Data

Open data (and big data in general) will be a really big thing in the not-so-distant-future. Large information datasets are a currency that some people hoard and are reluctant to share. But this is why it's exciting to have groups like the Canadian government release large datasets in the hope that people will generate cool apps from me :)


I hate the thought of identity theft, and wanted to find a way to prevent people from using my computer while I'm away from my desk, or impersonating me after hacking my account. We created a secondary security algorithm that tracks the cadence of a user's typing style, and would kick a current user out if the user's typing style didn't match that of the account owner.

Captcha Decoding

One day I wondered how hard it would be to remove the distortions from a Captcha text image. As it turns out, the distortions wern't the biggest obstacle to overcome. Getting a decent OCR tool that's available for free? Now that's hard.

Plagiarism Detection

What features do you use to figure out that two students have been cheating off each other for their assignment? We created a neural network that trains off student assignments, to figure out what features are good indicators for plagiarism. Not only does it create a strong classifier, it lets you know which features are important, and which ones aren't useful at all.

Steve's Research, before UofT

My research interests started in artificial intelligence, with leanings towards natural language processing. I did my master's degree at the University of Waterloo, under the supervision of Dale Schuurmans.

During that time, I was exploring the areas of machine learning, natural language and information extraction. I took a term as a graduate intern at Whizbang! Labs and took another term to teach.

The focus of my research was on the use of human learning techniques to improve the performance of language learning systems, particularly through the use of developmental learning heuristics. See the documents below for more information on these past research interests.

M.Math Thesis

Effects of Developmental Heuristics for Natural Language Learning

Supplementary Slides, Intro to Comp Sci course (CS 134, UWaterloo)

Explanation of Interfaces CS 134 Slides Postscript, Powerpoint
Davis Centre Simulation Document CS 134 Slides Powerpoint
Code for Sublist and Binary Tree Methods CS 134 Slides Postscript, Powerpoint
Maximum Sum Solutions CS 134 Document Word
So You Want To Do Formal Verification CS 134 Handout Postscript, Word
Verification of Selection Sort CS 134 Document Postscript
Verification of Quicksort CS 134 Document Word

Research Presentations

Corpus Tagging and Collocations Statistical NLP Presentation
Techniques for Tagging Parts of Speech Statistical NLP Presentation

Course Reports

Heuristic Methods for Planning Problems CS 686 Project Report
Use of Personality in Intelligent Agents CS 685 Project Report
Design of a Multimedia Web Crawler CS 748 Project Implementation

Stat NLP Tutorials

Maximum Entropy Markov Models My quick tutorial
Lagrangian multipliers My quick tutorial
Shrinkage My quick tutorial
The Viterbi algorithm My quick tutorial
CKY & Earley parsing My quick tutorial
Boosting My quick tutorial


Profile of an Information Extraction Company Summary of Fall 2000 Internship
Markov Indecision Processes Statistical Research Humour :)