Jeffrey LewisPython Library for Nuclear Weapons Effects

Edward Geist has created a Python library of nuclear weapons effects, including Soviet models.  If there was ever a reason for this blog to exist, announcing something like this is pretty much it.

Introducing GLASSTONE—a Python library for modeling nuclear weapons effects

Edward Geist

Unfortunately, the public has been kept in the dark about nuclear weapons effects. The standard text on the subject, Samuel J. Glasstone and Philip J. Dolan’s The Effects of Nuclear Weapons, has not been updated since 1977. As might be expected for a text as old as the original Apple II, this volume is the product of a pre-digital age—indeed, it originally included a circular slide rule. Academics and researchers outside of the defense complex therefore face forbidding obstacles to building digital tools for estimating and visualizing the consequences of nuclear use.

The relative lack of open-source nuclear weapons effects models is a result of both overzealous classification policies and neglect. A project in the early 2000s to produce an updated edition of The Effects of Nuclear Weapons reached an advanced stage only to be cancelled. Other recent texts on the subject such as Charles Bridgman’s Introduction to the Physics of Nuclear Weapons Effects and John Northrup’s Handbook of Nuclear Weapon Effects: Calculational Tools Abstracted from DSWA’s Effects Manual One (EM-1), are subject to the Arms Export Control Act. Nor are recent software tools for modeling nuclear weapons effects available to the public. While there are good reasons to limit the circulation of certain nuclear weapons effects models—EMP models, for instance, really require input data that can be used to divine non-trivial things about nuclear weapons design that might pose a proliferation risk—the relative inaccessibility of information about what nuclear bombs do is limits the quality of public discourse. Among other things, it obscures the fact that the science of nuclear weapons effects has come a long way in the last forty years.

To remedy this situation I have been developing a library for the popular programming language Python for modeling nuclear weapons effects. Dubbed “GLASSTONE” after the editor of The Effects of Nuclear Weapons, this library provides a selection of analytical nuclear weapons effects models of both U.S. and Soviet origin for blast, radiation, thermal effects, and fallout. All of these models were used by the American or Soviet militaries for planning purposes during the Cold War.

The Soviet models incorporated into GLASSTONE are of particular interest because of the qualitative differences from the U.S. counterparts. These models are derived from a 1987 Soviet military nuclear weapons effects manual, Iadernoe oruzhie: Posobie dlia ofitserov (“Nuclear Weapons: A Handbook for Officers”). I was lucky enough to acquire this volume in a St. Petersburg used book store a decade ago and was bewildered when I discovered just how much it differs from The Effects of Nuclear Weapons. It turns out that this is because the Soviets carried out atmospheric nuclear tests under different conditions than the United States, with the consequence that they observed phenomena never seen in American tests and inspiring them to draw different conclusions about the expected effects of nuclear weapons.

Take, for example, the interaction of thermal and blast effects. Since thermal radiation travels much faster than the blast wave, it can heat or ignite materials on the surface and create a “thermal layer” interfering with the formation of the shock front. This can displace the Mach stem and significantly alter the amount of static overpressure and dynamic pressure experienced on the surface. While relatively minor thermal precursors occurred in some American tests in Nevada, these were attributed to the dusty desert environment and dismissed as a “second-order effect” that could be discounted for planning purposes. In the Kazakh steppe, the Soviets observed extreme thermal precursor phenomena much more extensive than any ever seen in an American test, leading Soviet analysts to conclude that their weapons effects models needed to take them into account. They developed an analytical model for blast overpressure under these conditions that differs from those used by the U.S. military by about a factor of two in many places:


Interestingly, by the early 1990s U.S. analysts reached similar conclusions about the importance of thermal precursors on the basis of computer simulations, but this remains little-known.

A common misunderstanding is that models such as those found in The Effects of Nuclear Weapons are derived directly from atmospheric nuclear test data. In fact they were usually developed using the output of other, more sophisticated models, and then validated against the atmospheric test data, which was often quite limited. As the above example indicates, the output of all of these models should be taken with a serious grain of salt.

