Greybeard Geek

Accomplished, mature, experienced

Email me


Old guy proving that productivity, relevance, and new learning can go on until I’m done.

A great benefit of age is experience. My experience is long, broad, and deep, ranging over computational science, data science, visualization, high performance computing, computational geometry and game development, all founded on a solid academic background in physics and mathematics.

My life-long imperative for always learning something new, refining skills, taking on challenges, persists undiminished.


Looking for projects on which I can enjoy being productive in exercising my considerable special skills – Remunerative, challenging, right livelihood, fun.

At this stage of my career I’d be most interested a contractor/consultant role, but employment is not out of the question.

Current employment

Presently, and for past ten years, Senior Engineer at Dynamic Graphics, Inc.

Major role in development and maintenance of DGI’s flagship product, Coviz4D , an interactive scientific visualization system and suite of analytic tools for geophysics, aimed particularly at oil-and-gas exploration and production.

Consulting on computational science and code development for geophysics research groups at two of DGI’s client Big Oil companies. Co-author on some of their published papers.

Oil companies’ geophysical data sets are large, so this work has a lot of the character of big data analytics, and is inherently geospatial.

Some specific achievements detailed here .

Skills and Interests

Machine learning

This is an intense current interest rather than a long standing one. Impressed by the spectacular recent successes of deep learning techniques, and recognizing that it’s an area where my mathematical toolkits and programming skills can find good use, I’ve been giving this a lot of attention as the current focus of my life-long learning program.

Have successfully completed one deep learning project in my employment, for one of DGI’s oil company clients, investigating the application of neural networks to learn a complex multi-variate non-linear function. Used Scikit-Learn, Keras, TensorFlow, Pandas, Seaborn, and the general scientific Python environment.

As a hobby learning experience, have spent some time over the past year working on several Kaggle competitions, have submitted one (as a team of one), which ranked in top 30%. Most interested in the Kaggle competitions involving image data, such as satellite imaging or medical imaging, especially the 3D imaging, such as MRI data. Have found that these projects require a lot of wrangling of the data before even beginning to think about appropriate machine learning models. My long practiced skills in image processing, enhanced by modern tools such as OpenCV 3 and the Python environment, have served well in the data wrangling.

Interactive 3D graphics and computational geometry

A passionate geometer since middle school geometry, have been doing geometry in code through much of my career.

My Ph.D thesis can be viewed as a partial classification of 4-dimensional crystals. It was also a novel application of computational methods to a problem in pure mathematics.

Work in computational fluid dynamics at NASA in 1980s naturally involved 3D and 4D graphics for scientific visualization. Used IrisGL from its beginning; it evolved into OpenGL, which I continue using today in my work at DGI.

In early 1990s, did much consulting work for Digital Equipment Corp ( RIP ) concerning their 3D engineering workstation products. This included application software development, technical writing, and training. Developed and delivered an intensive training course in 3D graphics and PHIGS programming for the DEC engineers in sales support and customer support. Wrote a book on the topic, unpublished (because PHIGS lost to OpenGL in the market), but very well received by the DEC readership.

Consulted on development of two scene graph languages, at 3dfx Interactive and at Autodesk.

In 1995-1999, with the advent of commodity 3D hardware for PCs, I found a niche as a consultant implementing geometry and physics engines for immersive 3D games. Have never myself been a gamer, but this opened for me because many of the hackers who had been writing the 2D games found the step from 2D to 3D mathematics difficult. Implemented the geometry and physics engines for five published games for PC and Play Station. Much of what I did as one-offs would today be provided by a middle-ware product such as Havok or PhysX. In 1997 I had the best real-time collision detection of any published game. This work all in C++ and Direct3D.

Contributions of a geometrical nature have been a big part of my accomplishments in my current employment at DGI. Much of the geophysical work is on highly irregular cellular finite element models of oil reservoirs, giving rise to numerous interesting problems of intersecton and slicing. My solution to a cross-sectioning problem in 2008-2009 put DGI’s product far ahead of the competition of that era.

Except for the Ph.D. thesis, all this geometric work uses geometry that’s not very advanced, just sophomore-level Gibbsian vector calculus. I’m distinguished by my sharply honed skills for doing that in code and crafting algorithms for doing it efficiently on large data sets.

With the rising importance of web programming skills, I’ve turned to learning how to wrap all my 3D expertise in WebGL. Here’s my first experiment with WebGL and JavaScript .

Scientific software development

Presently, and for some years, I’m especially practiced in using C++ in scientific applications– –computational fluid dynamics, geophysical modeling, dynamics engines for games, data visualization, and financial modeling. I’m fluent in the latest C++11 idioms, the Boost libraries, move semantics, and generic programming, which all I exercise in my daily work. I’m a great fan of modern C++, for the way that it simultaneously affords expressive power, runtime performance, and programmer freedom.

In my current employment, we support the product on Windows and Linux, and I’m in command of the appropriate C++ development tools on these two platforms, such as Visual Studio and Eclipse.

