# \[ANN\] Manifolds.jl: Manifolds in Julia

**URL:** <https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691>\
**Category:** Package Announcements\
**Created:** [March 29, 2020, 7:27pm UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691 "2020-03-29T19:27:00Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [March 29, 2020, 7:27pm UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/1 "2020-03-29T19:27:00Z")

</div>

The [Manifolds.jl](https://github.com/JuliaManifolds/Manifolds.jl) package provides a library of [Riemannian manifolds](https://en.wikipedia.org/wiki/Riemannian_manifold) that are implemented based on the [ManifoldsBase.jl](https://github.com/JuliaManifolds/ManifoldsBase.jl) interface.

The package provides further:

- an efficient power manifold working on arrays (including [hybrid arrays](https://github.com/mateuszbaran/HybridArrays.jl)) or nested structures,
- an efficient product manifold,
- basic support for statistics and distributions on manifolds,
- a metric manifold to implement different metrics for a manifold, including a first ODE solver for the exponential map based on a given metric,
- an embedded manifold scheme to take different embedding or different representations of an embedding into account,
- group manifolds or Lie groups.

The last three features are based on an extensive decorator pattern that makes such an extension semi-transparent in the sense that all functions that are not affected by e.g. the metric are passed through to the underlying manifold.

The [documentation](https://juliamanifolds.github.io/Manifolds.jl/stable/) also covers references and formulae for the implemented manifolds.

If a project implements the interface from [ManifoldsBase.jl](https://github.com/JuliaManifolds/ManifoldsBase.jl) it can be used with all implemented manifolds. A first project that is currently ported to use the interface is [Manopt](https://github.com/JuliaManifolds/Manopt.jl).

We started this project in June last year, recently extended it to [its own github org](https://github.com/JuliaManifolds) which now hosts [Manifolds.jl](https://github.com/JuliaManifolds/Manifolds.jl). We are looking forward to feedback and interesting ideas and projects on manifolds.  
And if your favourite manifold is missing, open an [issue](https://github.com/JuliaManifolds/Manifolds.jl/issues), provide the details and we will try to help you implementing it.

Kind regards  
Mateusz (@mateuszbaran), Ronny (@kellertuer), and Seth (@sethaxen)

---

<div class="post-metadata">

**Author:** ![mateuszbaran](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mateuszbaran/32/221842_2.png) [@mateuszbaran](https://discourse.julialang.org/u/mateuszbaran)\
**Post date:** [March 30, 2020, 10:37am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/2 "2020-03-30T10:37:47Z")

</div>

🎉

New functionality is being developed so, if you have any manifold-valued data, we will have more and more tools to analyze it 🙂.

---

<div class="post-metadata">

**Author:** ![Arrigo\_Benedetti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/arrigo_benedetti/32/25545_2.png) [@Arrigo\_Benedetti](https://discourse.julialang.org/u/Arrigo_Benedetti)\
**Post date:** [March 30, 2020, 6:24pm UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/3 "2020-03-30T18:24:36Z")

</div>

This is great, thanks for developing it!

---

<div class="post-metadata">

**Author:** ![mateuszbaran](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mateuszbaran/32/221842_2.png) [@mateuszbaran](https://discourse.julialang.org/u/mateuszbaran)\
**Post date:** [June 17, 2021, 9:54am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/4 "2021-06-17T09:54:39Z")

</div>

We have published a preprint about Manifolds.jl: [[2106.08777] Manifolds.jl: An Extensible Julia Framework for Data Analysis on Manifolds](https://arxiv.org/abs/2106.08777) 🙂 .

We also have new functionality, including new manifolds and metrics, extended documentation, support for atlases and charts and, last but not least, better performance!

---

<div class="post-metadata">

**Author:** ![mlainz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mlainz/32/21183_2.png) [@mlainz](https://discourse.julialang.org/u/mlainz)\
**Post date:** [June 17, 2021, 10:20am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/5 "2021-06-17T10:20:27Z")

</div>

Thanks for the package.  
Is it possible to use it alongside `Symbolics.jl` in order to do symbolic differential geometry, just like `sympy.diffgeom`, for example?

---

<div class="post-metadata">

**Author:** ![mateuszbaran](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mateuszbaran/32/221842_2.png) [@mateuszbaran](https://discourse.julialang.org/u/mateuszbaran)\
**Post date:** [June 17, 2021, 10:50am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/6 "2021-06-17T10:50:58Z")

</div>

Symbolic computation is currently not supported. We focus on general processing of manifold-valued data (including optimization) where symbolic computation doesn’t seem particularly relevant, or at least I haven’t seen it applied in this context.

That said, if someone works on symbolic differential geometry in Julia, I’d be happy to discuss possible connections between it and Manifolds.jl.

---

<div class="post-metadata">

**Author:** ![mlainz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mlainz/32/21183_2.png) [@mlainz](https://discourse.julialang.org/u/mlainz)\
**Post date:** [June 17, 2021, 11:06am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/7 "2021-06-17T11:06:37Z")

</div>

It is relevant in control theory and classical mechanics, but I understand that it is not the focus of your package.

---

<div class="post-metadata">

**Author:** ![mateuszbaran](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mateuszbaran/32/221842_2.png) [@mateuszbaran](https://discourse.julialang.org/u/mateuszbaran)\
**Post date:** [June 17, 2021, 11:23am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/8 "2021-06-17T11:23:36Z")

</div>

Yes, that’s right. I’ve found your post: [Symbolic differential geometry on Julia](https://discourse.julialang.org/t/symbolic-differential-geometry-on-julia/56273) and we currently have atlases, we are slowly pushing towards supporting tensor fields and we are thinking about supporting manifolds with just an affine connection (instead of a metric). So there may be some functionality we could share 🙂 .

---

<div class="post-metadata">

**Author:** ![mlainz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mlainz/32/21183_2.png) [@mlainz](https://discourse.julialang.org/u/mlainz)\
**Post date:** [June 17, 2021, 11:26am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/9 "2021-06-17T11:26:21Z")

</div>

I see. It looks interesting at least for some numeric problems on mechanics.

---

<div class="post-metadata">

**Author:** ![mlainz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mlainz/32/21183_2.png) [@mlainz](https://discourse.julialang.org/u/mlainz)\
**Post date:** [June 17, 2021, 11:30am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/10 "2021-06-17T11:30:51Z")

</div>

A symbolic toolkit for differential geometry would indeed be very interesting, but I have not the programming expertise nor the time requiered to develop it.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [May 23, 2023, 4:43pm UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/11 "2023-05-23T16:43:12Z")

</div>

We are slowly continuing improving the interface and adding more and more features and manifolds.

The most recent version 0.8.64 from today introduces weak dependencies in Julia 1.9 for the packages we previously loaded with Requires.jl – it reduces the TTFM (time-to-first-manifold) from 3 seconds to 1.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [October 9, 2025, 11:32am UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/12 "2025-10-09T11:32:43Z")

</div>

# Manifolds.jl 0.11

We just released a breaking change for Manifolds.jl.  
If you “just used” manifolds, not much has changed, maybe the order of parameters in the manifold types, since we unified that as described [here](https://juliamanifolds.github.io/ManifoldsBase.jl/stable/design/#General-order-of-parameters).

The main breaking change was caused

- on the one hand by the small breaking update in ManifoldsBase.jl
- on the other hand due to removing all Lie groups – called `GroupManifold`s, since these have been refactored the last year to their own package [`LieGroups.jl`](https://discourse.julialang.org/t/ann-liegroups-jl/128294). If you did use group manifold, we wrote a detailed [How to transition](https://juliamanifolds.github.io/LieGroups.jl/stable/tutorials/transition/) tutorial and list of changes.

With this breaking change, the duplication of code and names we had for a while is gone (again) and one can easily use Manifolds.jl and LieGroups.jl in the same project in parallel.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [November 27, 2025, 6:23pm UTC](https://discourse.julialang.org/t/ann-manifolds-jl-manifolds-in-julia/36691/13 "2025-11-27T18:23:28Z")

</div>

# Manifolds.jl 0.11.7

In our newest version we provide

- a new tutorial how to employ OrdinaryDiffEq.jl to solve the geodesic equation when providing the Riemannnian metric in a chart [work with a metric defined in a chart · Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/tutorials/work-with-a-metric-defined-in-a-chart/) – here for the Schwarzschild coordinates
- a new test suite in case you implement your own manifold and would like to have a structured way to test functions from the ManifoldsBase.jl API: [Test suite · Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/misc/testsuite/)
