My name is Ian Dunn and I'm a software engineer with a specialty in 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 an OpenGL rendering engine and application framework that I use as the basis for nearly all of my other projects. It's open source! You can read more about it at www.ionengine.io.
Alluvial is an open-world rpg/adventure game using procedurally generated content. Find out more about the game at www.alluvialgame.com!
At Microsoft from June to December of 2015, I worked as a software engineer intern on the DirectX 12 team. My project involved building a tool to help developers add multi-gpu support to existing graphics engines (including heterogenous hardware support).
Using CUDA and OpenMPI, I wrote a Madelbrot fractal renderer to run on GPU-accelerated clusters. Using a network of 27 workstations, I was able to produce 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 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.
I first started programming in 2005, making simple text-based adventures in a BASIC environment called BlitzMax. In 2007, I started to pick up C and C++ and moved on to making 3D games using Irrlicht.
In early 2012, I started using OpenGL in graphics classes at Cal Poly. I took a game development course and ended up responsible for rendering and core game engine components on my team. The engine I developed on that project would later become ionEngine, my largest project and the basis for a lot of the other 3d applications that I work on.
In 2015, I took a year off from Cal Poly to pursue internships in the computer graphics field. From January to May I worked for Intel on their game developer relations team in Folsom and from June to December I worked for Microsoft on the DirectX 12 team. I also spent a week in Malta to help explore future data collection techniques for the ICEX program.
In December 2016, I graduated from Cal Poly with a master's in Computer Science and a bachelor's in Software Engineering. My thesis project was a scaleable open-world game engine. Afterwards I taught courses at Cal Poly and worked on Alluvial for about a year-and-a-half.
In the middle of 2018, I left Cal Poly and started working full-time at Intel. I'm working on game performance optimizations in the graphics driver for Intel GPUs.
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.
= graduate-level course