back

Resume, Michael Herf

Employment

Google Inc., Senior Eng. Manager, 7/2004 - 7/2008 Managed engineering for Picasa client, contributed to online efforts.

Picasa/Lifescape Inc., CTO, 3/2003 - 7/2004 Led technology and strategic efforts for Picasa and related products and technologies.

Herf Consulting LLC, 11/2000 - 3/2003 Worked with clients including Viewpoint, Curious Labs, ExpertCity, Idealab!, REZN8, and Microsoft on various products. Developed internal graphics technologies and licensed to third parties.

IdeaLab! (PSquared), Chief Architect, 5/00 - 11/00 Led prototyping and development for a new software product.

MetaCreations Corp., Senior Software Engineer, 7/97 - 5/00 Did product development, research, prototyping, and core technology for many products and tools, both 2-D and 3-D.

MetaStream 3. Spearheaded a dynamic plugin architecture for the Web, as a platform for 3-D and other interactive media. Developed the first high-performance solution to windowless browser controls. Worked on realistic materials, interactive lighting design, and overall infrastructure.

Kai's Power Tools 6 & KPT X. Wrote sharpening effects for "KPT Equalizer" and an interactive planar perspective tool for "KPT Projector," featuring anisotropic filtering.

Office Advantage. Did high-quality lighting, environment mapping, rotation constraints, and geometry generation (normal smoothing and adaptive tessellation) for real-time 3-D charts in Excel. Developed vector- and bitmap-based transitions and animation effects for Powerpoint.

Kai's Power Tools 5. Designed and implemented several Photoshop filters, including fast blur techniques: a disc blur, a fast IIR blur (21 fps at 640x480), fast motion blur effects, and a fast radial blur. Developed an implicit surface renderer for 4-D quaternion Julia sets (with environment mapping & interactive lighting), and a Radial Warp filter to add or correct barrel distortion effects. Worked with a team to provide UI development and UI rendering.

Axiom. Improved the Axiom application framework. Optimized imaging loops using MMX, extended common data structures and memory allocation, and enhanced debugging facilities. (Axiom is used for Bryce, KPT, Canoma, SHOW, SuperGOO, and Soap2.) Created a UI widget and prototyping layer, used later by KPT 5.

Kai's Power SHOW. Developed many real-time image transitions, a real-time text animation engine (using spline-based motion paths, affine transformations per character, real-time compositing), UI special effects and image arrangement utilities. Also did significant application engineering (duties included all file management, the redistributable player, and HTML output.) Adapted special effects under license to Microsoft to ship with IE5.0 and Windows98 SR2 as part of DirectAnimation.

Research. Researched and implemented image-based depth-of-field, hierarchical sampling techniques, various 2-D imaging optimizations, real-time soft shadow generation for simple 3-D scenes, and high-quality perspective filtering and image resampling. Worked on tools to enable interactive lighting design.

Bryce. Helped to implement the real-time 3-D pipe for Bryce 3-D, including lighting, transformation, heightfield clipping, and simple use of existing 3-D APIs. Prototyped "Rayspray," a brushing method using rays, that shipped with Bryce 4.

Microsoft Research, Virtual Worlds, Intern, 6/96 - 8/96 Worked on networking development for Microsoft's V-Chat 1.1. Transitioned the product from proprietary Microsoft protocols to sending motion data via IRC and avatar skins via HTTP.

Microsoft Cartography Group, Intern, 5/95 - 8/95 Created specialized techniques for shading maps "Rand McNally-style" as viewed from above, and used these to implement a multi-CPU solution that filtered 4 GB of surface texture in relief to ship with Encarta World Atlas 1.0. Implemented a real-time map-warping module that dynamically displays a globe in a modified Robinson projection in real-time. Worked on algorithms to optimize line/grid clipping for very large polygons.

Education

Carnegie Mellon University
B.S. in Mathematics/Computer Science, 1997
QPA 3.9 in CS courses.

Publications

"Spatially Nonuniform Scaling Functions for High Contrast Images." Research with Peter Shirley on gamut mapping for CRTs. Paper published in Graphics Interface ‘93.

"Fast Soft Shadows." Research with Paul Heckbert, using graphics hardware to do real-time soft shadow simulation. Sketch at Siggraph ‘96.

"Simulating Soft Shadows with Graphics Hardware." Research with Paul Heckbert (complete version of sketch above.) CMU TR-107.

"Efficient Generation of Shadow Textures." Software adaptation of the above, Senior Thesis. CMU TR-138 (unpublished.)

Relevant Coursework: Computer Graphics I (Witkin), Computer Graphics II (Heckbert), Experiments in Audience Interactivity (Witkin), Rendering (Heckbert), Introduction to Lighting Design, Mathematical Studies I and II (Adv Calc I, Vector Calc, Linear Algebra I and II, Algebraic Structures), CS curriculum (including OS, Algorithms, Compilers, etc.)

Technical Abilities

Languages: C/C++, x86 assembler (including MMX and SSE), Lisp, HTML, Pascal

APIs: Native win32 APIs, MFC, OLE (COM, ATL), X Windows System (with SGI extensions)

Graphics APIs: OpenGL, IrisGL, DirectX (DirectDraw, Direct3D, DirectMedia APIs)

Platforms: Windows, Linux, Solaris, IRIX, MacOS