google-deepmind/mujocoPublic

Multi-Joint dynamics with Contact. A general purpose physics simulator.

Stars
16.8K
Forks
2K
Watchers
139
Open issues
153
Open PRs
151
Contributors
~185
Commits
6.6K
Branches
20

C++Apache-2.0Created Aug 27, 2021Last push todayLatest release 4.0.0

Quick answers

What is mujoco?
Multi-Joint dynamics with Contact. A general purpose physics simulator.
How popular is mujoco on GitHub?
google-deepmind/mujoco has 16,761 stars and 1,973 forks on GitHub.
What license does mujoco use?
google-deepmind/mujoco is released under the Apache-2.0 license.

Star history

since Nov 9, 2026

Star history is still being collected for this repository.

Contribution activity

commits per day, last 52 weeks
NovDecJanFebMarAprMayJunJulAugSepOctNovMonWedFri2025-11-16: 0 commits2025-11-17: 8 commits2025-11-18: 4 commits2025-11-19: 10 commits2025-11-20: 5 commits2025-11-21: 6 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 5 commits2025-11-25: 18 commits2025-11-26: 14 commits2025-11-27: 8 commits2025-11-28: 1 commit2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 15 commits2025-12-02: 2 commits2025-12-03: 5 commits2025-12-04: 9 commits2025-12-05: 8 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 4 commits2025-12-09: 13 commits2025-12-10: 5 commits2025-12-11: 6 commits2025-12-12: 9 commits2025-12-13: 1 commit2025-12-14: 1 commit2025-12-15: 6 commits2025-12-16: 3 commits2025-12-17: 1 commit2025-12-18: 5 commits2025-12-19: 8 commits2025-12-20: 2 commits2025-12-21: 1 commit2025-12-22: 7 commits2025-12-23: 3 commits2025-12-24: 1 commit2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 1 commit2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 1 commit2026-01-02: 2 commits2026-01-03: 2 commits2026-01-04: 1 commit2026-01-05: 3 commits2026-01-06: 3 commits2026-01-07: 8 commits2026-01-08: 9 commits2026-01-09: 8 commits2026-01-10: 0 commits2026-01-11: 1 commit2026-01-12: 11 commits2026-01-13: 5 commits2026-01-14: 10 commits2026-01-15: 3 commits2026-01-16: 3 commits2026-01-17: 0 commits2026-01-18: 2 commits2026-01-19: 3 commits2026-01-20: 3 commits2026-01-21: 2 commits2026-01-22: 6 commits2026-01-23: 8 commits2026-01-24: 2 commits2026-01-25: 1 commit2026-01-26: 7 commits2026-01-27: 11 commits2026-01-28: 11 commits2026-01-29: 10 commits2026-01-30: 5 commits2026-01-31: 1 commit2026-02-01: 0 commits2026-02-02: 6 commits2026-02-03: 11 commits2026-02-04: 8 commits2026-02-05: 4 commits2026-02-06: 7 commits2026-02-07: 2 commits2026-02-08: 2 commits2026-02-09: 7 commits2026-02-10: 8 commits2026-02-11: 15 commits2026-02-12: 8 commits2026-02-13: 14 commits2026-02-14: 1 commit2026-02-15: 0 commits2026-02-16: 3 commits2026-02-17: 13 commits2026-02-18: 7 commits2026-02-19: 12 commits2026-02-20: 13 commits2026-02-21: 3 commits2026-02-22: 0 commits2026-02-23: 15 commits2026-02-24: 9 commits2026-02-25: 19 commits2026-02-26: 9 commits2026-02-27: 2 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 5 commits2026-03-03: 6 commits2026-03-04: 16 commits2026-03-05: 9 commits2026-03-06: 1 commit2026-03-07: 1 commit2026-03-08: 2 commits2026-03-09: 5 commits2026-03-10: 7 commits2026-03-11: 17 commits2026-03-12: 8 commits2026-03-13: 4 commits2026-03-14: 0 commits2026-03-15: 3 commits2026-03-16: 12 commits2026-03-17: 6 commits2026-03-18: 16 commits2026-03-19: 4 commits2026-03-20: 6 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 3 commits2026-03-24: 2 commits2026-03-25: 12 commits2026-03-26: 3 commits2026-03-27: 8 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 4 commits2026-03-31: 5 commits2026-04-01: 8 commits2026-04-02: 1 commit2026-04-03: 1 commit2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 8 commits2026-04-08: 8 commits2026-04-09: 10 commits2026-04-10: 4 commits2026-04-11: 0 commits2026-04-12: 2 commits2026-04-13: 9 commits2026-04-14: 11 commits2026-04-15: 13 commits2026-04-16: 5 commits2026-04-17: 6 commits2026-04-18: 0 commits2026-04-19: 2 commits2026-04-20: 21 commits2026-04-21: 4 commits2026-04-22: 3 commits2026-04-23: 20 commits2026-04-24: 8 commits2026-04-25: 1 commit2026-04-26: 5 commits2026-04-27: 4 commits2026-04-28: 9 commits2026-04-29: 12 commits2026-04-30: 2 commits2026-05-01: 8 commits2026-05-02: 2 commits2026-05-03: 0 commits2026-05-04: 3 commits2026-05-05: 14 commits2026-05-06: 10 commits2026-05-07: 19 commits2026-05-08: 8 commits2026-05-09: 2 commits2026-05-10: 2 commits2026-05-11: 8 commits2026-05-12: 6 commits2026-05-13: 8 commits2026-05-14: 5 commits2026-05-15: 13 commits2026-05-16: 0 commits2026-05-17: 6 commits2026-05-18: 2 commits2026-05-19: 7 commits2026-05-20: 9 commits2026-05-21: 7 commits2026-05-22: 6 commits2026-05-23: 1 commit2026-05-24: 0 commits2026-05-25: 2 commits2026-05-26: 10 commits2026-05-27: 12 commits2026-05-28: 8 commits2026-05-29: 5 commits2026-05-30: 6 commits2026-05-31: 4 commits2026-06-01: 2 commits2026-06-02: 8 commits2026-06-03: 12 commits2026-06-04: 3 commits2026-06-05: 7 commits2026-06-06: 2 commits2026-06-07: 0 commits2026-06-08: 21 commits2026-06-09: 11 commits2026-06-10: 9 commits2026-06-11: 18 commits2026-06-12: 6 commits2026-06-13: 4 commits2026-06-14: 0 commits2026-06-15: 13 commits2026-06-16: 12 commits2026-06-17: 10 commits2026-06-18: 4 commits2026-06-19: 6 commits2026-06-20: 6 commits2026-06-21: 6 commits2026-06-22: 7 commits2026-06-23: 13 commits2026-06-24: 7 commits2026-06-25: 5 commits2026-06-26: 3 commits2026-06-27: 0 commits2026-06-28: 1 commit2026-06-29: 7 commits2026-06-30: 11 commits2026-07-01: 8 commits2026-07-02: 9 commits2026-07-03: 8 commits2026-07-04: 8 commits2026-07-05: 2 commits2026-07-06: 4 commits2026-07-07: 8 commits2026-07-08: 4 commits2026-07-09: 6 commits2026-07-10: 9 commits2026-07-11: 8 commits2026-07-12: 0 commits2026-07-13: 6 commits2026-07-14: 9 commits2026-07-15: 13 commits2026-07-16: 8 commits2026-07-17: 7 commits2026-07-18: 1 commit2026-07-19: 2 commits2026-07-20: 12 commits2026-07-21: 9 commits2026-07-22: 13 commits2026-07-23: 3 commits2026-07-24: 3 commits2026-07-25: 0 commits2026-07-26: 2 commits2026-07-27: 6 commits2026-07-28: 3 commits2026-07-29: 7 commits2026-07-30: 14 commits2026-07-31: 9 commits2026-08-01: 3 commits2026-08-02: 4 commits2026-08-03: 13 commits2026-08-04: 9 commits2026-08-05: 5 commits2026-08-06: 13 commits2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 2 commits2026-08-10: 5 commits2026-08-11: 1 commit2026-08-12: 4 commits2026-08-13: 0 commits2026-08-14: 3 commits2026-08-15: 1 commit2026-08-16: 3 commits2026-08-17: 12 commits2026-08-18: 6 commits2026-08-19: 5 commits2026-08-20: 11 commits2026-08-21: 11 commits2026-08-22: 3 commits2026-08-23: 7 commits2026-08-24: 19 commits2026-08-25: 7 commits2026-08-26: 10 commits2026-08-27: 9 commits2026-08-28: 12 commits2026-08-29: 2 commits2026-08-30: 4 commits2026-08-31: 1 commit2026-09-01: 8 commits2026-09-02: 16 commits2026-09-03: 12 commits2026-09-04: 4 commits2026-09-05: 7 commits2026-09-06: 5 commits2026-09-07: 15 commits2026-09-08: 11 commits2026-09-09: 7 commits2026-09-10: 14 commits2026-09-11: 13 commits2026-09-12: 7 commits2026-09-13: 5 commits2026-09-14: 11 commits2026-09-15: 11 commits2026-09-16: 10 commits2026-09-17: 15 commits2026-09-18: 12 commits2026-09-19: 3 commits2026-09-20: 6 commits2026-09-21: 18 commits2026-09-22: 13 commits2026-09-23: 5 commits2026-09-24: 6 commits2026-09-25: 25 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 12 commits2026-09-29: 12 commits2026-09-30: 9 commits2026-10-01: 9 commits2026-10-02: 5 commits2026-10-03: 6 commits2026-10-04: 5 commits2026-10-05: 21 commits2026-10-06: 34 commits2026-10-07: 42 commits2026-10-08: 12 commits2026-10-09: 30 commits2026-10-10: 4 commits2026-10-11: 6 commits2026-10-12: 29 commits2026-10-13: 26 commits2026-10-14: 14 commits2026-10-15: 9 commits2026-10-16: 21 commits2026-10-17: 3 commits2026-10-18: 12 commits2026-10-19: 27 commits2026-10-20: 32 commits2026-10-21: 32 commits2026-10-22: 23 commits2026-10-23: 11 commits2026-10-24: 2 commits2026-10-25: 5 commits2026-10-26: 9 commits2026-10-27: 14 commits2026-10-28: 22 commits2026-10-29: 37 commits2026-10-30: 13 commits2026-10-31: 10 commits2026-11-01: 25 commits2026-11-02: 29 commits2026-11-03: 21 commits2026-11-04: 30 commits2026-11-05: 42 commits2026-11-06: 31 commits2026-11-07: 6 commits2026-11-08: 1 commit2026-11-09: 4 commits2026-11-10: 0 commits2026-11-11: 0 commits2026-11-12: 0 commits2026-11-13: 0 commits2026-11-14: 0 commits
2,677 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    16,761 stars

  • Battle-tested

    5 years of history

  • Very active

    2,677 commits in 52 weeks

  • Community-driven

    ~185 contributors

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

