Stuff I've worked on.
Job: Series B startup, scaleup, through IPO. The other seasons of Silicon Valley.
Job: Wild seed stage startup, basically Season 1 of Silicon Valley.
Above, left to right: polished metal, rough metal, polished transparent acrylic over plastic, rough transparent acrylic over plastic.
Above, left to right: semitransparent smooth reflective acrylic over: smooth gold, rough gold, and a weird deeply absorbing plastic.
Physically-based deferred shading pipeline with various bidirectional reflectance distribution functions. Based heavily on work by folks like Oskar, Weidlich, and Wilkie.
Combining aspects of Cook-Torrance, KSK, TriAce's BRDFs and various distributions (Gaussian, Phong, TrGgx/SmithG1, Beckmann).
Plastics, glass, and metals could be rendered with the same shader code path by adjusting parameters for each layer and it's BRDF: roughness, complex IOR for metals and simple IOR for dielectrics, diffuse reflectance, and layer thickness.
Screenshots are of a microfaceted KSK (Tr/GGX distributions) for specular and Oren Nayar for diffuse BRDF. Two layers attempting to simulate absorption and transmission, and focuses on physically based roughness using preconvoluted phong env maps.
After a GDC 2012 conference where Tri-Ace demoed their ground-breaking Physically Based Rendering paper, I spent all my free time implementing every related paper for a year.
IBL ambient lighting, complex reflectance for metals using roughness and biased mipmaps on prefiltered radiance environment maps.
Every type of SSAO/bent-normals/contact-shadows related algorithms. And obviously of course lots of bloom.
Integrated Twitter and Facebook conversations with a third-party sentiment analysis engine and MSNBC's live TV show production.
First premiered on "NOW with Alex Wagner".
Mixture of Microsoft-stack, Linux rendering machines.
My first "push to prod with 400k users".
C#
Multi-finger and multi-person touch-based UI from scratch.
Microsoft Surface Table. Silky smooth interactions.
C#
Built from scratch for the Microsoft Surface.
Leveraged Microsoft's High Performance Cluster connectivity to seriously challenge the player.
One of my favorite contributions was thread-safety, deadlock-detection, and automatic event-marshalling that guaranteed callbacks ended up in the proper UI thread. This eventually became it's own library and was used for other projects.
Sat in the lobby of one of the Microsoft campus buildings.
Built a gesture detector for the first ever touch film on the car interior that replaced all the buttons. It was immediately obvious that cars should not use touch panels until there's physical feedback.
Interfaced with a cutting edge capacitive grid touch film via RS232.
Coordinate dewarping, gesture recognition from noisy input.
Web-service to support in-car communication for the demo between an iPhone app, Windows tablet, and car's hardware (HVAC, playing music, rolling down windows, starting the car).
The lengths I'll go to for Engineering Productivity
C++, Perl
- 3D debug UI for observability of robotics planning and execution.
- Sony Aibo simulator that runs real robotics code in an emulated environment to speed up iteration speed of locomotion code testing.
My robotics code test environment using the hardware-accelerated physics engine PhysX (later acquired by NVidia).
Another test environment was an Unreal Tournament 2004 mod.
Intercepted and simulated PID joints accurately enough to even simulate an existing drift in our locomotion code that we saw on the physical field.
Above: My college sports team in the Robocup League.
C++ with meta-programming
An emulator with CPU, PPU, and input support. Win32 GDI-based rendering. Cycle-accurate emulation, multiple PPU-CPU sync modes. Ran multiple games (like Super Mario and Donkey Kong).
Development was straightforward thanks to the many freely available and detailed 6502 and RP2A03 CPU references.