What’s New

einsteinpy 0.4.0 - 2021-05-06

This major release brings a lot of improvements to the numerical module of the project. COVID19 is proving to be very difficult for India and we are trying to cope up. Please forgive us for any issues you faced with the v0.3.1 and the documentation.


  • [#506]: Tests moved outside of the package.

  • [#510]: Added a utility function for Outer Product and Contraction of Tensors in the symbolic module.

  • [#512]: Refactored metric, utils and geodesic modules, added metric.BaseMetric class

  • [#512]: Fixed #113, Fixed cyclomatic complexity issue in metric.Schwarzschild and metric.Kerr classes

  • [#512]: Fixed #141, Refactored utils and merged most utilities into metric itself

  • [#512]: Fixed #410, Improved __str__ and __repr__ messages for Geodesic objects

  • [#512]: Fixed #507, Fixed a mathematical inaccuracy in metric.Schwarzschild class

  • [#512]: Fixed #508, Removed a stray scaling factor in metric.KerrNewman class

  • [#512]: Fixed #514, Replaced Spin Parameter with Length Parameter throughout metric module

  • [#512]: Fixed #515, Renamed “maxwell” to “em”

  • [#521]: Refactored coordinates, geodesic and metric modules, added support for 4-Vectors

  • [#521]: Fixed #517, Removed Spin Parameter from bodies

  • [#521]: Fixed #524, Fixed breakage, caused due to isort changes

  • [#521]: Partially fixed #523, Fixed Schwarzschild and Kerr

  • [#527]: Added support for Null Geodesics in Kerr & Schwarzschild Spacetimes

  • [#527]: Added new features to plotting.geodesic

  • [#527]: Dropped support for Python 3.6

  • [#547]: Fixed #516, Added __all__ across modules

  • [#547]: Fixed #552, Renamed missing attributes in einsteinpy.plotting.geodesic.static

  • [#547]: Increased test coverage for einsteinpy.ijit

  • [#551]: Fixed #526, Exceptions module added, CoordinateError class implemented

  • [#565]: Fixed #549, Updated einsteinpy.symbolic Jupyter Notebooks

  • [#548]: Fixed #36, Added support for animated Geodesic plots

  • [#548]: Fixed #40, Added support for Order 4, 6 & 8 Geodesic Integrators

  • [#548]: Fixed #105, Added support for simulating Null Geodesics in Kerr & Schwarzschild geometries

  • [#548]: Fixed #122, Schwarzschild & Kerr algorithms validated

  • [#548]: Fixed #367, Scaling issues fixed for Frame Dragging

  • [#548]: Fixed #535, Moved to a pure python geodesic solver, Julia dependency removed

  • [#548]: Minor edits to documentation for geodesic and plotting.geodesic modules

  • [#571]: Fixed #570, Updated Master to Main

  • [#573]: Fixed bug in Riemann Tensor calculation from Christoffels


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat

  • Jyotirmaya Shivottam

  • Bibek Gautam

  • Qbiwan+ (GitHub Username)

  • Aditya Prashant Dalvi+

  • Aditya Prakash+

  • aweinr4+ (GitHub Username)

einsteinpy 0.3.1 - 2021-01-16

This release is a minor patch release for fixing a minor Debian issue.


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat

einsteinpy 0.3.0 - 2020-05-05

This major release would bring some very important improvements. This release fixes a very crucial bug with sympy. Fixes coordinate conversions so they don’t fail on edge cases anymore.

EinsteinPy now uses GitHub Actions for macOS builds. Big changes to the plotting module.

The release comes for the paper of EinsteinPy. The release marks the beginning of Google Summer of Code 2020. The release also brings a new rays module, which will form the base for null geodesics in future releases.


  • Loads of Predefined Metrics

  • Sympy version incompatibilities handled

  • Numba as a default installation

  • Lorentz Transform for Einstein Tensor

  • Lorentz Transform to Tensor Class

  • Hypersurface Plotting API similar to the common plotting API

  • Find Function in Predefined Metrics

  • Increased Code Coverage

  • New rays module

  • Plotting Black Hole Shadows

  • Coordinate Subscripting

  • Supports Python 3.8, dropping support fpr Python 3.5

  • numpy moveaxis replaced with sympy permutedims

  • name parameter in Metric Tensor

  • Tags to Tensor names


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat

  • Ritwik Saha

  • Manvi Gupta

  • Micky Yun Chan+

  • DylanBrdt+ (GitHub Username)

  • Vineet Gandham+

  • Pratyush Kerhalkar+

  • Bhavam Vidyarthi+

  • Khalid Shaikh+

  • Rohit Sanjay+

  • Saurabh+

  • Raahul Singh+

  • Nimesh Vashishtha+

  • Shamanth R Nayak K+

  • Arnav Das+

  • Gim Seng Ng+

  • Nihar Gupte+

  • Suyash Salampuria+

  • Atul Mangat+

  • Ganesh Tarone+

  • Shreyas Kalvankar+

  • Swastik Singh+

  • Jyotirmaya Shivottam+

  • Sitara Srinivasan+

  • Aayush Gautam+

  • Zac Yauney+

  • Gagan-Shenoy+

  • Bibek Gautam+

  • Erin Allard+

  • Suyog Garg+

einsteinpy 0.2.1 - 2019-11-02

This minor release would bring improvements and new feature additions to the already existing symbolic calculations module along with performance boosts of order of 15x.

This release concludes the SOCIS 2019 projects of Sofía Ortín Vela (ortinvela.sofia@gmail.com) and Varun Singh(varunsinghs2021@gmail.com).

Part of this release is sponsored by European Space Agency, through Summer of Code in Space (SOCIS) 2019 program.


  • New tensors in symbolic module

    • Ricci Scalar

    • Weyl Tensor

    • Stress-Energy-Momentum Tensor

    • Einstein Tensor

    • Schouten Tensor

  • Improvement in performance of current tensors

  • Lambdify option for tensors

  • Support for vectors at arbitrary space-time symbolically as 1st order tensor.

  • Support for scalars at arbitrary space-time symbolically as 0th order tensor.

  • Addition of constants sub-module to symbolic module

  • Improvement in speed of Geodesic plotting

  • Move away from Jupyter and Plotly Widgets

  • New Plotting Framework


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat

  • Ritwik Saha

  • Sofía Ortín Vela

  • Varun Singh

  • Arnav Das+

  • Calvin Jay Ross+

einsteinpy 0.2.0 - 2019-07-15

This release brings a lot of new features for the EinsteinPy Users.

A better API, intuitive structure and easy coordinates handling! This major release comes before Python in Astronomy 2019 workshop and brings a lots of cool stuff.

Part of this release is sponsored by ESA/ESTEC - Adv. Concepts & Studies Office (European Space Agency), through Summer of Code in Space (SOCIS) 2019 program.

This is a short-term supported version and will be supported only until December 2019. For any feature request, write a mail to developers@einsteinpy.org describing what you need.


  • Kerr Metric

  • Kerr-Newman Metric

  • Coordinates Module with Boyer Lindquist Coordinates and transformation

  • Bodies Module

  • Defining Geodesics with ease!

  • Animated plots

  • Intuitive API for plotting

  • Schwarzschild Hypersurface Embedding

  • Interactive Plotting

  • Environment-aware plotting and exceptional support for iPython Notebooks!

  • Support for Tensor Algebra in General Relativity

  • Symbolic Manipulation of Metric Tensor, Riemann Tensor and Ricci Tensor

  • Support for Index Raising and Lowering in Tensors

  • Numerical Calculation and Symbolic Manipulation of Christoffel Symbols

  • Calculations of Event Horizon and Ergosphere of Kerr Black holes!


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat

  • Ritwik Saha

  • Bhavya Bhatt

  • Sofía Ortín Vela+

  • Raphael Reyna+

  • Prithvi Manoj Krishna+

  • Manvi Gupta+

  • Divya Gupta+

  • Yash Sharma+

  • Shilpi Jain+

  • Rishi Sharma+

  • Varun Singh+

  • Alpesh Jamgade+

  • Saurabh Bansal+

  • Tanmay Rustagi+

  • Abhijeet Manhas+

  • Ankit Khandelwal+

  • Tushar Tyagi+

  • Hrishikesh Sarode

  • Naman Tayal+

  • Ratin Kumar+

  • Govind Dixit+

  • Jialin Ma+

Bugs Fixed

  • Issue #115: Coordinate Conversion had naming issues that made them confusing!

  • Issue #185: Isort had conflicts with Black

  • Issue #210: Same notebook had two different listings in Example Gallery

  • Issue #264: Removing all relative imports

  • Issue #265: New modules were lacking API Docs

  • Issue #266: The logo on documentation was not rendering

  • Issue #267: Docs were not present for Ricci Tensor and Vacuum Metrics

  • Issue #277: Coordinate Conversion in plotting module was handled incorrectly

Backwards incompatible changes

  • The old StaticGeodesicPlotter has been renamed to einsteinpy.plotting.senile.StaticGeodesicPlotter, please adjust your imports accordingly

  • The old ScatterGeodesicPlotter has been renamed to einsteinpy.plotting.senile.ScatterGeodesicPlotter, please adjust your imports accordingly.

  • einsteinpy.metric.Schwarzschild, einsteinpy.metric.Kerr, and einsteinpy.metric.KerrNewman now have different signatures for class methods, and they now explicitly support einsteinpy.coordinates coordinate objects. Check out the notebooks and their respective documentation.

  • The old coordinates conversion in einsteinpy.utils has been deprecated.

  • The old symbolic module in einsteinpy.utils has been moved to einsteinpy.symbolic.

einsteinpy 0.1.0 - 2019-03-08

This is a major first release for world’s first actively maintained python library for General Relativity and Numerical methods. This major release just comes before the Annual AstroMeet of IIT Mandi, AstraX. This will be a short term support version and will be supported only until late 2019.


  • Schwarzschild Geometry Analysis and trajectory calculation

  • Symbolic Calculation of various tensors in GR

  • Christoffel Symbols

  • Riemann Curvature Tensor

  • Static Geodesic Plotting

  • Velocity of Coordinate time w.r.t proper time

  • Easy Calculation of Schwarzschild Radius

  • Coordinate conversion with unit handling

  • Spherical/Cartesian Coordinates

  • Boyer-Lindquist/Cartesian Coordinates


This is the complete list of the people that contributed to this release, with a + sign indicating first contribution.

  • Shreyas Bapat+

  • Ritwik Saha+

  • Bhavya Bhatt+

  • Priyanshu Khandelwal+

  • Gaurav Kumar+

  • Hrishikesh Sarode+

  • Sashank Mishra+