README

main branch

MuJoCo

MuJoCo stands for Multi-Joint dynamics with Contact. It is a general purpose physics engine that aims to facilitate research and development in robotics, biomechanics, graphics and animation, machine learning, and other areas which demand fast and accurate simulation of articulated structures interacting with their environment.

This repository is maintained by Google DeepMind.

MuJoCo has a C API and is intended for researchers and developers. The runtime simulation module is tuned to maximize performance and operates on low-level data structures that are preallocated by the built-in XML compiler. The library includes interactive visualization in native desktop windows and web browsers. MuJoCo further exposes a large number of utility functions for computing physics-related quantities.

We also provide Python bindings and a plug-in for the Unity game engine.

Documentation

MuJoCo's documentation can be found at mujoco.readthedocs.io. Upcoming features due for the next release can be found in the changelog in the "latest" branch.

Getting Started

  1. Try MuJoCo in your browser. Visit mujoco.org to explore MuJoCo on desktop or mobile with nothing to install, or open live.mujoco.org to inspect and drag and drop your own models in the WebAssembly version of the MuJoCo Studio app (slower than native C, since it runs in WebAssembly).

  2. Run a viewer on your machine. Follow the Getting Started guide in the documentation to download a prebuilt release and run the MuJoCo Studio app or the classic simulate viewer (shown in this video) on your machine.

  3. Explore our online IPython notebooks. If you are a Python user, you might want to start with our tutorial notebooks running on Google Colab:

  • The introductory tutorial teaches MuJoCo basics: Open In Colab
  • The Model Editing tutorial shows how to create and edit models procedurally: Open In Colab
  • The rollout tutorial shows how to use the multithreaded rollout module: Open In Colab
  • The LQR tutorial synthesizes a linear-quadratic controller, balancing a humanoid on one leg: Open In Colab
  • The least-squares tutorial explains how to use the Python-based nonlinear least-squares solver: Open In Colab
  • The MJX tutorial provides usage examples of MuJoCo XLA, a branch of MuJoCo written in JAX: Open In Colab
  • The differentiable physics tutorial trains locomotion policies with analytical gradients automatically derived from MuJoCo's physics step: Open In Colab

