Perry L Miller IV 724-309-7201 [email protected]

Areas of Interest Computer Graphics as it applies to Computer Aided Design (CAD), Engineering (CAE), Scientific Visualization, and Geographic Information Systems (GIS); Browser-based 3D (WebGL); Software Engineering principles and best practices; Non-Uniform Rational B-Splines (NURBS).

Education Iowa State University of Science and Technology, Ames, Iowa. Doctor of Philosophy, Mechanical Engineering, December 2000. Thesis: Blade geometry description using B-Splines and general surfaces of revolution. Advisor: Dr. James H. Oliver

Iowa State University of Science and Technology, Ames, Iowa. Master of Science, Mechanical Engineering, August 1995. Thesis: Interactive turbomachinery blade modeler. Advisor: Dr. James H. Oliver

University of Pittsburgh, Pittsburgh, Pennsylvania Bachelor of Science, Mechanical Engineering, December 1992.

Experience ESI Group, Farmington Hills, MI. Senior Software Engineering. Apr 2015 – Present. • Front-end developer specializing in 3D visualization of Computer Aided Design (CAD) and Computer Aided Engineering (CAE) data in the browser using WebGL. • Furthering the development of Ciespace's WebGL-based 3D viewer to enable integration into ESI's products that run in the browser or on the desktop using Electron (e.g., ESI-Player). • Daily use of WebGL, Node.js, Webpack, React, as well as familiarity with (and occasional use of) React-Native and Redux. • Often use Node.js or C++ to make supporting command-line utilities, most of which convert 3D CAD formats into the viewer's JSON-based model file.

Ciespace Corporation, Pittsburgh, PA. Senior Software Engineer. Oct 2011 – Apr 2015. • Developed WebGL-based 3D viewer for Computer Aided Engineering (CAE) product that runs in modern browsers. • Created low-level scene graph library with features common to 3D toolkits, including: ◦ Minimizing graphics state changes when drawing. ◦ Efficient ray-based intersections using a hierarchy of bounding spheres. ◦ Image-based intersections. ◦ View-frustum culling. ◦ Automatic determination of near and far clipping planes. ◦ Arbitrary cutting planes. ◦ Shader management. ◦ Interactive draggers. • Created high-level toolkit for drawing and interacting with: ◦ Hierarchical Computer Aided Design (CAD) models that have been tessellated on our servers. ◦ Volume meshes drawn with the outer surface elements. ◦ Simulation results rendered on the server (i.e., remote visualization) and drawn as a single image. • Worked closely with the developers of the various other components, including: ◦ 2D user interface. ◦ CAD geometry server and mesher. ◦ Remote visualization server. ◦ System-wide architect.

NAVTEQ, Chicago, IL. Senior Software Engineer, Research and Emerging Technology. Oct 2008 – Sep 2011. • Part of a team responsible for developing proof-of-concept projects, as well as investigating new technologies and their relevance to the business. • Developed desktop 3D visualization tools using C++, OpenSceneGraph and Qt. • Developed 3D tools for the browser using Papervision 3D, Flex, and Flash. • Developing WebGL-based visualization tools.

