diff --git a/doc/changelog.rst b/doc/changelog.rst
index 56904ed8..5a90b5f6 100644
--- a/doc/changelog.rst
+++ b/doc/changelog.rst
@@ -2,48 +2,48 @@
Changelog
=========
-Upcoming version (not yet released)
+Version 3.1.0 (December 12, 2023)
-----------------------------------
General
^^^^^^^
-- Improved convergence of Signed Distance Function (SDF) collisions by using line search and a new objective function
- for the optimization. This allows to decrease the number of initial points needed for finding the contacts and is more
- robust for very small or large geom sizes.
-- Added :ref:`frame` to MJCF, a :ref:`meta-element` which defines a pure coordinate transformation
- on its direct children, without requiring a :ref:`body`.
-- Added the :at:`kv` attribute to the :ref:`position` and :ref:`intvelocity`
- actuators, for specifying actuator-applied damping. This can be used to implement a PD controller with 0 reference
- velocity. When using this attribute, it is recommended to use the implicitfast or implicit
- :ref:`integrators`.
+1. Improved convergence of Signed Distance Function (SDF) collisions by using line search and a new objective function
+ for the optimization. This allows to decrease the number of initial points needed for finding the contacts and is more
+ robust for very small or large geom sizes.
+2. Added :ref:`frame` to MJCF, a :ref:`meta-element` which defines a pure coordinate transformation
+ on its direct children, without requiring a :ref:`body`.
+3. Added the :at:`kv` attribute to the :ref:`position` and :ref:`intvelocity`
+ actuators, for specifying actuator-applied damping. This can be used to implement a PD controller with 0 reference
+ velocity. When using this attribute, it is recommended to use the implicitfast or implicit
+ :ref:`integrators`.
Plugins
^^^^^^^
-- Allow actuator plugins to use activation variables in ``mjData.act`` as their internal state, rather than
- ``mjData.plugin_state``. Actuator plugins can now specify :ref:`callbacks` that compute activation
- variables, and they can be used with built-in :ref:`dyntype` actuator dynamics.
+4. Allow actuator plugins to use activation variables in ``mjData.act`` as their internal state, rather than
+ ``mjData.plugin_state``. Actuator plugins can now specify :ref:`callbacks` that compute activation
+ variables, and they can be used with built-in :ref:`dyntype` actuator dynamics.
-- Added the `pid `__ actuator plugin, a
- configurable PID controller that implements the Integral term, which is not available with native MuJoCo actuators.
+5. Added the `pid `__ actuator plugin, a
+ configurable PID controller that implements the Integral term, which is not available with native MuJoCo actuators.
MJX
^^^
-- Added ``site_xpos`` and ``site_xmat`` to MJX.
-- Added ``put_data``, ``put_model``, ``get_data`` to replace ``device_put`` and ``device_get_into``, which will be
- deprecated. These new functions correctly translate fields that are the result of intermediate calculations such as
- ``efc_J``.
+6. Added ``site_xpos`` and ``site_xmat`` to MJX.
+7. Added ``put_data``, ``put_model``, ``get_data`` to replace ``device_put`` and ``device_get_into``, which will be
+ deprecated. These new functions correctly translate fields that are the result of intermediate calculations such as
+ ``efc_J``.
Bug fixes
^^^^^^^^^
-- Fix bug in Cartesian actuation with movable refsite, as when using body-centric Cartesian actuators on a quadruped.
- Before this fix such actuators could lead to non-conservation of momentum.
-- Fix bug that prevented using flex with the :ref:`passive viewer`.
-- Fix bug that prevented the use of elasticity plugins in combination with pinned flex vertices.
-- Release Python wheels targeting macOS 10.16 to support x86_64 systems where SYSTEM_VERSION_COMPAT is set. The minimum
- supported version is still 11.0, but we release these wheels to fix compatibility for those users. See
- :github:issue:`1213`.
+8. Fix bug in Cartesian actuation with movable refsite, as when using body-centric Cartesian actuators on a quadruped.
+ Before this fix such actuators could lead to non-conservation of momentum.
+9. Fix bug that prevented using flex with the :ref:`passive viewer`.
+10. Fix bug that prevented the use of elasticity plugins in combination with pinned flex vertices.
+11. Release Python wheels targeting macOS 10.16 to support x86_64 systems where SYSTEM_VERSION_COMPAT is set. The minimum
+ supported version is still 11.0, but we release these wheels to fix compatibility for those users. See
+ :github:issue:`1213`.
Version 3.0.1 (November 15, 2023)
---------------------------------