Remembering Bill Paxton

My friend and colleague Bill Paxton died on July 23, 2025. In retirement Bill found himself as an accidental astrophysicist and my own path was fortunate enough to have intersected that segment of his life.

During the summer of 2008 I heard about some new stellar evolution software being developed at KITP in Santa Barbara. I installed it and emailed the author with some comments and questions. In response to my message, Bill wrote:

You’re one of the first brave souls to try to use mesa, so it will be a learning process for both of us!

And wonderfully, for the next 13 years, it was. Before I left astrophysics in 2021, collaboration with Bill in some form or another was a near-constant part of my career. We exchanged thousands of emails and spent many hours working together during my visits to KITP.

Bill liked writing software. Bill was good at writing software. Bill was fast at writing software. A big part of working with Bill was simply keeping up with Bill! Someone would tell Bill something hadn’t been done (or sometimes couldn’t be done) and he’d take that as a challenge and then go off and do it. I will consider myself fortunate to maintain a fraction of Bill’s curiosity and drive.

In this photo from 2016, I (left) am wearing one of Bill’s autographed MESA baseball caps, as Lars Bildsten (center) prepares to hand out more, and Bill Paxton (right) solemnly looks on.

Josiah, Lars, and Bill Paxton

Bill shared this video clip in a context now lost to me. But it has remained in my browser bookmarks and I think of him every time I stumble across it.

There is a time for everything, a time to summon and a time to say goodbye.

The Past Meets the Future

I took my first fully autonomous Waymo ride in San Francisco! Watching the empty car pull up and then being alone inside was an amazing feeling. The peace and quiet gave me a chance to read a draft of the upcoming MESA instrument paper.

Waymo Photo

An Astrophysical Apparition: The Papaloizou-Pringle Patronus

The following important result was part of this recent arXiv posting.

While in graduate school at Berkeley, I was working on modifying the ZEUS-MP2 code to include an $\alpha$-viscosity treatment in preparation for work evolving white dwarf merger remnants.

I ran many test problems that followed the evolution of the equilibrium torus solutions considered by Papaloizou and Pringle (1984). During one such experiment, my analysis scripts produced the following contour plot of density. The image has been manipulated only by rotation (such that the equatorial plane is now vertical) and cropping (to focus attention on the relevant feature).

This figure shows the appearance of a powerful and mysterious otter, who is perhaps blowing the fiery bubble that will give rise to our universe. Future work should explore whether spectral methods are more likely to produce such illuminating results.

Otter

MESA Summer School 2021

The 2021 MESA Summer School is August 9-20. We’re online this year and I kicked off the school lecturing on how to get started with MESA.

Conference Photo

A Log Archiving Service for MESA

As part of testing the MESA stellar evolution code, we want to provide the developers with easy access to the output associated with failing tests. These logs come from the many different machines that MESA is tested on (ranging from a Raspberry Pi to large scientific computing clusters). As such, they can be especially useful in the case of failures that are not easy for an individual developer to reproduce (for example, because the failure is intermittent or because it only occurs with a specific operating system or compiler). Even in the case of easily reproducible failures, this saves a developer the time needed to re-run the case and trigger the failure themselves.

Our mesa_test testing framework manages the test runs and then (upon failure) transmits the logs to a remote server that makes them publicly available.

This MESA logs service is provided using the following approach, hosted on a Digital Ocean droplet (the same one that serves this website).

A Flask app (served with Gunicorn and Nginx) provides a route that accepts JSON POST requests. The expected JSON contains information about the computer, commit, and test case along with the base64-encoded logs.

Upon receiving a correctly formatted request (authenticated via a secret API key), the Flask app writes the logs to disk on a small Digital Ocean block storage volume. Nginx also serves the contents of this volume, making the logs available at a standardized path

https://logs.mesastar.org/<commit>/<computer_name>/<test_case>/

such that our testing dashboard can easily detect whether logs exist for a particular failure with an HTTP HEAD request.

Because these files are intended for diagnosing failures, they are only retained for a limited time, under the assumption their utility is largely exhausted after issues are fixed. A systemd timer prunes log files older than 60 days.