Fulton High Performance Computing Initiative, Arizona State University, Tempe, AZ. Scientific Visualization Director. Oct 2007 – Sep 2008. • Manager and technical lead of HPCI’s Scientific Visualization team. • Lead developer of Helios (https://sourceforge.net/projects/cadkit/files/Helios/), an open-source, Rich Client Platform (RCP) for 3D graphics based on Qt (http://trolltech.com/) and Open Scene Graph (http://www.openscenegraph.org/). • Provided ASU faculty with Helios-based visualizations, including: ◦ Astrophysical Simulation (FLASH) data for Evan Scannapieco, Assistant Professor, School of Earth and Space Exploration; http://www.vimeo.com/1523202 ◦ Computational Fluid Dynamics (CFD) data from FieldView for Kyle Squire, Professor and Chair, Department of Mechanical and Aerospace Engineering; http://www.vimeo.com/1506816 ◦ OneGeology.org Portal data for Jonathan Fink, Director, Global Institute of Sustainability; http://www.vimeo.com/1029055 ◦ LIDAR data for Ramon Arrowsmith, Associate Professor of Geology • Manage development of Minerva, an open-source, multi-body, 3D, geospatial tiling engine that can load data using WMS, ArcIMS, GeoRSS, PostGIS, GDAL/OGR, and OSSIM; https://sourceforge.net/projects/cadkit/files/Minerva/ • Managed delivery of Phoenix-Mesa Gateway Airport project for Decision Theater using Minerva; http://www.vimeo.com/1450936 • Developed Nimue for the East Valley Water Forum (EVWF) and the Arizona Water Institute (AWI). An open- source, groundwater visualization program based on Open Scene Graph and Qt, Nimue displays MODFLOW output at interactive speeds.

Decision Theater at Arizona State University, Tempe, AZ. Assistant Director for Visualization. Apr 2006 – Oct 2007. • Procured ASU funding for the Scientific and Engineering Research Visualization (SERV) initiative to support faculty research. • Provided ASU faculty with desktop and virtual reality visualizations, including: ◦ Weather Research and Forecasting (WRF) data for Alex Mahalov, Professor, Department of Mathematics and Statistics. ◦ Geographic Resources Analysis Support System (GRASS) based model output of land-erosion for Michael Barton, Professor of Anthropology, School of Human Evolution & Social Change. ◦ Center for Health Information & Research (CHIR). ◦ Grand Canyon Colorado River sand-flow simulation for Mark Schmeeckle, Associate Professor, School of Geographical Sciences. • Managed delivery of multi-screen, interactive GIS for several projects, including: ◦ 100 Cities ◦ Scottsdale Unified School District ◦ West Nile Virus D.N. American, Dayton, OH. Project Manager and Lead Engineer. May 2004 – Mar 2006. • Collaborating with Research Scientists at the Materials and Manufacturing Directorate (ML) at Wright-Patterson Air Force Base (WPAFB) under the Computational Tools for Materials Development (CTMD) contract. • Managing day-to-day project requirements and coordination with customer. • Providing guidance and technical oversight for software development. • Working with users of The Immersive Materials Environment (TIME) to add features to existing software as well as develop custom software. • Exploring ways of implementing molecular docking for computational steering. • Developing custom software for visualization of large data sets using Open Scene Graph (www..org). • Experimenting with various techniques for efficient Direct Volume Rendering (DVR) of serial-sectioned images for maximum exploitation of data. • Developing NURBS enhancements for B-Spline Analysis Method (BSAM) program. • Providing technical insight about Computer Aided Design file formats in order to streamline CAD-to-BSAM data transfer.

Virtual Reality Applications Center, Iowa State University of Science and Technology, Ames, IA. Postdoctoral Researcher. Apr 2002 – Apr 2004. Supervisor: Professor Judy Vance. • Developing geometric-model database translation software to support ongoing visualization of Mechanical Computer Aided Design (MCAD) models in virtual reality environments. The extensible architecture supports: ◦ Arbitrary combinations of independent reader and writer modules ◦ Interface-based mechanism to query for features ◦ Translation of EDS’ DirectModel (JT) format to Open Scene Graph (OSG), OpenGL Performer (PFB), Stereo Lithography (STL), and XML. • Maintaining the open-source project CadKit, which contains the translator code. • Exploring techniques for maintaining frame-rate in virtual reality systems. • Collaborating with professors and graduate students regularly to offer advice on visualization technologies and software engineering techniques.

Iowa State University of Science and Technology, Ames, IA . Lecturer. Jan 2003 – May 2003. • Instructed freshmen engineering students in ENGR 170, Engineering Graphics and Introductory Design. • Topics included: engineering drafting specifications, design principles, engineering ethics, and SolidWorks. • Coordinated design-projects funded by Engineering Projects in Community Service (EPICS). • Worked with Heartland Area Education Association (AEA) to develop project ideas.

Neuralog, Inc., Houston, TX. Software Engineering Consultant. Mar 2001 – Mar 2002. • Developed import capability for proprietary geological markup (cross section) software, NeuraSection. • Used the Component Object Model (COM) interfaces of MJ Systems' LogSleuth. • Created COM interfaces and infrastructure for communication between NeuraSection and the company's well-log scanner driver, Nscan. • Developed software licensing module (based on GLOBEtrotter's FLEXlm). • Coordinated with Sales and Management to develop licensing strategies that maximized product value and minimized software piracy.

Modelspace Corporation, Ames, IA. Vice President. Sep 1998 – Dec 2000. • Co-founded this software company to design, develop, and market BladeMaker, a turbomachinery CAD program derived from my research. • Offered consulting services in the areas of geometric modeling, Non-Uniform Rational B-Splines (NURBS), computer graphics, and OpenGL. • Managed responsibilities associated with a startup company, including: ◦ Business model and growth strategy development ◦ Communication with potential customers to identify important features ◦ Contract negotiations ◦ Software architecture and source code authoring ◦ Managing technical writers ◦ Exhibiting at ASME Turbo Expo ◦ Customer technical support ◦ Maintenance of company web page, www.modelspace.com

Engineering Animation, Inc., Ames, IA. (Now owned by Siemens) Software Engineering Consultant. January 2000 - April 2000. • Developed a geometric-model translation server for e-Vis.com using C++, Perl, SQL, and proprietary translator software. • Leveraged knowledge of MCAD assembly structures to design a scalable architecture. • Collaborated with software team to plan future import functionality and integration with Product Data Management (PDM) systems.

Catalpa Research, Inc., Birmingham, AL. Software Engineering Consultant. Jun 1999 – Oct 2000 • Developed interactive, OpenGL-based graphing program. • Enhanced Modelspace’s scene graph library to support features such as: ◦ Intuitive markup capabilities ◦ User-defined scaling and axes properties ◦ BMP and RGB image export

Virtual Reality Applications Center, Iowa State University of Science and Technology, Ames, IA. Graduate Researcher. Aug 1998 – Aug 1999. Supervisor: Professor Carolina Cruz-Neira. • Developed NURBS-based interactive oil well path planning program for a surround screen, virtual reality environment. • Used OpenGL for graphics, DT_NURBS for numerical computations, and CAVELib for hardware management and software framework. • Enhanced existing NURBS library, a C++ wrapper around DT_NURBS. • Coordinated with sponsor to determine geometric constraints for the well-path that were consistent with conventional drilling capabilities.

Iowa Center for Emerging Manufacturing Technology, Iowa State University of Science and Technology, Ames, IA. Graduate Researcher. Jan 1994 – Jun 1998. • Developed BladeCAD, a custom CAGD program for turbomachinery blades. • Coordinated with the project’s sponsor to identify critical features, including: ◦ Intuitive user interaction with geometry ◦ Fast numerical calculation of blade surface from construction curves ◦ Adherence to accepted turbomachinery design practices • Designed several object-oriented libraries in C++, including: ◦ NURBS library based on DT_NURBS, for rapid construction of numerical code ◦ Motif-based user-interface library ◦ Binding between above user-interface library and SGI’s Open Inventor ◦ Binding between NURBS library and Open Inventor • Supported other research students’ development of user-interface and NURBS-based software. • Presented library suite to research laboratory personnel to foster code-reuse. • Authored online documentation for above libraries, as well as a Concurrent Versions System (CVS) tutorial.

Engineering Animation, Inc., Ames, IA. (Now owned by Siemens, used in Parasolid.) Software Engineering Consultant. Jan 1997 – May 1997. • Developed a geometry translator that converted a proprietary automotive CAD format (Toyota's TogoCAD, a hierarchical product assembly data structure of B-Rep solid models) into a DirectModel scene graph for real-time visualization of large MCAD models. • Created NURBS library to facilitate construction of free form curves and surfaces, as well as geometric primitives. (This NURBS library was later integrated into other EAI products.)

NASA Glenn Research Center, Cleveland, OH Graduate Researcher. May – Aug of 1994, 1995, and 1996. • Continued academic-year research on geometric design techniques for turbomachinery. • Worked closely with the research sponsor to determine critical features, explore alternative approaches, and ensure integration into the design process.

Biomechanics Research Laboratory, Allegheny-Singer Research Institute, Pittsburgh, PA. Research Assistant. May – August of 1993. • Assisted in research of cervical spine internal fixating devices. • Designed and machined the testing apparatus (accessories for an MTS machine). • Conducted tests and collected data. • Contributed to preliminary analysis of results.

Open-Source Projects Property Tools, a JavaScript module with helper functions for getting, setting, and requiring both shallow and deep properties in objects. • https://www.npmjs .com/package/property-tools

Creator of CAD Toolkit (CadKit), an open-source project hosted by SourceForge.net. • Project administrator, lead software developer, and primary author of source code. • Repository for Helios, a C++/Qt/OpenSceneGraph application framework with interface querying, convenient XML serialization • Repository for Minerva, a 3D GIS program based on Helios, GDAL, PostGIS, and libcurl. • Repository for “CAD to VR” translator framework that facilitate arbitrary combinations of reader and writer modules to make one “translator.” • https://sourceforge.net/projects/cadkit/

Publications Perry L. Miller and James H. Oliver. “Extensible Architecture For Geometric-Model Database Translation.” In ASME 2003 Design Engineering Technical Conferences and Computers and Information in Engineering Conference. Chicago, Illinois USA. September 2-6, 2003. ASME Paper No. DETC2003/CIE-48235.

Perry Lennox Miller IV. “Blade geometry description using B-splines and general surfaces of revolution.” Ph.D. dissertation, Iowa State University, December 2000.

Perry L. Miller, James H. Oliver, David P. Miller, Daniel L. Tweedt. “Using Stream surfaces for blade design.” Mechanical Engineering. Vol. 119, No. 4, pages 66-68, April 1997.

Perry L. Miller, James H. Oliver, David P. Miller, Daniel L. Tweedt. “BladeCAD: An interactive geometric design tool for turbomachinery blades.” In International Gas, Turbine & Aeroengine Congress & Exposition. Birmingham, England, June 1996. ASME Paper No. 96-GT-58.

J. D. Richman, T. E. Daniel, D. D. Anderson, P. L. Miller, R. A. Douglas. “Biomechanical evaluation of cervical spine stabilization methods using a porcine model.” Spine. Vol. 20, Issue 20, pages 2192-2197, October 15, 1995.

T. E. Daniel, P. L. Miller, D. D. Anderson, J. D. Richman. “Application of Axial Torsional and Sagittal Bending Loads in In- Vitro Spine Testing.” ASME Advances in Bioengineering. Vol. 28, pages 93-94. 1994.

Presentations “Towards Virtual Reality as a Computer-Aided Design Tool.” Guest Lecturer, IEEE Computer Society, Dayton Chapter, May 2005.

“Virtual Reality and Visualization: Current Approaches.” Guest Lecturer, IEEE Computer Society, Dayton Chapter, September 2004.

“Object Oriented NURBS Library using C++ and DT_NURBS.” Guest Lecturer, ME 625, Surface Modeling. Iowa State University, Ames, Iowa, March 2002.

“Blade geometry description using B-splines and general surfaces of revolution.” Guest Lecturer, ME 519, Computer Graphics and Geometric Modeling. Iowa State University, Ames, Iowa, November 2000.

“BladeCAD: An interactive geometric design tool for turbomachinery blades.” International Gas, Turbine and Aeroengine Congress and Exposition. Birmingham, England, June 1996.

Computers

Programming Languages: C++ from 1994 to 2010. JavaScript (WebGL) since 2010. I have also used Perl, Python, PHP, HTML, Fortran 77, SQL, C#, Managed C++ (.NET), as well as some experimentation with Java.

User Interface Toolkits: React, React Native, Qt, Flex/Flash, .NET WinForms, wxWindows, jQuery UI, FOX, MFC, Win32, X/Motif.

Visualization Toolkits: WebGL, OpenGL, OpenSceneGraph, Open Inventor, OpenGL Performer, Papervision 3D

Operating Systems: Mac OS X, , Windows

Development Environments: Visual Studio, Google Chrome Developer Tools, Firebug, Xcode

Miscellaneous Libraries: C++ Boost, Standard Template Library, Intel's Threading Building Blocks, Xerces, DT_NURBS, many others... too many to list.

Advanced Courses • Computational Geometry • Computer Graphics and Geometric Design • Finite Element Analysis • Software Engineering • Surface Modeling (NURBS) • Turbomachinery • Vehicle Dynamics

Awards • John & Mary Pappajohn Entrepreneur Scholarship Recipient, Iowa State University, January 1999. • Blue-Gold Award (Academic/Athletic/Leadership/Citizenship), University of Pittsburgh, 1991-92. • NCAA Academic All-American (Honorable Mention), 1990-91. • NCAA All-American (Wrestling), 1990-91.