# Awesome Physics

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

## Contributing

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!

## Contents

- Mechanics
- Waves and Acoustics
- Thermodynamics
- Electromagnetism
- Optics
- Relativity
- Quantum Physics
- Astrophysics
- Geophysics
- Condensed Matter Physics
- Organizations

## Mechanics

- Kinematics
- Rigid Bodies and Physics Engines
- Fluid Mechanics
- Gravity

### Kinematics

- scikit-kinematics - Python functions for working with 3D kinematics

### 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

- 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
- Sound

### 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

### Sound

- python-acoustics - A Python library aimed at acousticians

## Thermodynamics

- 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

## Electromagnetism

- 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

## Optics

- 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

## Relativity

- 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)

## Astrophysics

- 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

## Geophysics

- 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

## Condensed Matter Physics

- Solid State Simulations A software with many interactive plots in the area of solid state physics. The software isn’t maintained anymore. The latest version can be downloaded via this link
- Shut up and calculate Python code to calculate and visualize the properties of 2 dimensional systems (such as cuprate superconductors).

## Organizations

- 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

## License

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