David Durst

Final Year CS PhD Candidate at Stanford
I'm on the job market.
Advised by Kayvon Fatahalian and Pat Hanrahan

Photo of David Durst

My research focuses on analyzing and imitating player behavior in multiplayer, first-person shooter (FPS) video games like Counter-Strike: Global Offensive (CSGO). I document my research successes and challenges on my blog. Through this process, I've honed in on the key idea that imitating human behavior enables analyzing human behavior.

  1. Problem Selection - how I identified analyzing player behavior in CSGO as a good problem that is both important, as it enables understanding complex behaviors driven by expert knowledge, and feasible, as there's ample data.
  2. Initial Approaches - how I determined that new solutions are necessary, as combining standard graphics and analytics techniques is insufficient to understand player behavior. I tried to use these techniques to identify cheaters using their reaction times. I computed accurate reaction times by rerendering game traces with custom shaders, addressed confounding technical factors by modifying the renderings to account for network latency, and featurized confounding behavior factors by using ray tracing to identify where players may predictively aim. While these techniques are precise and interpretable, they fail to provide satisfactory results as they only look at a small subset of game state. Human behavior is situationally dependent, so an individual player's decisions must be analyzed in the context of all players' game state.
  3. Technical Challenges - how I addressed technical challenges that arose during my journey, like extracting weapon recoil state and player head position from the game engine.
  4. Progress (and Eternal Glory) With New Approaches - how I'm solving the problem. Rather than directly analyzing human behavior, I attack the problem indirectly.
    1. In some situations, "indirectly" means forcing the players to perform their own analyses. I collaborated with Activision on hallucinations, an anti-cheat technique that tricks cheaters into self-identifying by reacting to fake enemies that aren't visible to legitimate players. Cheaters can only avoid detection by analyzing which players in the game state are real and which are fake. I presented hallucinations at GDC 2023.
    2. In other situations, "indirectly" means focusing on an intermediate problem: imitation rather analysis. Once you can imitate human behavior, then you can analyze the imitations and use them in novel applications like coaching. I've created a hand-crafted bot as a structure for imitation learning and attempted to learn an aim controller using data driven techniques.

I received a NSF Graduate Research Fellowship and a Stanford Graduate Fellowship in Science and Engineering. I will be graduating and looking for a full-time job this year.

Other Research

PLDI 2020

Designing efficient, application-specialized hardware accelerators requires assessing trade-offs between a hardware module's performance and resource requirements. To facilitate hardware design space exploration, we describe Aetherling, a system for automatically compiling data-parallel programs into statically scheduled, streaming hardware circuits. Aetherling contributes a space- and time-aware intermediate language featuring data-parallel operators that represent parallel or sequential hardware modules, and sequence data types that encode a module's throughput by specifying when sequence elements are produced or consumed. As a result, well-typed operator composition in the space-time language corresponds to connecting hardware modules via statically scheduled, streaming interfaces.

We provide rules for transforming programs written in a standard data-parallel language (that carries no information about hardware implementation) into equivalent space-time language programs. We then provide a scheduling algorithm that searches over the space of transformations to quickly generate area-efficient hardware designs that achieve a programmer-specified throughput. Using benchmarks from the image processing domain, we demonstrate that Aetherling enables rapid exploration of hardware designs with different throughput and area characteristics, and yields results that require 1.8-7.9x fewer FPGA slices than those of prior hardware generation systems.


Stanford AHA Monthly Meeting - October 2020
Reconfigurable accelerators promise an exciting set of benefits compared to other processors in the cloud and on mobile devices. They can enable application implementations that are more parallel, more energy efficient, and have lower latency. However, it can be challenging to predict the real-world situations where reconfigurability delivers these benefits. In this talk, I will examine five benchmarks that represent workloads interesting to Adobe. These benchmarks show that there is a precise niche of applications that benefit from reconfigurability: applications that can be implemented in a manner that takes advantage of custom cache hierarchies and specialized functional units. For other applications, there are other ways to improve performance including programming languages and compilers that efficiently use existing, non-reconfigurable accelerators with greater peak compute performance and memory bandwidth.

PLDI 2020 - June 2020
The conference talk for the Aetherling paper. In this talk, I focus on Aetherling's data-parallel IR with space- and time-types, a higher-level input language whose types are unaware of space and time, and a simple set of rewrite rules for converting from the higher-level language to the space-time IR.

Spark Summit East 2016 - February 2016
TopNotch is a framework for quality controlling big data through data quality metrics that scale up to large data sets, across schemas, and throughout large teams. TopNotch's SQL-based interface enables users across the technical spectrum to quality control data sets in their areas of expertise and understand data sets from other areas. I was the project lead and main developer for TopNotch while I worked at BlackRock.

Spark-NYC Meetup - September 2015
This presentation addresses the disparity between the current and desired big data user experiences. In this presentation, I demonstrate a web application with a scatterplot matrix visualization that allows non-technical users to utilize Spark to analyze large data sets.


GDC 2023
David Durst, Carly Taylor

Kalhan Koul, Jackson Melchert, Kavya Sreedhar, Leonard Truong, Gedeon Nyengele, Keyi Zhang, Qiaoyi Liu, Jeff Setter, Po-Han Chen, Yuchen Mei, Maxwell Strange, Ross Daly, Caleb Donovick, Alex Carsello, Taeyoung Kong, Kathleen Feng, Dillon Huff, Ankita Nayak, Rajsekhar Setaluri, James Thomas, Nikhil Bhagdikar, David Durst, Zachary Myers, Nestan Tsiskaridze, Stephen Richardson, Rick Bahr, Kayvon Fatahalian, Pat Hanrahan, Clark Barrett, Mark Horowitz, Christopher Torng, Fredrik Kjolstad, Priyanka Raina

PLDI 2020
David Durst, Matthew Feldman, Dillon Huff, David Akeley, Ross Daly, Gilbert Louis Bernstein, Marco Patrignani, Kayvon Fatahalian, Pat Hanrahan

DAC 2020
Rick Bahr, Clark Barrett, Nikhil Bhagdikar, Alex Carsello, Ross G. Daly, Caleb Donovick, David Durst, Kayvon Fatahalian, Kathleen Feng, Pat Hanrahan, Teguh Hofstee, Mark Horowitz, Dillon Huff, Fredrik Kjolstad, Taeyoung Kong, Qiaoyi Liu, Makai Mann, Jackson Melchert, Ankita Nayak, Aina Niemetz, Gedeon Nyengele, Priyanka Raina, Stephen Richardson, Raj Setaluri, Jeff Setter, Kavya Sreedhar, Maxwell Strange, James Thomas, Christopher Torng, Leonard Truong, Nestan Tsiskaridze, Keyi Zhang