Installation

Prebuilt binaries

Versioned releases are available as precompiled binaries from the GitHub releases page, built for Linux (x86-64 and AArch64), Windows (x86-64 only), and macOS (universal). This is the recommended way to use the software.

Building from source

Users who wish to build MuJoCo from source should consult the build from source section of the documentation. However, note that the commit at the tip of the main branch may be unstable.

Python (>= 3.11)

The native Python bindings, which come pre-packaged with a copy of MuJoCo, can be installed from PyPI via:

pip install mujoco

Note that Pre-built Linux wheels target manylinux2014, see here for compatible distributions. For more information such as building the bindings from source, see the Python bindings section of the documentation.

Versioning

We aim to release MuJoCo in the first week of each month. Our versioning standards changed to modified Semantic Versioning in 3.5.0, see versioning for details.

Contributing

We welcome community engagement: questions, requests for help, bug reports and feature requests. To read more about bug reports, feature requests and more ambitious contributions, please see our contributors guide and style guide.

Asking Questions

Questions and requests for help are welcome as a GitHub "Asking for Help" Discussion and should focus on a specific problem or question.

Bug reports and feature requests

GitHub Issues are reserved for bug reports, feature requests and other development-related subjects.

Related software

MuJoCo is the backbone for numerous environment packages. Below we list several bindings and converters.

