Sam Estep
Hi! 👋 I'm Sam (he/him). I'm a fifth-year PhD student in S3D at CMU, advised by Joshua Sunshine. I do research on differentiable programming (you should join us on Discord!), with a particular focus on performance for interactive visual applications. Here are some past projects:
- GradBench is an extensible benchmark suite for comparing the performance of differentiable programming tools across domains. We use containerization and a shared communication protocol to simplify installation and usage of many tools across many programming languages, building this up as a shared resource for the differentiable programming community to maintain together as we move forward.
- Rose is the core engine for differentiable programming inside Penrose, engineered for performance in the interactive web setting. We use JavaScript as a host language for metaprogramming, and (similar to JAX) use just-in-time compilation to get good performance. Unlike existing tools, we drastically reduce compilation time by allowing explicit definition of composable functions. Check out my publications list below for our paper in ECOOP 2024!
Outside of work, I love bouldering, performing improv comedy, and baking. I'm also always looking for music and book recommendations, and trying to get my friends to join Letterboxd because it lets us take the set intersection of the movies you want to watch with the movies I want to watch (how cool is that?)
Publications
Blog
| 2025-09-05 | Parameters and binding forms should be mutually recursive |
| 2025-06-23 | How much slower is random access, really? |
| 2025-03-27 | First impressions with Typst |
| 2024-10-20 | How can computers roll dice? |
| 2021-02-20 | Parallelizing nvcc |