Roy Hashimoto's Professional Page
Don't know why I have to work.
Don't know why I can't play.
Turn me off, turn me out.
But don't turn me away.
-- Fleetwood Mac --
My electrical engineering background is in signal processing, which
means my hardware competence is mostly limited to changing light bulbs
and hooking up speakers. My true area of expertise is graphics and imaging
software development, which is essentially about looking for clever ways
to make cool pictures. Lately, though, I've been dabbling in all sorts
of software technologies.
Professional Experience: Software development in 3D graphics, signal processing, and image processing on many platforms and at many levels, including embedded microcode, middleware toolkits, interactive applications, and rendering servers. Product involvement in all phases of requirements, design, architecture, implementation, release, support, and follow-on product cycles. Project roles as sole developer, lead developer, and individual contributor.
8/2006 to present: Independent software consultant, Redwood Shores, CA.
- Created an embedded language framework to define and solve general two-player zero-sum games.
- Designed and implemented parallel solvers for large dynamic programming problems to run on the Amazon EC2 grid.
- Wrote user-mode drivers for embedded Linux devices.
- Wrote a VNC client supporting tiled live mini-views of multiple servers.
- Wrote an embedded VNC server for providing a virtual framebuffer from within an application.
3/2006 to 7/2006: Software engineer, Emergent Game Technologies, Chapel Hill, NC.
- Porting and optimization of NetImmerse game middleware to Playstation 3.
2/2004 to 2/2006: R&D staff, Sony Computer Entertainment, Foster City, CA.
- Investigation into new technologies for games and entertainment.
- Tested algorithms and optimizations on various graphics hardware simulators.
- Implemented OpenGL/ES graphics library and extensions for the Playstation 3 SDK.
11/2002 to 11/2003: Software engineer, Be Here Technologies (merged with Enroute), Fremont, CA.
- Led hardware design evaluation for panoramic video (360 degree full motion digital video) appliance prototype, investigating system-on-a-chip, DSP, and FPGA options.
- Developed fast video warping and demosaicing software for the Philips Nexperia (aka TriMedia) chip, using cache analysis and intrinsic hardware ops.
- Analyzed existing PC video conferencing demo performance with Intel VTune, and contributed C++/MMX/SSE optimizations.
- Implemented panoramic video processing stages in Direct3D vertex and pixel shaders on an nVidia GPU.
10/1996 to 10/2002: Chief engineer, Enroute Inc., Palo Alto, CA.
- Implemented hardware accelerated image stitching using Direct3D vertex and pixel shaders and DirectShow filters, replacing a 10-machine render farm rack with a single desktop computer; used in production for Entertainment Tonight Emmy broadcast of panoramic video.
- Created interactive panoramic video viewers for Windows and Playstation 2, including MPEG-2 decoders in C++/assembly for both platforms and microcoded graphics on PS2; used in the THQ video game Britney’s Dance Beat for PS2.
- Architected and led development of PowerStitch, a Windows image stitching application capable of interactively manipulating high resolution images and generating huge panorama outputs; used to create a 100 megapixel stitched image from 68 2.5 megapixel digital camera images for an Olympus product introduction at COMDEX.
- Developed the core automatic image alignment and stitching engine used for all subsequent still/video panorama products; used in the QuickStitch consumer application bundled with Olympus, Ricoh, and Nikon digital cameras.
9/1994 to 9/1996: Software engineer, Silicon Studio (subsidiary of Silicon Graphics), Mountain View, CA.
- Developed fast inverse kinematics algorithm for games.
- Architected components of the Firewalker title authoring project for title definition, rehearsal and debugging playback, graphics presentation, and user programming model.
9/1990 to 9/1994: Software engineer, Silicon Graphics, Mountain View, CA.
- Developed middleware in C for cable set-top box prototype; used in a Time-Warner interactive television trial in Orlando, FL.
- Developed and implemented scientific visualization algorithms, including volume rendering, isosurface extraction, cutaway views, and image processing operations, using C/C++ and IrisGL/OpenGL/Inventor/ImageVision.
- Developed and integrated graphics/imaging components on the Iris Explorer visual programming scientific visualization project, working closely with sister Inventor and ImageVision projects.
6/1988 to 9/1990: MTS, Sun Microsystems, Research Triangle Park, NC.
- Developed RenderMan compliant photorealistic renderer, including shading language compiler and RIB parser, with distributed execution (an early render farm) over multiple workstations/servers and Sun VX/MVX multiprocessor graphics accelerators; included as a component of the SunVision visualization toolkit.
- Developed image processing library and demos for TAAC-1 hardware accelerator using VLIW microcode.
6/1984 to 6/1988: MTS, The Aerospace Corporation, El Segundo, CA.
- Created an experimental ray tracer to demonstrate applicability to future sensor simulation studies, testing techniques for presentation of synthetic aperture radar geometry, performance enhancements, adaptive anti-aliasing, and global illumination models.
- Developed and simulated image processing and vision algorithms in FORTRAN for various classified and unclassified Air Force Space Division remote sensing programs.
- Implemented signal/image processing algorithms in microcode on FPS array processors and Deanza image processors.
- Computer vision research with applications in virtual/augmented reality.
- Origami (paper folding) mathematical simulation, using differential topology and nonlinear optimization.
- Game theory analysis of poker and other gambling games. Played in the 1995 World Series of Poker championship event.
- B.S. in electrical engineering, California Institute of Technology. Senior thesis, "A Digital Image Processing System for a Hybrid Optical/Digital Synthetic Aperture Radar Signal Processor".
- Additional graduate curriculum (one course short of M.S.) and doctoral comprehensive exams in computer science at the University of North Carolina at Chapel Hill. Projects included a constraint-based geometric modeler, an evaluation of signal reconstruction techniques for volume rendering, a syntax-directed editor/compiler for Parallel Pascal on a SIMD computing surface, and an artificial neural network for motion control.
- Delivered commercial products in C/C++, Intel (including MMX/SSE/SSE2) and MIPS assembly, various VLIW architecture microcodes, FORTRAN.
- Delivered commercial products using Direct3D (including vertex and pixel shaders), DirectShow (including filter development), OpenGL, OpenInventor, RenderMan, Xt/Motif.
- Built internal projects and personal projects with boost, Win32 SDK/DDK, LAPACK, BSD sockets, Zope, MPICH2, MySQL, GLPK, COIN-OR.
Platforms: Windows, Linux, UNIX (Sun, SGI, Mac OS X), Playstation 3, Playstation 2, Philips Nexperia.
References: Available upon request.
Home | Professional | Personal