Bindings

These packages give users of various languages access to MuJoCo functionality:

First-party bindings:
Third-party bindings:

Converters

  • OpenSim: MyoConverter converts OpenSim models to MJCF.
  • SDFormat: gz-mujoco is a two-way SDFormat <-> MJCF conversion tool.
  • OBJ: obj2mjcf a script for converting composite OBJ files into a loadable MJCF model.
  • onshape: Onshape to Robot Converts onshape CAD assemblies to MJCF.

Citation

If you use MuJoCo for published research, please cite:

@inproceedings{todorov2012mujoco,
  title={MuJoCo: A physics engine for model-based control},
  author={Todorov, Emanuel and Erez, Tom and Tassa, Yuval},
  booktitle={2012 IEEE/RSJ International Conference on Intelligent Robots and Systems},
  pages={5026--5033},
  year={2012},
  organization={IEEE},
  doi={10.1109/IROS.2012.6386109}
}

License and Disclaimer

Copyright 2021 DeepMind Technologies Limited.

Box collision code (engine_collision_box.c) is Copyright 2016 Svetoslav Kolev.

ReStructuredText documents, images, and videos in the doc directory are made available under the terms of the Creative Commons Attribution 4.0 (CC BY 4.0) license. You may obtain a copy of the License at https://creativecommons.org/licenses/by/4.0/legalcode.

Source code is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.

This is not an officially supported Google product.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