A long time major interest is performance optimization of scientific applications on parallel architectures. In my present job the focus is on multi-threading on multicore shared memory processors and on GPUs, and I have been the leader in our company for introducing parallel processing into new code, as well as retrofitting a very large, very old legacy code base. OpenMP for multi-core and CUDA for GPU are our parallel programming tools. Previous periods of my career included significant experiences in parallel programming for distributed-memory architectures using MPI, and for SIMD vector supercomputing with vectorizing Fortran compilers. I’m practiced in the power tools, such as Valgrind and Intel Parallel Amplifier.

Image processing, image manipulation experience has gone along with the 3D work. Multi-resolution imaging (from 1990’s MipMapping to current MrSid.)

Python scientific programming stack

The Python environment–IPython, Jupyter notebooks, Pandas, MatPlotLib,OpenCV, Scikit-Image----has become my most comfortable workbench, even to testing and debugging projects for my C++ developments. Recent forays into machine learning and data science projects have afforded practice with Scikit-Learn, Keras, Theano, TensorFlow.


Berkeley, California.


A.B. in Physics with Honors
M.A. in Physics
Ph.D. in Mathematics
all from University of California, Berkeley.

Academic honors include Phi Beta Kappa and Woodrow Wilson Fellowship.

My Ph.D. thesis, “The Compact Euclidean Space Forms of Dimension Four”,
was a novel application of discrete computational methods to a problem
in pure mathematics, being a special case of Hilbert’s 18th problem.

Some projects at DGI

Glad to give more detail on any of these to anyone interested.

Formula Processor

Interpreter for a programming language for complex calculations on the attributes and geometries of numerous types of geophysical data sets, mostly vector processing (SIMD), parallelized for multicore and GPUs. A component of all three of DGI’s main product offerings, much used by most clients. Original code plus maintenance and enhancement over a nine year period, ongoing.

Computational Geometry kernels

Various tools for slicing DGI cellular grids, which hold a sort of finite element model used in oil reservoir modeling and simulation.

Isosurface computation (like “marching cubes”) for regularly gridded 3D data, parallelized for multicore (OpenMP) and GPUs (CUDA).

Geophysical analytics

essentially as on-line computational scientist for a research group of a major international energy company.

Seismic response simulation – Given a geophysical model (cellular finite-element grid with certain geophysical attributes), and given an input seismic signal (wavelet), compute the resulting seismic response field summing the reflections from all cell faces.

Geomechanical analytics, effects of fluid extraction on rack displacement, more generally, subterranean stress structure (full tensor description) and effects on seismic time shifts. Involved a relatively complex convolutional model, greatly enabled by GPU implementation (Co-authored published paper and conference presentation)

Previous employments

Humboldt State University, Associate Professor of Mathematics, 1969-78

Excellent teacher, mathematics and computer science. Served three years as Departmant Chairman (department of 15).

Resigned tenured position for reasons of personal growth.

Gap year 1979

Went sailing. Blue-water adventures, including single-handed ocean crossings.

NASA Ames Research Center, Institute of Advanced Computation, Analyst 1980-83

First job after quitting teaching career, employed by NASA contractor Technology Development Corporation. Began on assignment developing computational fluid dynamics codes for Illiac-IV supercomputer under direction of the late Harvard Lomax . This evolved into assignment to the evalutation team for NASA’s first acquistion of a commercially produced supercomputer. This was a one-year project in which I ported various NASA CFD codes to three different parallel architectures for benchmarking the competitors. This led to authoring and publishing
“Supercomputers” in Scientific American . Continued doing systems programming in Fortran for the winning system, the Cray 1-X.

Two startup companies that went nowhere 1983-1985

Independent consultant, dba Dorian Research, Inc., 1985-1999 and 2005-2006

Client list includes:
National Aeronautics and Space Administration, General Electric Company, Digital Equipment Corporation, Kubota Pacific Computer, Inc., Stanford Linear Accelerator Center, Clorox Company, Midway/Atari Games, Accolade, Mindscape, 3Dfx Interactive, Virgin Interactive Entertainment, Autodesk, Ampex Corporation, Grumman Data Systems, PathScale.

Assignments have included:
Development: Application software design and development, systems software and systems engineering for supercomputers, application development work in computational sciences, scientific visualization, and other graphics-oriented application areas; graphics API development; interactive game development projects, both real time engines and tools. Wrote the game engine with the best collision detection of any published game c. 1998.

Writing and training:
Authoring technical marketing literature, such as technical overviews, white papers and trade journal articles, particularly in 3D graphics technology and networking. Development and delivery of training programs for engineers in 3D graphics theory, software, and technology.

Planning: Technology assessment and planning, proposal writing and strategy consulting.

NextBus Information Systems, Senior Data Scientist, 2000-2004

A real-time GPS-based, Web-based bus stop arrival time predictor. I was responsible for the continual acquisition, management, and interpretation of arrival time data.

Current employment above

Greybeard Geek home