Christopher C. Lomont

4570 Shellbark Dr. Ypsilanti, MI, 48103



Objective: To do research on algorithms, information theory, computer security, robotics, algebraic geometry, quantum computation, and anything else sufficiently fascinating. Also interested in designing and coding C/C++ applications in mathematical, graphics, gaming, scientific, security, or other highly technical areas.

Work Experience:

Research Scientist - May 2003 – Present – Cybernet, Ann Arbor, MI – Principal Investigator on numerous research contracts. Authorerd and won several Phase I and Phase II SBIRs. PI on topics such as image processing using quantum computation, developing hardware assisted rootkit detection and prevention, wavelet based image compression, and automated software verification for security. Other projects included creating radio frequency models, ad-hoc networking protocols, a realtime Constructive Solid Geometry (CSG) raytracer, working on models for mitigating explosive RPGs, and developing algorithms for robot self-location for distributed building mapping. I also lead C++ programming seminars and give talks on various topics in software development, security, and math.

Consultant - Apr 2001 – May 2001 – Waterfield, Ft. Wayne, IN – Did mathematical modeling and financial programming for Waterfield, developing an application to optimize loan pooling for sale to investors. Investigated the mathematics behind pricing optimization, determined problem was NP-complete, then developed a random walk/simulated annealing program in C++ to minimize error in optimization.

Teaching Assistant - Aug 1996 – May 2003 – Purdue, West Lafayette, IN – Taught mathematics courses for Purdue, W. Lafayette, while working on Ph.D. degree in pure mathematics (Algebraic Geometry, coding theory, cryptography, quantum computing). Won award for excellence in teaching in 2001, selected by students and faculty.

Lead Programmer - Feb 1995 – Nov 2000 – PHD, Ft. Wayne, IN – Worked for PHD, a robotics company, designing systems software. Have designed and written 6 major programs and dozens of simple tools for 3D image viewers, parametric cad rendering, geometric comparison tools, and batch processing tools. Used C/C++ and assembler under Microsoft Visual C++ 4.0 and 5.0 for Windows NT and Win95. I have implemented an OpenGL viewing program; a NURBS based geometry engine with full trimming curve support for geometric modeling and real-time viewing. Programs are distributed on CD-ROM to engineers to enable them to generate parts from PHD’s catalog in a fraction of the time it used to take, and have shipped over 300,000 copies in 8 releases. Also taught advanced C++ classes company developers.

Consultant - Oct 1997 – May 1998 – Sunstorm, Indianapolis, IN – Developed NURBS code, high-performance surface tessellation, and rendering algorithms for Sunstorm in Indianapolis, makers of the popular DeerHunter PC game, to use in upcoming 3D action titles.

Consultant - Jun 1997 – Jul 1998 – Inland Productions, Chicago, IL – Contract work for Inland Productions, Chicago, implementing DirectPlay network code and doing miscellaneous coding tasks, including modeling flight paths in Mathematica 3.0 to get correct pitch and yaw parameters from parametric curves for flight. Currently researching subdivision surface algorithms for use in realtime gaming.

Teaching Assistant - Aug 1995 – May 1996 – IPFW, Ft. Wayne, IN – Taught mathematics courses for IPFW while finishing masters degree in mathematics.

Consultant - June 1995 – Feb 1996 – Studio E, Chicago, IL  – Contract work for StudioE, Chicago, IL, designing and writing a tool for game development for the Sony Playstation and SEGA Saturn. The tool allows creation and manipulation of 3D worlds, texturing of surfaces, placement of light sources, and Gourad shading, animating the result in real-time. It imports images for textures, DXF files for 3D wireframe meshes, and does numerous statistical and mathematical manipulations on these files. The tool is 20,000 lines of C/C++ running under Windows NT and Win95.

Consultant - Nov 1994 – March 1995 – Pulse, Ft. Wayne, IN – Consultant working free-lance for Pulse, a financial company based in Ft. Wayne, IN. Duties included designing and coding in C a software program that tracks financial data from large investment houses and formats portfolios according to standard and customer requests.

Lead Programmer - Oct 1993 – Nov 1994 – Black Pearl Software, Chicago IL – Lead programmer on SEGA cartridge game. Designed and coded 75,000 line assembler program for a 68000 based consumer video game. Duties included teaching and assigning tasks to a tool programmer, developing formats and tools for image manipulation, physics based modeling, and music and sound control. Designed and coded for the game AI routines, real-time control systems, an operating system, compression algorithms, interrupt controllers, and many other systems. Tools written were in DOS and Windows C/C++ with some assembler.