58 total
  1. 4.0.04.0.0Nov 6, 20261.1K downloads

    # Version 4.0.0 (November 6, 2026) > [!IMPORTANT] > **Read the [MuJoCo 4.0 announcement](https://github.com/google-deepmind/mujoco/discussions/3773)** for an overview of everything new since 3.0, the interactive showcase at [mujoco.org](https://mujoco.org), [MuJoCo Live](https://live.mujoco.org) browser demos, visual showcases, and maintainer Q&A. <a href="https://mujoco.readthedocs.io/en/stable/computation/speculative.html#spadvancement"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/google-deepmind/mujoco/main/doc/images/changelog/speculative_advancement_dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/google-deepmind/mujoco/main/doc/images/changelog/speculative_advancement_light.svg"><img src="https://raw.githubusercontent.com/google-deepmind/mujoco/main/doc/images/changelog/speculative_advancement_light.svg" width="50%" align="right"></picture></a> ## Significant new features 1. [`89daf8d19`](https://github.com/google-deepmind/mujoco/commit/89daf8d19) Added the [speculative](https://mujoco.readthedocs.io/en/stable/XMLreference.html#option-flag-speculative) enable flag

  2. 3.17.03.17.0Oct 22, 20268.2K downloads

    # Version 3.17.0 (October 22, 2026) ## Significant new features 1. [`c00ed8153`](https://github.com/google-deepmind/mujoco/commit/c00ed8153) Added a [batch API](https://mujoco.readthedocs.io/en/stable/programming/simulation.html#siBatch) in `mujoco/mjbatch.h` (in Python as [mujoco.batch](https://mujoco.readthedocs.io/en/stable/python.html#PyBatch)): many simulations of one model stepped on a thread pool of its own, each held as its integration state and loaded into an `mjData` for each call, so memory scales with threads and results are bit-identical to a plain loop at any thread count. It supports per-simulation model and option fields or models of the caller's, observations of the state after a step, recorded trajectories, persistent simulations (required for sleep), and arbitrary per-simulation functions. Follows the design of [mjbatch](https://github.com/kevinzakka/mjbatch) by [@kevinzakka](https://github.com/kevinzakka). ## Engine 2. Flex improvements: - [`94483e166`](https://github.com/google-deepmind/mujoco/commit/94483e166) Added bending [elasticity](https://mujoco.readthedocs.io/en/stable/XMLreference.html#flex-elasticity) for 1D f

  3. 3.16.03.16.0Oct 14, 20266.9K downloads

    # Version 3.16.0 (October 14, 2026) ## Significant new features 1. [`cf89a6375`](https://github.com/google-deepmind/mujoco/commit/cf89a6375), [`4316935b3`](https://github.com/google-deepmind/mujoco/commit/4316935b3), [`6d98d9fab`](https://github.com/google-deepmind/mujoco/commit/6d98d9fab), [`5f17e92eb`](https://github.com/google-deepmind/mujoco/commit/5f17e92eb), [`89d59b11f`](https://github.com/google-deepmind/mujoco/commit/89d59b11f), [`147dc67d0`](https://github.com/google-deepmind/mujoco/commit/147dc67d0) [Frames](https://mujoco.readthedocs.io/en/stable/XMLreference.html#frame) can now scale their contents at compile time—without modifying the [`mjSpec`](https://mujoco.readthedocs.io/en/stable/APIreference/APItypes.html#mjSpec)—via the new [scale](https://mujoco.readthedocs.io/en/stable/XMLreference.html#frame-scale), [scaling](https://mujoco.readthedocs.io/en/stable/XMLreference.html#frame-scaling), and [massscale](https://mujoco.readthedocs.io/en/stable/XMLreference.html#frame-massscale) attributes. The default `similar` policy scales all physical quantities so that dynamics are preserved under proportionally scaled gravity, whereas `geometry` scales on

  4. 3.15.03.15.0Oct 5, 202611.7K downloads

    # Version 3.15.0 (October 5, 2026) ## General 1. [`1aa68e1ca`](https://github.com/google-deepmind/mujoco/commit/1aa68e1ca) [.mjz](https://mujoco.readthedocs.io/en/stable/programming/modeledit.html#MJZArchives) archives written on Windows now always use `/` separators. 2. [`1aa68e1ca`](https://github.com/google-deepmind/mujoco/commit/1aa68e1ca) Assets in a [meshdir](https://mujoco.readthedocs.io/en/stable/XMLreference.html#compiler-meshdir) or [texturedir](https://mujoco.readthedocs.io/en/stable/XMLreference.html#compiler-texturedir) now resolve correctly in [.mjz](https://mujoco.readthedocs.io/en/stable/programming/modeledit.html#MJZArchives) archives when rewritten or when the directory path is absolute, uses `..`, or uses a URI scheme. ## Engine > [!WARNING] > **Breaking API changes** > > 3. [`b3dd9e617`](https://github.com/google-deepmind/mujoco/commit/b3dd9e617) Actuator [dampratio](https://mujoco.readthedocs.io/en/stable/XMLreference.html#actuator-position-dampratio) now computes the reflected inertia > $m$ at `mjModel.qpos0` as the operational-space inertia $(J M^{-1} J^T)^{-1}$ (averaged across force > outputs for multi-output actuators such

  5. 3.14.03.14.0Sep 22, 202619.5K downloads

    # Version 3.14.0 (September 22, 2026) ## General 1. [`458189298`](https://github.com/google-deepmind/mujoco/commit/458189298) Added the `ipc` [flag](https://mujoco.readthedocs.io/en/stable/XMLreference.html#option-flag-ipc), an experimental contact mode of the `discrete` integrator for penetration-free flex contact. Each step minimizes an incremental potential subject to linearized contact constraints, using a barrier-free augmented Lagrangian whose subproblems are the discrete solve. Every committed position update is verified intersection-free by continuous collision detection, so flex contact cannot tunnel. Supported for dim-2 flexes: a flex with edge equality constraints keeps its elasticity in the constraint solver, while `elastic2d` elasticity is integrated implicitly through the effective metric. The contacts the mode resolves are frictionless. The mode keeps contact multipliers across steps that no state specification covers, so `mj_getState`/`mj_setState` do not capture its full state and exact replay is not supported. 2. [`2fec92237`](https://github.com/google-deepmind/mujoco/commit/2fec92237) Introduced [archive resource providers](ht

