Fundamentals of Solid Earth Science#

Want to test-drive this course? Check out our live examples on Hubzero Launch Hubzero

Designed by Raj Moulik // Maintained by Global Seismology

Courtesy AVNI software ecosystem // Powered by Jupyter

This website hosts the interactive book, Fundamentals of Solid Earth Science, which offers an introduction to a smorgasbord of introductory topics using the Python programming language. The content is specifically designed for people interested in geoscience education using some of the latest computational tools. This website is part of the software ecosystem called Analysis and Visualization toolkit for plaNetary Inferences (or AVNI), which provides free web-based and backend code access to tools, techniques, models and data related to global solid Earth geosciences.

These materials were originally created by Raj Moulik while teaching Fundamentals of Solid Earth Science (GEO203/CEE203), an undergraduate course at Princeton University. Checkout our overarching pedagogy of technology-assisted learning and programming in Geoscience education. If you find any of these resources useful, kindly cite it in your work.

What is Solid Earth Science?#

This book provides a quantitative introduction to the geosciences, focusing on the physical, chemical, and biological processes that created and continually influence the habitable conditions on our planet. Earth’s biosphere, atmosphere, ocean, cryosphere, surface & interior form a coupled system, interacting through processes that operate over a wide range of spatial & temporal scales. Various physical, chemical & biological processes, such as meteorite impacts, glaciation & erosion, erase the geological memory of Earth’s outermost layers. The solid interior, in contrast, harbors the long-term memory of transformations that shape our planet. These include accretion & the evolution of the crust, mantle & core through differentiation, plate tectonics, climate change & anthropogenic forcing. Human interactions with the solid interior include extraction of natural resources and engineering to mitigate the effects of environmental risks and disasters. We will end with the evolution of life and climate, long-term transformations that are either recorded by or have feedbacks with the solid Earth.

Learn to tackle the ‘Big Questions’…

drawing drawing

Interactive Code

You will learn how to modify and leverage our Python code to solve real-world problems. The course does not require prior programming experience. By the end of it, you would have seen the power of learning this new language of modern computing!


This book’s pages contain Python code that can be opened and run in a web browser without any prior installation or configuration. Click the launch button in the top right corner of any page to open and play with the code on Hubzero, a service that allows you to run Jupyter notebooks without any prior configuration or installation. See How To Interact With This Book for more information. Launch Hubzero

Summary of the Pedagogy#

Geoscience departments are responsible for educating young minds about vital issues like natural resources, climate change, earthquakes, and other natural hazards. The core idea of a geoscience course is to use our planet as the key component for elucidating the universal crosscutting scientific concepts such as those of energy & matter. Along the way, more advanced topics such as planetary thermodynamics, structural geology, petrology, and sedimentology, are introduced. In Fundamentals of Solid Earth Science, we adopted a quantitative and computational way of learning these geoscience concepts through Python programming and Jupyter Notebooks. Programming tools were utilized in interactive components and computational workflows during all three components of the course - lectures, field trips and problem sets. During lectures, several interactive components were used – Who am I? or Mine me, blackboard, and classroom activity. For example, a classroom activity involved a tactile or programming demonstration, such as on fault mechanics and pore pressures. Field trips introduced the entire cycle of design, acquisition, processing, modeling and interpretation of data. For example, on a geophysical field trip along the Delaware-Raritan Canal, students tied their smartphones to ice hockey sticks and a wooden dump truck to find and characterize a magnetic dike. Students were exposed to concepts in data science and signal processing, such as the procedure of stacking to amplify the signal of a magnetic anomaly. A geological field trip in New Jersey was coupled with an industrial site visit to GeoExchange boring wells; data from both were analyzed to explore the geologically informed efficacy of the engineering design. A problem set extended classical geological concepts of identifying the clast size distribution and mineral identification for rock classification using image processing and cluster analysis in Python. These activities allowed students to see the practical application of a programming approach and learning within a group promoted teamwork and individual progress. Several students had no prior programming experience but learnt about its utility as they modified our codes and learnt from tutorials to answer the problem sets. Technology-assisted learning tools are critical for improving retention of geoscience concepts through interactive components, for introducing computational workflows through programming, and for improving accessibility to education worldwide, especially during unforeseen situations like a pandemic.

What Students Had to Say#

These comments have not been edited although only a selection appears.

  • “Amazing class, extremely interesting”

  • “If you’re interested in GEO, take this course. The problem sets were not something to brush off but were very engaging and extremely interesting.”

  • “Problem sets and field trips are very well designed”

  • “The readings were great and the visuals were very interesting”

  • “Moulik is great and I really liked him. He did go through a lot of content in the semester, and he is an expert on a lot of it, and it was really cool to be able to hear about the seismic stuff that he actually researches.”

Suggested Citation#

If you find any of these resources useful, kindly cite this course package. Please cite both the canonical journal article reference and the course software archived on Zenodo.

Moulik, P. (2023), AVNI: Web-based Model Prototyping and Data Analysis Workflows for Planetary Inferences. Geochemistry, Geophysics, Geosystems, in prep.

Moulik, P. (2022), AVNI Course: Fundamentals of Solid Earth Science,


License: GPLv3

This software is published under the GNU GPL v3 license - see the LICENSE file for details. Please write to or see our FAQs for additional clarifications.


A project like this one is a culmination of feedback and input from several excellent colleagues and organizations. Some of them are listed in the Acknowledgements.


This is an evolving document so please send Raj Moulik or the AVNI Administrators any constructive feedback or suggestions.

Table of Contents#