My name is Ian Dunn and I'm a software engineer focused on computer graphics and game developement. I'm a graphics software engineer at Intel where I work on graphics driver performance optimizations for games. In my free time I'm a hobby game developer - right now I'm working on an open-world adventure game called Alluvial. You can check out my resume here or read about some of my projects down below!
ionEngine is a DirectX11 rendering engine and application framework that I use as the basis for my 3D hobby projects. It's open source! You can read more about it at www.ionengine.io.
Alluvial is an open-world adventure game using procedurally generated content, based on the terrain generation and rendering work I did for my master's thesis. Find out more about the game at www.alluvialgame.com!
Using CUDA and OpenMPI, I wrote a Madelbrot fractal renderer to run on GPU-accelerated clusters. Using a network of 27 workstations, I produced the below video by rendering each frame individually with super-sample anti-aliasing and smooth coloring.
I've always loved games that let you build and ride rollercoasters. I built a rollercoaster demo to show off the spline interpolation features of ionEngine and discovered that it was a lot of fun to play with. I also added VR support.
I wrote a ray tracer for an advanced rendering class at Cal Poly. In early iterations I used CUDA to perform the raytracing in real-time but I eventually settled on using an OpenGL pre-vis with CPU-multithreaded ray tracing on top.
I'm in the process of integrating the ray tracer with ionEngine so that it's possible to quickly and easily create high-quality images from an existing real-time project.
In Spring 2013 I went on a 30-day research trip to Malta to deploy submarine ROVs into water features such as wells, cisterns, and sea caves. My responsibilities included data collection, hardware management and troubleshooting, and visualization software. In early Fall 2015 I returned to Malta to work on 3D reconstruction of submerged wrecks. Check out the blog for the 2015 trip!
I took a game development course at Cal Poly from January 2012 to June 2012 and was part of the team that built Happy Cabbage Adventure. My primary responsibilities were the core game engine, the collision system, and the deferred shading system. Happy Cabbage Adventure is a 2.5D platform adventure game. You can read more at the project page.
Aqueous is an open-source project aimed to produce visualizations of underwater science data. I developed and used Aqueous mostly while involved with the ICEX project.
September 2018 - Present
Currently working on a GPU driver performance team, implementing driver optimizations for games and other workloads. Performance analysis, debugging, and mentoring.
January 2017 - June 2018
After I graduated from Cal Poly, I taught a variety of classes over 5 quarters: Game Design, Systems Programming, Introduction to Computer Graphics, Advanced Rendering Techniques, and Real-Time 3D Computer Graphics Software.
June 2015 - December 2015
I worked as a software engineer intern on the DirectX 12 team at Microsoft. My project involved building a tool to help developers add multi-gpu support to existing graphics engines (including heterogenous hardware support). Development continued after my internship ended, but what I worked on was later finished and published as the D3DX12AffinityLayer.
In Fall of 2010, I started at California Polytechnic State University (San Luis Obispo, CA). I graduated in a blended program which awarded both a bachelor's and master's degree simultaneously in December 2016. My undergradute degree was in Software Engineering and my graduate degree was in Computer Science.