Code frequency

additions and deletions
+84K-84KWeek of 2025-11-16: +13,420 linesWeek of 2025-11-16: -13,020 linesWeek of 2025-11-23: +15,462 linesWeek of 2025-11-23: -14,990 linesWeek of 2025-11-30: +4,784 linesWeek of 2025-11-30: -4,269 linesWeek of 2025-12-07: +3,091 linesWeek of 2025-12-07: -1,271 linesWeek of 2025-12-14: +15,354 linesWeek of 2025-12-14: -1,574 linesWeek of 2025-12-21: +1,795 linesWeek of 2025-12-21: -721 linesWeek of 2025-12-28: +162 linesWeek of 2025-12-28: -141 linesWeek of 2026-01-04: +14,044 linesWeek of 2026-01-04: -9,305 linesWeek of 2026-01-11: +5,495 linesWeek of 2026-01-11: -2,558 linesWeek of 2026-01-18: +3,790 linesWeek of 2026-01-18: -1,309 linesWeek of 2026-01-25: +6,173 linesWeek of 2026-01-25: -3,852 linesWeek of 2026-02-01: +20,372 linesWeek of 2026-02-01: -992 linesWeek of 2026-02-08: +14,854 linesWeek of 2026-02-08: -6,729 linesWeek of 2026-02-15: +3,435 linesWeek of 2026-02-15: -1,664 linesWeek of 2026-02-22: +7,473 linesWeek of 2026-02-22: -3,440 linesWeek of 2026-03-01: +39,667 linesWeek of 2026-03-01: -37,875 linesWeek of 2026-03-08: +3,022 linesWeek of 2026-03-08: -1,066 linesWeek of 2026-03-15: +17,555 linesWeek of 2026-03-15: -12,039 linesWeek of 2026-03-22: +2,561 linesWeek of 2026-03-22: -908 linesWeek of 2026-03-29: +13,568 linesWeek of 2026-03-29: -6,273 linesWeek of 2026-04-05: +16,296 linesWeek of 2026-04-05: -15,531 linesWeek of 2026-04-12: +16,625 linesWeek of 2026-04-12: -12,598 linesWeek of 2026-04-19: +10,162 linesWeek of 2026-04-19: -6,462 linesWeek of 2026-04-26: +5,697 linesWeek of 2026-04-26: -2,389 linesWeek of 2026-05-03: +10,133 linesWeek of 2026-05-03: -5,424 linesWeek of 2026-05-10: +4,357 linesWeek of 2026-05-10: -2,491 linesWeek of 2026-05-17: +8,154 linesWeek of 2026-05-17: -3,853 linesWeek of 2026-05-24: +10,977 linesWeek of 2026-05-24: -4,054 linesWeek of 2026-05-31: +11,561 linesWeek of 2026-05-31: -3,763 linesWeek of 2026-06-07: +17,878 linesWeek of 2026-06-07: -12,919 linesWeek of 2026-06-14: +7,249 linesWeek of 2026-06-14: -3,565 linesWeek of 2026-06-21: +11,255 linesWeek of 2026-06-21: -10,346 linesWeek of 2026-06-28: +25,623 linesWeek of 2026-06-28: -17,897 linesWeek of 2026-07-05: +8,219 linesWeek of 2026-07-05: -3,167 linesWeek of 2026-07-12: +10,982 linesWeek of 2026-07-12: -3,764 linesWeek of 2026-07-19: +7,541 linesWeek of 2026-07-19: -3,922 linesWeek of 2026-07-26: +29,115 linesWeek of 2026-07-26: -1,069 linesWeek of 2026-08-02: +32,249 linesWeek of 2026-08-02: -12,048 linesWeek of 2026-08-09: +8,239 linesWeek of 2026-08-09: -6,080 linesWeek of 2026-08-16: +9,137 linesWeek of 2026-08-16: -7,500 linesWeek of 2026-08-23: +14,764 linesWeek of 2026-08-23: -12,537 linesWeek of 2026-08-30: +26,839 linesWeek of 2026-08-30: -20,821 linesWeek of 2026-09-06: +14,284 linesWeek of 2026-09-06: -2,553 linesWeek of 2026-09-13: +9,917 linesWeek of 2026-09-13: -5,505 linesWeek of 2026-09-20: +10,360 linesWeek of 2026-09-20: -5,417 linesWeek of 2026-09-27: +12,545 linesWeek of 2026-09-27: -2,568 linesWeek of 2026-10-04: +49,374 linesWeek of 2026-10-04: -12,898 linesWeek of 2026-10-11: +30,614 linesWeek of 2026-10-11: -8,315 linesWeek of 2026-10-18: +71,185 linesWeek of 2026-10-18: -6,768 linesWeek of 2026-10-25: +84,006 linesWeek of 2026-10-25: -65,202 linesWeek of 2026-11-01: +73,773 linesWeek of 2026-11-01: -40,878 linesWeek of 2026-11-08: +264 linesWeek of 2026-11-08: -191 linesNov 16, 2025Nov 8, 2026
+865.5K lines added, -446.5K removed over the last year.

