A Brief History

On a mission to make autonomous data acquisition available to everyone.

The early days

The gpCAM project started in August 2017. Back then, the majority of synchrotron light source experiments were run by using either an automated schedule or the experimenter's intuition. CAMERA at Lawrence Berkeley National Lab (LBNL), in collaboration with the Brookhaven National Laboratory, quickly developed a Kriging-based framework to provide first aid. Later, the formulation was changed to a Gaussian Process and the tool was called gpCAM in late 2019. 

A view at the San Francisco Bay with LBNL's ALS synchrotron in the foreground.

Challenges along the way

While the first versions of the implementation helped a lot of applied scientists run their experiments autonomously, it quickly became clear that the feasibility and efficiency of an autonomous experiment strongly depended on the quality of the underlying uncertainty quantification. That led us to explore domain-aware and flexible non-stationary kernel designs that, while very powerful, require the link from GPs to high-performance computing (HPC) to be useful. This was the very beginning of a path that made gpCAM ever more flexible; allowing it to be applied around the globe in many experimental and computational disciplines. 

Where we are today

Today, gpCAM is used across the US and Europe for autonomous data acquisition for simulations and experiments. It has become a powerful and flexible Gaussian-process framework that makes it easy for people to put their domain knowledge into the steering and to effectively find features of interest, such as materials with particularly desirable characteristics. gpCAM has also broken the world record for scaling exact Gaussian Processes. gpCAM shows what can be accomplished when mathematicians, computer scientists, and practitioners come together to solve problems in science and engineering. 

Have a look at the "Media and Paper Appearances" page to see some of the amazing work the community has accomplished using gpCAM.