Consultant - Oct 1993 – Feb 1994 – Betz Systems, ID – Freelance developed Windows based data acquisition system to manage and graph oil data for sale to Betz Systems, Id. This program managed and graphed data from numerous oil wells and broke down measurements for different time frames, and was written in Borland C++ 3.1.

Lead Programmer - Oct 1992 – Aug 1993 – DataLogics, Chicago IL – Worked on SGML parser in C under OS2, DOS, and Windows. Ported 16-bit 100,000+ line OS2 PM application to 32-bit and added functionality. Porting included rewriting DDE code, PM GUI interface, and a multithreaded application handler. Wrote graphics launch and viewer for OS2. Worked on SGML import/export code for FrameBuilder under X-Windows on a SPARCstation. Tested and began port of a structured SGML editor to Windows NT using the Microsoft SDK. Responsibilities included teaching others in the group C techniques, answering questions about our product internals, and coding miscellaneous tools as they were needed.

Systems Analyst - Jan 1992 – Oct 1992 – Sears, Chicago, IL – Worked on PC development on a Promotional Marketing System for OS2 using Easel and C. Developed and coded a networked time management system using C++ to track employee charges to various departments. Used TSO and various mainframe to PC connections. Wrote DDE code to link Lotus to Easel.

Personal code: Implemented a large array of programs, and own rights to C/C++ code for reading/writing many image types, several 3D file formats, many processing algorithms for color reduction, mesh manipulation, 3D modeling, security and cryptographic algorithms, sprite compression, NURB libraries, tree and graph searching, genetic algorithms, and many others. This code base allows me to finish many tasks in a fraction of the time it would take a developer from scratch. Details are available, as well as code samples. Have written over 500,000 lines of C, C++, assembler, and Pascal for personal use over the last 15 years.

Skills: Excellent C++, C, C++.NET, C++\CLI, Pascal, and 80x86 assembler skills for PC. Versatile in C# 3.0, Windows Forms, and WPF. Fluent in Mathematica, owning versions 1.0 through 7.0. Have done ARM assembler, Gumstix development, and PIC programming (see my project at, for example). Very knowledgeable in C/C++ for Windows 3.1, Windows NT, Win95/98, Windows XP, and Windows Vista, using Microsoft Visual C++ 1.0 through Studio .NET 2005, having written over profesionally 400,000 lines of code under these environments. Extensive OpenGL and DirectX for graphics under Windows platform. Fluent in 68000 assembler from SEGA programming. Have written applications for DOS, Windows, OS2 2.0 and 2.1, and X-Windows for Sun Workstations. Also have coded with Smalltalk, LISP, COBOL, Basic, Snobol4, Prolog, and Visual Basic. Have used VAX machines, VMS, MVS, TSO, and various network protocols. Skilled in (X)HTML and CSS web design, as well as PHP and Apache for Linux.


Ph.D., Mathematics, May 2003,  from Purdue University W. Lafayette, IN. Dissertation title: "Error Correcting Codes on Algebraic Surfaces".  Also did about half of the coursework for a M.S. in Computer Science while there.

M. S., Mathematics, May 1996,  from Indiana-Purdue at Fort Wayne. 3.6/4.0 GPA

Triple B. S. in Physics, Math, and Computer Science, May 1991, from Oral Roberts University, Tulsa, OK: Graduated with honors, 3.5/4.0.

South Side High School: Ft. Wayne, IN: Graduated 1987 with high honors, top SAT score in school, top math student all four years.


Programming since 6th grade (BASIC and assembler back then..).

Learns quickly– IQ tested at over 150.

Excellent people skills– led sales team during college summers and held numerous leadership positions in high school and college, including leading a missionary team overseas. Lead programming teams on last several worksites. Often selected to mentor newer programmers at my various positions. Elected Graduate Student Representative several times.

Publications:  (See my website, under publications.)

 Awards and recognition:

Won departmental teaching award for Excellence in teaching, 2000, Purdue University.

Awarded both VIGRE fellowship (2000-2001) and Purdue Research Fellowship while in PhD program.

First Place State competition in Academic All Around 1987, 3rd place in Science

Top Math student all four years of High School and all four years of college.

ACM College Computer Programming team 1990–1991.

Graduated top Physics and top Math student in undergrad.

Top Scorer Nationwide Putnam Math Competition for Oklahoma\Arkansas section 1991.

Presented Paper on unsolved problems to the American Math Association 1989.

References available upon request.

Back to main