Commits per week

last 52 weeks
1840Week of 2025-11-16: 33 commitsWeek of 2025-11-23: 46 commitsWeek of 2025-11-30: 39 commitsWeek of 2025-12-07: 38 commitsWeek of 2025-12-14: 26 commitsWeek of 2025-12-21: 12 commitsWeek of 2025-12-28: 6 commitsWeek of 2026-01-04: 32 commitsWeek of 2026-01-11: 33 commitsWeek of 2026-01-18: 26 commitsWeek of 2026-01-25: 46 commitsWeek of 2026-02-01: 38 commitsWeek of 2026-02-08: 55 commitsWeek of 2026-02-15: 51 commitsWeek of 2026-02-22: 54 commitsWeek of 2026-03-01: 38 commitsWeek of 2026-03-08: 43 commitsWeek of 2026-03-15: 47 commitsWeek of 2026-03-22: 28 commitsWeek of 2026-03-29: 19 commitsWeek of 2026-04-05: 30 commitsWeek of 2026-04-12: 46 commitsWeek of 2026-04-19: 59 commitsWeek of 2026-04-26: 42 commitsWeek of 2026-05-03: 56 commitsWeek of 2026-05-10: 42 commitsWeek of 2026-05-17: 38 commitsWeek of 2026-05-24: 43 commitsWeek of 2026-05-31: 38 commitsWeek of 2026-06-07: 69 commitsWeek of 2026-06-14: 51 commitsWeek of 2026-06-21: 41 commitsWeek of 2026-06-28: 52 commitsWeek of 2026-07-05: 41 commitsWeek of 2026-07-12: 44 commitsWeek of 2026-07-19: 42 commitsWeek of 2026-07-26: 44 commitsWeek of 2026-08-02: 45 commitsWeek of 2026-08-09: 16 commitsWeek of 2026-08-16: 51 commitsWeek of 2026-08-23: 66 commitsWeek of 2026-08-30: 52 commitsWeek of 2026-09-06: 72 commitsWeek of 2026-09-13: 67 commitsWeek of 2026-09-20: 73 commitsWeek of 2026-09-27: 53 commitsWeek of 2026-10-04: 148 commitsWeek of 2026-10-11: 108 commitsWeek of 2026-10-18: 139 commitsWeek of 2026-10-25: 110 commitsWeek of 2026-11-01: 184 commitsWeek of 2026-11-08: 5 commitsNov 16, 2025Nov 8, 2026
2.7K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 5 commitsSun 1:00 — 12 commitsSun 2:00 — 9 commitsSun 3:00 — 11 commitsSun 4:00 — 10 commitsSun 5:00 — 12 commitsSun 6:00 — 7 commitsSun 7:00 — 13 commitsSun 8:00 — 14 commitsSun 9:00 — 8 commitsSun 10:00 — 12 commitsSun 11:00 — 21 commitsSun 12:00 — 14 commitsSun 13:00 — 7 commitsSun 14:00 — 32 commitsSun 15:00 — 13 commitsSun 16:00 — 12 commitsSun 17:00 — 6 commitsSun 18:00 — 3 commitsSun 19:00 — 3 commitsSun 20:00 — 11 commitsSun 21:00 — 7 commitsSun 22:00 — 12 commitsSun 23:00 — 12 commitsMon 0:00 — 12 commitsMon 1:00 — 44 commitsMon 2:00 — 80 commitsMon 3:00 — 85 commitsMon 4:00 — 80 commitsMon 5:00 — 76 commitsMon 6:00 — 93 commitsMon 7:00 — 108 commitsMon 8:00 — 101 commitsMon 9:00 — 82 commitsMon 10:00 — 100 commitsMon 11:00 — 75 commitsMon 12:00 — 56 commitsMon 13:00 — 45 commitsMon 14:00 — 43 commitsMon 15:00 — 37 commitsMon 16:00 — 20 commitsMon 17:00 — 22 commitsMon 18:00 — 24 commitsMon 19:00 — 7 commitsMon 20:00 — 10 commitsMon 21:00 — 6 commitsMon 22:00 — 6 commitsMon 23:00 — 11 commitsTue 0:00 — 18 commitsTue 1:00 — 34 commitsTue 2:00 — 59 commitsTue 3:00 — 84 commitsTue 4:00 — 73 commitsTue 5:00 — 80 commitsTue 6:00 — 87 commitsTue 7:00 — 103 commitsTue 8:00 — 122 commitsTue 9:00 — 110 commitsTue 10:00 — 98 commitsTue 11:00 — 55 commitsTue 12:00 — 56 commitsTue 13:00 — 35 commitsTue 14:00 — 48 commitsTue 15:00 — 43 commitsTue 16:00 — 32 commitsTue 17:00 — 9 commitsTue 18:00 — 12 commitsTue 19:00 — 6 commitsTue 20:00 — 7 commitsTue 21:00 — 4 commitsTue 22:00 — 6 commitsTue 23:00 — 16 commitsWed 0:00 — 12 commitsWed 1:00 — 33 commitsWed 2:00 — 59 commitsWed 3:00 — 69 commitsWed 4:00 — 97 commitsWed 5:00 — 79 commitsWed 6:00 — 94 commitsWed 7:00 — 111 commitsWed 8:00 — 99 commitsWed 9:00 — 91 commitsWed 10:00 — 84 commitsWed 11:00 — 71 commitsWed 12:00 — 51 commitsWed 13:00 — 56 commitsWed 14:00 — 43 commitsWed 15:00 — 34 commitsWed 16:00 — 42 commitsWed 17:00 — 17 commitsWed 18:00 — 16 commitsWed 19:00 — 11 commitsWed 20:00 — 5 commitsWed 21:00 — 6 commitsWed 22:00 — 7 commitsWed 23:00 — 16 commitsThu 0:00 — 15 commitsThu 1:00 — 42 commitsThu 2:00 — 40 commitsThu 3:00 — 73 commitsThu 4:00 — 79 commitsThu 5:00 — 90 commitsThu 6:00 — 98 commitsThu 7:00 — 97 commitsThu 8:00 — 93 commitsThu 9:00 — 92 commitsThu 10:00 — 73 commitsThu 11:00 — 50 commitsThu 12:00 — 49 commitsThu 13:00 — 36 commitsThu 14:00 — 40 commitsThu 15:00 — 29 commitsThu 16:00 — 31 commitsThu 17:00 — 21 commitsThu 18:00 — 9 commitsThu 19:00 — 11 commitsThu 20:00 — 6 commitsThu 21:00 — 7 commitsThu 22:00 — 7 commitsThu 23:00 — 9 commitsFri 0:00 — 24 commitsFri 1:00 — 35 commitsFri 2:00 — 53 commitsFri 3:00 — 56 commitsFri 4:00 — 69 commitsFri 5:00 — 69 commitsFri 6:00 — 72 commitsFri 7:00 — 87 commitsFri 8:00 — 90 commitsFri 9:00 — 78 commitsFri 10:00 — 66 commitsFri 11:00 — 48 commitsFri 12:00 — 44 commitsFri 13:00 — 31 commitsFri 14:00 — 34 commitsFri 15:00 — 29 commitsFri 16:00 — 30 commitsFri 17:00 — 17 commitsFri 18:00 — 18 commitsFri 19:00 — 5 commitsFri 20:00 — 5 commitsFri 21:00 — 4 commitsFri 22:00 — 7 commitsFri 23:00 — 2 commitsSat 0:00 — 9 commitsSat 1:00 — 10 commitsSat 2:00 — 9 commitsSat 3:00 — 17 commitsSat 4:00 — 11 commitsSat 5:00 — 14 commitsSat 6:00 — 12 commitsSat 7:00 — 16 commitsSat 8:00 — 13 commitsSat 9:00 — 13 commitsSat 10:00 — 7 commitsSat 11:00 — 11 commitsSat 12:00 — 7 commitsSat 13:00 — 14 commitsSat 14:00 — 14 commitsSat 15:00 — 7 commitsSat 16:00 — 14 commitsSat 17:00 — 8 commitsSat 18:00 — 3 commitsSat 19:00 — 10 commitsSat 20:00 — 3 commitsSat 21:00 — 5 commitsSat 22:00 — 6 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Nov 9, 2026daily#4+579