Projects

Screen Shot 2019-05-28 at 12.46.16 PM.png

Doarama / Ayvri.com
Senior Software Engineer, 2018+
 

Ayvri is a web app for 3D GPS tracklog visualization. My responsibility is the WebGL player. Early projects were tracklog streaming and optimizations so that we could handle 200+ tracks in a single scene, adding photos and other media to the scene, and camera behavior improvements. I wrote a new rendering backend in modern JS and Web Assembly which improves both the performance and appearance over the previous open-source globe renderer

Website – Demo


sky (1).jpeg

Sky: Light Awaits
Systems & Lead Engineer, Thatgamecompany – 2013-2018
 

This is the first of TGC’s games to use a completely custom engine. As Systems Engineer, I wrote or improved many of the core engine systems like terrain, asset loading, logging, clouds, etc. in addition to maintaining an Android version of the game. As mobile hardware improved, I wrote a graphics API abstraction layer so that we could render via OpenGL ES1, ES2, and Metal. As lead I focused our engineering efforts on optimization for our target hardware and polishing features necessary for shipping.

WebsiteApple Keynote Presentation


pixscreenshot.png
Performance Investigator (PIX) for the Xbox One
SDET, Xbox Team, Microsoft – 2013
 

During the pre-release stages of the Xbox One project, I wrote test scenarios and scenes to stress the PIX graphical debugging tool for the SDK. The most interesting part of this project was working with  launch titles (like Forza Motorsport 5) and analyzing their D3D calls to look for PIX bugs or optimization opportunities.


af7b9b11-0f55-46a1-b57f-c7cb4bed007f.png
Madden / NCAA Football 2014
Core Graphics intern at EA Tiburon – Summer 2012
 

For the 2014 release of EA Tiburon’s engine which drives the Madden and NCAA games, I worked on distributing the cloth simulation workload (e.g. towels, dreadlocks, etc.) via a job system. On PS4 this involved porting the simulation logic to SPU code, and a separate CPU-based job system on the Xbox 360. Both platforms saw a performance gain of ~1ms CPU time per frame.


Link
Gamecube Asset Renderer (WIP)

Based on the excellent work of Thakis, this is a small engine that loads and renders .bmd/.bdl files. These are Gamecube asset files commonly used in first-party games that contain model information, a skeleton, and textures. The engine is cross-platform is a modified version of Emil Persson’s (aka Humus) Framework3. Eventually I’d like to use this as a base for a more full-featured 3rd-person engine.

Code


GPU Graftals: Stylized Rendering of Fur and Grass
Michael Lester, Cary Laxer – Spring 2012
 

A modern re-implementation of Kowalski and Markosian’s “graftals” from Art Based Rendering of Fur, Grass, and Trees. This work attempts to analyze the style and techniques that traditional artists use to represent fur and grass, and adapt 3D real-time techniques that can achieve the same effect.

Paper – Poster – Presentation Slides (PPT or PDF) – Code


Postmortem Stylization of Open-Source Games

Michael Lester and Cary Laxer – Spring 2011
Presented at ACM SIGGRAPH I3D 2012

We analyze a variety of techniques that can be applied to real-time applications in order to convey a stylized look, and present the results of applying these techniques posthumously to the Open-Source 3D action game Lugaru. Also known as Non-Photorealstic Rendering (NPR), stylized rendering provides the opportunity for a fresh look to games with dated graphics. In this paper, we look at three classes of NPR techniques that can be implemented quickly and easily into already-released applications: Toon Shading, Silhouette Edge Rendering, and Surface Angle Silhouetting. Working together, these techniques can achieve a compelling style without reducing performance.

Extended Abstract Full Paper – FastForward Slide – Poster

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: