open-source mathematics software system

Mathematicians, scientists, researchers, and students need a powerful tool for their work or study. SageMath is a freely available open-source mathematical software system bundling the functionality of many software libraries, exposing their features in a common interface and extending on top of this with its own powerful algorithms. By leveraging the flexibility and universality of the underlying Python interpreter, SageMath is able to accommodate for a vast range of their requirements.

The mission of SageMath is to create a viable open-source alternative to all major proprietary mathematical software systems.

Python is the main programming language inside the SageMath library and also the language of choice for all interactions with the built-in objects and functions for expressing mathematical concepts and calculations. Besides a command-line and programming-library interface, its primary user interface is a dynamic self-hosted website. From the perspective of a user, the interface language is Python, but with a thin extension built directly on top of it.

Almost all areas of mathematics are represented in SageMath, at various levels of sophistication. This includes symbolic calculus, 2D and 3D graphics, polynomials, graph theory, group theory, abstract algebra, combinatorics, cryptography, elliptic curves and modular forms, numerical mathematics, linear algebra and matrix calculations (over various rings), support for parallel computing, and a powerful coercion framework to “mix” elements from different sets for calculations. SageMath’s features also expand into neighboring fields like Statistics and Physics.

lightbulb_outline View ideas list


  • python
  • cython


email Mailing list
mail_outline Contact email

SageMath 2021 Projects

  • Thomas Hagelmayer
    Add support for error terms with explicit constants to AsymptoticRing
    An asymptotic expression typically contains exact terms and O-terms, for example n3 + 2n2 + O(n). The basic framework for this asymptotic ring is...
  • Alexander Galarraga
    Dynamics Algorithmic Improvements
    We aim to improve several computations in dynamics and also implement new features. Improvements include optimizing the automorphic group...
  • Trevor Karn
    G-invariants of the Orlik-Solomon and Orlik-Terao algebras
    For a finite-dimensional algebra A equipped with the action of a group G, the invariant algebra A^G has many useful interpretations in topology and...
  • Alexis Newton
    Implement Small Groups
    The goal of this project is to improve the conversation between Sage and GAP (the SmallGrp package). We want to create convenient ways for...
  • David Ayotte
    Implementation of the graded ring of quasimodular forms
    The goal of this project is twofold: first, we wish to implement the graded ring of quasimodular forms and, second, we wish to implement the...
  • Tejasvi Chebrolu
    Lazy Formal Power Series
    A formal power series is a (potentially) infinite sequence of coefficients. It turns out to be practical to denote it as an infinite series, although...
  • Linden Disney-Hogg
    Rigorous integration and the Abel-Jacobi map
    Riemann surfaces are key objects in many areas of maths, from mathematical physics to algebraic and arithmetic geometry. As such there is...