# Awesome Physics  [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

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

## Contributing

Please take a quick look at the [contribution guidelines](./CONTRIBUTING.md) 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](#mechanics)
* [Waves and Acoustics](#waves-and-acoustics)
* [Thermodynamics](#thermodynamics)
* [Electromagnetism](#electromagnetism)
* [Optics](#optics)
* [Relativity](#relativity)
* [Quantum Physics](#quantum-physics)
* [Astrophysics](#astrophysics)
* [Geophysics](#geophysics)
* [Condensed Matter Physics](#condensed-matter-physics)
* [Organizations](#organizations)

## Mechanics

* [Kinematics](#kinematics)
* [Rigid Bodies and Physics Engines](#rigid-bodies-and-physics-engines)
* [Fluid Mechanics](#fluid-mechanics)
* [Gravity](#gravity)

### Kinematics

* [scikit-kinematics](https://github.com/thomas-haslwanter/scikit-kinematics) - Python functions for working with 3D kinematics

### Rigid Bodies and Physics Engines

* [bullet3](https://github.com/bulletphysics/bullet3) - real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning
* [cannon.js](https://github.com/schteppe/cannon.js) - A lightweight 3D physics engine written in JavaScript
* [matter-js](https://github.com/liabru/matter-js) - A 2D rigid body physics engine for the web
* [mujoco-py](https://github.com/openai/mujoco-py) - A physics engine for detailed, efficient rigid body simulations with contacts
* [myphysicslab](https://github.com/myphysicslab/myphysicslab) - provides JavaScript classes to build real-time interactive animated physics simulations
* [ncollide](https://github.com/sebcrozet/ncollide) - 2 and 3-dimensional collision detection library in Rust
* [newton-dynamics](https://github.com/MADEAPPS/newton-dynamics) - an integrated solution for real time simulation of physics environments
* [nphysics](https://github.com/sebcrozet/nphysics) - 2 and 3-dimensional rigid body physics engine for Rust
* [PhysX](https://github.com/NVIDIAGameWorks/PhysX-3.4) - a scalable multi-platform game physics solution
* [PositionBasedDynamics](https://github.com/InteractiveComputerGraphics/PositionBasedDynamics) - A library for the physically-based simulation of rigid bodies, deformable solids and fluids
* [pydy](https://github.com/pydy/pydy) - Multibody dynamics tool kit
* [pymunk](https://github.com/viblo/pymunk) - A easy-to-use pythonic 2d physics library
* [simbody](https://github.com/simbody/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](https://github.com/doyubkim/fluid-engine-dev) - Fluid simulation engine for computer graphics applications
* [fluids](https://github.com/CalebBell/fluids) - Fluid dynamics component of Chemical Engineering Design Library (ChEDL)
* [pysph](https://github.com/benma/pysph) - SPH fluid simulation with advanced screen space fluid rendering, using pyopengl and pyopencl
* [DualSPHysics](https://github.com/DualSPHysics/DualSPHysics) - C++/CUDA/OpenMP based Smoothed Particle Hydrodynamics (SPH) solver

### Gravity

* [Gravity-Simulator](https://github.com/HermannBjorgvin/Gravity-Simulator) - A 2D newtonian gravity simulator in JS
* [Gravisim](https://github.com/bcamp1/Gravisim) - A universal gravity simulator written using rust_sdl2
* [pycbc](https://github.com/ligo-cbc/pycbc) - Analyze gravitational-wave data, find signals, and study their parameters

## Waves and Acoustics

* [Mechanical Waves](#mechanical-waves)
* [Sound](#sound)

### Mechanical Waves

* [pyrocko](https://github.com/pyrocko/pyrocko) - A seismology toolkit for Python
* [sw4](https://github.com/geodynamics/sw4) - 3-D seismic modeling
* [webgl-ripples](https://github.com/m-ender/webgl-ripples) - A physically realistic real-time simulation of (transversal) 2D waves in WebGL

### Sound

* [python-acoustics](https://github.com/python-acoustics/python-acoustics) - A Python library aimed at acousticians

## Thermodynamics

* [cantera](https://github.com/Cantera/cantera) - A chemical kinetics, thermodynamics, and transport tool suite
* [CoolProp](https://github.com/CoolProp/CoolProp) - Thermophysical properties for the masses
* [RMG-Py](https://github.com/ReactionMechanismGenerator/RMG-Py) - Python version of the amazing Reaction Mechanism Generator
* [thermo](https://github.com/CalebBell/thermo) - Thermodynamics, phase equilibria, transport properties and chemical database component of Chemical Engineering Design Library (ChEDL)
* [thermopy](https://github.com/guillemborrell/thermopy) - A python library for thermodynamics

## Electromagnetism

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

## Optics

* [euclider](https://github.com/Limeth/euclider) - A higher-dimensional "non-euclidean" ray tracing prototype written in Rust
* [lightpipes](https://github.com/opticspy/lightpipes) - Simulations of optical phenomena where diffraction is essential
* [odak](https://github.com/kunguz/odak) - A fundamental library for scientific computing in optical sciences.
* [opticspy](https://github.com/Sterncat/opticspy) - A python module for optics applications
* [poppy](https://github.com/mperrin/poppy) - Physical Optics Propagation in Python
* [pyRT](https://github.com/martinchristen/pyRT) - a raytracer/image generator for Python
* [rayopt](https://github.com/jordens/rayopt) - Python optics and lens design, raytracing
* [raysect](https://github.com/raysect/source) - A ray-tracing framework for optical/non-optical physics simulations

## Relativity

* [OpenRelativity](https://github.com/MITGameLab/OpenRelativity) - An open source framework to add the effects of traveling at relativistic speeds to visualizations or games
* [TFG](https://github.com/agarciamontoro/TFG) - General Relativity massively parallel raytracer

## Quantum Physics

* [artiq](https://github.com/m-labs/artiq) - Next-generation control system for quantum information experiments
* [flavio](https://github.com/flav-io/flavio) - flavour phenomenology in the Standard model and beyond
* [hepdata](https://github.com/HEPData/hepdata) - the high energy physics data repository
* [particle-clicker](https://github.com/particle-clicker/particle-clicker) - An addictive incremental game that teaches players the history of high energy particle physics
* [Psi4](https://github.com/psi4/psi4) - Open-source Quantum Chemistry
* [pypdt](https://bitbucket.org/andybuckley/pypdt) - Pythonic access to high energy particle data tables and ID codes
* [QMsolve](https://github.com/quantum-visualizations/qmsolve) - A Python module for solving and visualizing the Schrödinger equation.
* [quantum-python-lectures](https://github.com/tommyogden/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](https://github.com/qojulia/QuantumOptics.jl) - Library for the numerical simulation of closed as well as open quantum systems
* [qutip](https://github.com/qutip/qutip) - Quantum Toolbox in Python
* [ROOT](https://github.com/root-project/root) - A data processing and analysis framework, mainly used in high-energy physics
* [scikit-hep](https://github.com/scikit-hep/scikit-hep) - Toolkit of interfaces and tools for high energy physics (HEP)


## Astrophysics

* [astropy](https://github.com/astropy/astropy) - intended to contain much of the core functionality and some common tools needed for performing astronomy and astrophysics with Python
* [gala](https://github.com/adrn/gala) - Galactic and gravitational dynamics in Python
* [galpy](http://galpy.readthedocs.io/en/latest/) - Galactic Dynamics in python
* [pynbody](https://github.com/pynbody/pynbody) - framework for N-body and hydrodynamic astrophysical simulations
* [sunpy](https://github.com/sunpy/sunpy) - an open-source Python library for solar physics data analysis

## Geophysics

* [burnman](https://github.com/geodynamics/burnman) - a library for modeling mantle thermodynamics and thermoelasticity constrained by mineral physics experiments
* [em](https://github.com/geoscixyz/em) - Electromagnetic methods in geophysics - open educational resources
* [simpeg](https://github.com/simpeg/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](https://web.archive.org/web/20060907125225/http://www.physics.cornell.edu/sss/simulationlist.html) 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](https://web.archive.org/web/20190610115705/http://pages.physics.cornell.edu/~sethna/teaching/sss/labs/)
* [Shut up and calculate](https://github.com/Sinan81/shut-up-and-calculate) Python code to calculate and visualize the properties of 2 dimensional systems (such as cuprate superconductors).

## Organizations

* [CERN](https://github.com/CERN) - European Organization for Nuclear Research
* [IOP](https://github.com/Institute-of-Physics) - Institute of Physics
* [LANL](https://github.com/lanl) - Los Alamos National Lab
* [LIGO](https://github.com/lscsoft) - Laser Inferometer Gravitational-Wave Experiment
* [LLNL](https://github.com/LLNL) - Lawrence Livermore National Laboratory
* [MPPMU](https://github.com/mppmu) - Max Planck Institute for Physics
* [NIST](https://github.com/usnistgov) - National Institute of Standards and Technology
* [NREL](https://github.com/NREL) - National Renewable Energy Laboratory
* [ORNL](https://github.com/ORNL) - Oak Ridge National Laboratory
* [SLAC](https://github.com/SLAC) - Stanford Linear Accelerator Center

## License

[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)

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