For models derived from The Effects of Nuclear Weapons and Iadernoe oruzhie, I used graph digitization software to convert the original plots into data points and wrote Python code that mimics the process of interpolating inside the original graph. The code is designed to throw an error rather than give a result outside the original graph. Other U.S. models, meanwhile, were originally designed for computer implementation and were derived from old technical reports freely available from DTIC.

GLASSTONE currently includes the following models:


For blast overpressure, the library provides Python implementations of the “Brode expression,” which was used extensively by the USAF during the late Cold War, as well as the Soviet model described above and its counterpart assuming no thermal precursor. There is also a version of the Defense Nuclear Agency 1-kT Free Airburst Overpressure, but this remains a work-in-progress (the documentation I have for it is either not intended to reimplement it or is substantially illegible).

Thermal effects

GLASSTONE provides a Soviet model of thermal radiation from nuclear explosions derived from that in Iadernoe oruzhie. The nice thing about this model is that it accounts for a wide array of atmospheric visibility conditions, which are expressed in terms of International Visibility Codes.


Initial Radiation:

The models of initial nuclear radiation are derived from graphs in The Effects of Nuclear Weapons and Iadernoe oruzhie. Interestingly, these differ qualitatively like the U.S. and Soviet blast effects models. The U.S. model has “offense” and “defense” categories meant to account for different weapons designs. The Soviet model, meanwhile, ignores weapons design but includes three categories for different geophysical conditions.



The fallout model provided by GLASSTONE is WSEG-10, which was originally developed by the Weapons Systems Evaluation Group in 1959. WSEG-10 was the most commonly used fallout model used in the U.S. for damage assessment studies during the 1960s and 1970s. In order to run rapidly on the computers of the time, WSEG-10 treats the fallout cloud as a cylinder that is “smeared” across the landscape by a single effective wind, resulting in an elliptical fallout field. It then attempts to estimate a 30-day effective dose that can be used to make casualty estimates.


GLASSTONE is written in Python 2.7 and requires the Numpy and SciPy scientific computing libraries. Scripts to produce all of the above plots using matplotlib can be found in the /examples folder. To install GLASSTONE, download the project repo, navigate to its root directory, and run

pip install –e .

This will install GLASSTONE in “editable” mode, which symlinks instead of copying into your site-packages directory. (Once GLASSTONE is more mature, I plan on submitting it to PyPI, which will make it more straightforward to install.)

Contributors and testers are more than welcome to assist in the further development of GLASSTONE. Feel free to submit bug reports and pull requests to the project’s GitHub page.



  1. E. Parris (History)

    I have been very pleasantly surprised by details in Kenneth W. Ford’s recent book, “Building the H Bomb.” A PhD in Quantum Physics, he provided critical suggestions for the development of America’s super bomb. Although born in 1926, Dr. Ford retains vivid memories regarding the characteristics of the US “H” Bomb, as well as the equivalent test weapon that rocked Moscow from hundreds of miles away. I bought my copy from Amazon. It is quite a unique book.

  2. Michael Krepon (History)


  3. Allen Thomson (History)

    Very interesting. Digging far back in vague memory, ISTR that at one point it was discovered, possibly from the handbook you have, that Soviet modeling of ground shock from low airbursts differed significantly from the American calculations because physics.

    BTW, would there be any problems with running GLASSTONE under Python 3.x?

    • Edward Geist (History)

      I don’t think there should be any problems running it under Python 3.x, but I haven’t tested it. Please let me know if you try it and there’s some sort of issue.

    • Edward Geist (History)

      It turns out there were a few minor issues for Python 3 compatibility, but a contributor submitted a pull request with fixes. Everything should work now.

  4. Anon2 (History)

    Dude, I just want an animated version of the circular slide rule that actually works. The ultimate website icon for ACW. If you have a python library how hard could that be???

  5. Tobias Piechowiak (History)

    Very cool! Python is a very practical language to write in…

  6. Tobias Piechowiak (History)

    And the figures very much resembles those I am used to from Matlab 😉