Awesome Physics Awesome

🌌 A collaborative list of awesome software for exploring Physics concepts. Feel free to contribute!


Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you for taking the time to consider contributing!




Rigid Bodies and Physics Engines

  • bullet3 - real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning
  • cannon.js - A lightweight 3D physics engine written in JavaScript
  • matter-js - A 2D rigid body physics engine for the web
  • mujoco-py - A physics engine for detailed, efficient rigid body simulations with contacts
  • myphysicslab - provides JavaScript classes to build real-time interactive animated physics simulations
  • ncollide - 2 and 3-dimensional collision detection library in Rust
  • newton-dynamics - an integrated solution for real time simulation of physics environments
  • nphysics - 2 and 3-dimensional rigid body physics engine for Rust
  • PhysX - a scalable multi-platform game physics solution
  • PositionBasedDynamics - A library for the physically-based simulation of rigid bodies, deformable solids and fluids
  • pydy - Multibody dynamics tool kit
  • pymunk - A easy-to-use pythonic 2d physics library
  • simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton

Fluid Mechanics

  • fluid-engine-dev - Fluid simulation engine for computer graphics applications
  • fluids - Fluid dynamics component of Chemical Engineering Design Library (ChEDL)
  • pysph - SPH fluid simulation with advanced screen space fluid rendering, using pyopengl and pyopencl
  • DualSPHysics - C++/CUDA/OpenMP based Smoothed Particle Hydrodynamics (SPH) solver


  • Gravity-Simulator - A 2D newtonian gravity simulator in JS
  • Gravisim - A universal gravity simulator written using rust_sdl2
  • pycbc - Analyze gravitational-wave data, find signals, and study their parameters

Waves and Acoustics

Mechanical Waves

  • pyrocko - A seismology toolkit for Python
  • sw4 - 3-D seismic modeling
  • webgl-ripples - A physically realistic real-time simulation of (transversal) 2D waves in WebGL



  • cantera - A chemical kinetics, thermodynamics, and transport tool suite
  • CoolProp - Thermophysical properties for the masses
  • RMG-Py - Python version of the amazing Reaction Mechanism Generator
  • thermo - Thermodynamics, phase equilibria, transport properties and chemical database component of Chemical Engineering Design Library (ChEDL)
  • thermopy - A python library for thermodynamics


  • ElectricFieldSimulation - An experimental example of how to use OpenGL for physical simulations
  • EMpy - A suite of algorithms widely known and used in electromagnetic problems and optics: the transfer matrix algorithm, the rigorous coupled wave analysis algorithm and more
  • gprMax - Simulates electromagnetic wave propagation using the Finite-Difference Time-Domain (FDTD) method for numerical modelling of Ground Penetrating Radar (GPR)
  • meep - Free finite-difference time-domain (FDTD) software for electromagnetic simulations
  • openEMS - A free and open-source electromagnetic field solver using the EC-FDTD method
  • openmeeg - A C++ package for low-frequency bio-electromagnetism solving forward problems in the field of EEG and MEG
  • PlasmaPy - A community developed python package for plasma physics in the very early stages of development.
  • radis - A nonequilibrium Radiative Solver for infrared molecular spectra
  • scattpy - Light Scattering Methods for Python
  • scikit-beam - Data analysis tools for X-Ray, Neutron and Electron sciences
  • scikit-rf - RF and Microwave Engineering Scikit
  • scikit-spectra - A python pandas-based toolkit for explorative spectroscopy, in particular UVVis spectroscopic data
  • scuff-em - computational physics suite for boundary-element analysis of electromagnetic scattering, fluctuation-induced phenomena, nanophotonics, RF device engineering, electrostatics, and more
  • spirit - Optimizations and Dynamics Framework for atomistic Spin systems


  • euclider - A higher-dimensional "non-euclidean" ray tracing prototype written in Rust
  • lightpipes - Simulations of optical phenomena where diffraction is essential
  • odak - A fundamental library for scientific computing in optical sciences.
  • opticspy - A python module for optics applications
  • poppy - Physical Optics Propagation in Python
  • pyRT - a raytracer/image generator for Python
  • rayopt - Python optics and lens design, raytracing
  • raysect - A ray-tracing framework for optical/non-optical physics simulations


  • OpenRelativity - An open source framework to add the effects of traveling at relativistic speeds to visualizations or games
  • TFG - General Relativity massively parallel raytracer

Quantum Physics

  • artiq - Next-generation control system for quantum information experiments
  • flavio - flavour phenomenology in the Standard model and beyond
  • hepdata - the high energy physics data repository
  • particle-clicker - An addictive incremental game that teaches players the history of high energy particle physics
  • Psi4 - Open-source Quantum Chemistry
  • pypdt - Pythonic access to high energy particle data tables and ID codes
  • QMsolve - A Python module for solving and visualizing the SchrΓΆdinger equation.
  • quantum-python-lectures - A series of self-study lectures on using Python for scientific computing at the graduate level in atomic physics and quantum optics.
  • QuantumOptics.jl - Library for the numerical simulation of closed as well as open quantum systems
  • qutip - Quantum Toolbox in Python
  • ROOT - A data processing and analysis framework, mainly used in high-energy physics
  • scikit-hep - Toolkit of interfaces and tools for high energy physics (HEP)


  • astropy - intended to contain much of the core functionality and some common tools needed for performing astronomy and astrophysics with Python
  • gala - Galactic and gravitational dynamics in Python
  • galpy - Galactic Dynamics in python
  • pynbody - framework for N-body and hydrodynamic astrophysical simulations
  • sunpy - an open-source Python library for solar physics data analysis


  • burnman - a library for modeling mantle thermodynamics and thermoelasticity constrained by mineral physics experiments
  • em - Electromagnetic methods in geophysics - open educational resources
  • simpeg - Simulation and Parameter Estimation in Geophysics - A python package for simulation and gradient based parameter estimation in the context of geophysical applications


  • CERN - European Organization for Nuclear Research
  • IOP - Institute of Physics
  • LANL - Los Alamos National Lab
  • LIGO - Laser Inferometer Gravitational-Wave Experiment
  • LLNL - Lawrence Livermore National Laboratory
  • MPPMU - Max Planck Institute for Physics
  • NIST - National Institute of Standards and Technology
  • NREL - National Renewable Energy Laboratory
  • ORNL - Oak Ridge National Laboratory
  • SLAC - Stanford Linear Accelerator Center



To the extent possible under law, wbierbower has waived all copyright and related or neighboring rights to this work.