Apoorva Joshi

email, github, mastodon, twitter

Professional experience

Unity, Senior graphics programmer, August 2020 - Now
Graphics, optimization and other secret stuff
Playdead, Graphics programmer, May 2018 - July 2020
Graphics R&D, engine modification, GPU/CPU optimization, artist tooling
NVIDIA, System software engineer, January 2016 - March 2018
Full CUDA profiling stack—driver, GPU performance monitoring libraries, profiling CLI & GUI (nvprof, Visual Profiler, Nsight Compute)
Microsoft, Intern, June 2013 - August 2013
Bing search engine ingestion


Efficient Rendering of Linear Brush Strokes - Journal of Computer Graphics Techniques

Personal projects

papaya.io, a browser-based image editor built with Rust compiled to WebAssembly, with front-end and back-end code

EasyTab, a single-header drawing tablet library that supports Windows and Linux


The shader graph contract
Convolution and probability theory
Render graphs
Aliasing in computer graphics
Alpha compositing, OpenGL blending and premultiplied alpha
Constructing a cubic Bezier that passes through four points
Efficient Rendering of Linear Brush Strokes—my graphics paper explained
Creating a modern OpenGL context
Exploring bump mapping with WebGL
Hitchikers Guide To The GDB
Exploring calling conventions with x86 assembly
Loading OpenGL without GLEW
Native UI is dead, long live native UI
Building a Fast, Modern Image Editor