Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
abd8f9e
Update pre-commit config
deruyter92 Feb 23, 2026
9d8dfb2
Update pyproject.toml with new linting
deruyter92 Feb 23, 2026
3fcc070
add linting CI workflow
deruyter92 Feb 23, 2026
8e65bd6
Reformat codebase: `ruff format . --config pyproject.toml`
deruyter92 Mar 16, 2026
9785d7a
Update pre-commit hooks and add docformatter
C-Achard Mar 16, 2026
3362a7c
Add Ruff JSON to Markdown report tool
C-Achard Mar 16, 2026
6a140e8
Add tool to auto-fix E501 line-lengths
C-Achard Mar 17, 2026
67eeb2b
Run autopep8 script to fix errors automatically
C-Achard Mar 17, 2026
e6a4637
Enforce docstrings length and robustness in zips/warnings
C-Achard Mar 17, 2026
6037535
Remove ruff-report and ignore tool output
C-Achard Mar 17, 2026
68c6128
Refactor __init__: lazy-load optional APIs
C-Achard Mar 17, 2026
918fdb9
Re-run line length fixes
C-Achard Mar 17, 2026
f1b715a
Fix window.py
C-Achard Mar 17, 2026
65dc094
Remove unused imports
C-Achard Mar 17, 2026
6936d1c
Fix TF train.py
C-Achard Mar 17, 2026
ea0fa8e
Fix missing imports
C-Achard Mar 17, 2026
4d0980d
Update trackingutils.py
C-Achard Mar 17, 2026
9c96845
Update test_transforms.py
C-Achard Mar 17, 2026
c76dccb
Update multi.py
C-Achard Mar 17, 2026
b443036
Fix missing variables
C-Achard Mar 17, 2026
6273683
Update bare except:
C-Achard Mar 17, 2026
cd37a7b
Disable line too long and add specific exclusions
C-Achard Mar 17, 2026
57bfbe8
Update testscript_cli.py
C-Achard Mar 17, 2026
2440b58
Disable minor loop variable check
C-Achard Mar 17, 2026
b4a8321
Fix old-style string format
C-Achard Mar 18, 2026
102cbbe
Add strict zip
C-Achard Mar 18, 2026
5e54292
Update ruff_report.py
C-Achard Mar 18, 2026
0e0cf95
Raise from/bare except
C-Achard Mar 18, 2026
72f2282
Top level imports
C-Achard Mar 18, 2026
869a24f
Revert "Update ruff_report.py"
C-Achard Mar 18, 2026
0616ddb
Warning stacklevel
C-Achard Mar 18, 2026
c23791c
Raise from + bind loop variable in def
C-Achard Mar 18, 2026
3d5488d
Unused variables
C-Achard Mar 18, 2026
f5f9bd9
Fix broken string
C-Achard Mar 18, 2026
f93dc3e
Mutable defaults
C-Achard Mar 18, 2026
9692954
ABC fixes
C-Achard Mar 18, 2026
589b41b
isinstance
C-Achard Mar 18, 2026
2dd7ed5
Various fixes
C-Achard Mar 18, 2026
e073512
Fix invalid escaped str
C-Achard Mar 18, 2026
f62a76b
Add note about broken escaped f-strings
C-Achard Mar 18, 2026
c6d3896
Fix broken strings
C-Achard Mar 18, 2026
d67ad46
Add Ruff cleanup helper documentation
C-Achard Mar 18, 2026
07e50a8
Add import cycle detector script
C-Achard Mar 18, 2026
59d9514
Fix circular imports
C-Achard Mar 18, 2026
e22ee47
Import checkcropping only when needed
C-Achard Mar 18, 2026
9b61e25
Re-run pre-commit on all
C-Achard Mar 18, 2026
980a44d
Rename test file to test_bottom_up.py
C-Achard Mar 18, 2026
de70222
Fix zip args
C-Achard Mar 18, 2026
d83cb0e
Update bottom-up runner test to new APIs
C-Achard Mar 18, 2026
9d4c6cc
Use local template config in bottom-up test
C-Achard Mar 18, 2026
3d7b645
Tighten video path assertion and add logs
C-Achard Mar 18, 2026
70ff090
Remove outdated test code
C-Achard Mar 18, 2026
06ab7d3
Update bottom-up test to new runner API
C-Achard Mar 18, 2026
962deeb
Init endpoints dict and merge block endpoints
C-Achard Mar 18, 2026
b58daed
Refine and split pre-commit hook stages
C-Achard Mar 18, 2026
ddfaecd
Add docformatter CI hook and name fix hook
C-Achard Mar 18, 2026
d514260
Fix E501 line too long
C-Achard Mar 18, 2026
d81bf5e
Disable docformatter pre-commit; enforce E501
C-Achard Mar 18, 2026
467180b
Fix E501
C-Achard Mar 18, 2026
9ecd4c7
Fix E501
C-Achard Mar 18, 2026
390cccd
Fix E501
C-Achard Mar 18, 2026
79b7158
Use FileLock and sentinel for test data setup
C-Achard Mar 18, 2026
b812122
Use autouse session fixture to ensure test data
C-Achard Mar 18, 2026
50a1faa
Fix E501
C-Achard Mar 18, 2026
19ba363
Update trainingsetmanipulation.py
C-Achard Mar 18, 2026
6053728
Fix E501
C-Achard Mar 18, 2026
e95c991
Fix E501
C-Achard Mar 18, 2026
6d66fef
Fix E501
C-Achard Mar 18, 2026
0a7817f
Fix E501
C-Achard Mar 18, 2026
08445c3
CI: add Ruff report and detect changed Python files
C-Achard Mar 18, 2026
5858257
adjust line length to max 120 for ~75 files (#3248)
deruyter92 Mar 18, 2026
2c3e98b
Fix E501
C-Achard Mar 18, 2026
0a72d35
Merge branch 'main' into jaap/reformat_codebase
C-Achard Mar 19, 2026
7a06b27
fix direct call of abstract base method in ctd.py
deruyter92 Mar 19, 2026
87a34d7
Merge remote-tracking branch 'upstream/main' into jaap/reformat_codebase
deruyter92 Mar 20, 2026
ee65c6c
move ruff_cleanup_helpers documentation to separate file
deruyter92 Mar 20, 2026
8807c41
Apply linting to newest commits (intellligent CI and inference helpers)
deruyter92 Mar 20, 2026
4fd852d
Update pre-commit & linting configuration (#3215)
deruyter92 Mar 20, 2026
a43562a
Merge remote-tracking branch 'origin/main' into jaap/reformat_codebase
C-Achard Mar 23, 2026
5bfdd39
Run pre-commit on latest
C-Achard Mar 23, 2026
8fd910a
Fix mutable default for config_kwargs
C-Achard Mar 23, 2026
b183029
Refactor fmpose3d inference formatting
C-Achard Mar 23, 2026
d19eb98
Remove temporary yapf config from pyproject
C-Achard Mar 23, 2026
6e21fe2
Merge branch 'main' into jaap/reformat_codebase
C-Achard Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/versioning/tf-ci-constraints.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
protobuf<7
protobuf<7
116 changes: 116 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: pre-commit (PR only on changed files)

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
detect_changes:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.changed_files.outputs.changed }}
changed_python: ${{ steps.changed_python.outputs.changed_python }}

steps:
- name: Checkout full history
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Detect changed files
id: changed_files
run: |
git fetch origin ${{ github.base_ref }}
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)

{
echo "changed<<EOF"
echo "$CHANGED_FILES"
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Detect changed Python files
id: changed_python
run: |
git fetch origin ${{ github.base_ref }}
CHANGED_PYTHON=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.(py|pyi|ipynb)$' || true)

{
echo "changed_python<<EOF"
echo "$CHANGED_PYTHON"
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Show changed files
run: |
echo "Changed files:"
echo "${{ steps.changed_files.outputs.changed }}"

echo
echo "Changed Python files:"
echo "${{ steps.changed_python.outputs.changed_python }}"

precommit:
needs: detect_changes
runs-on: ubuntu-latest
if: ${{ needs.detect_changes.outputs.changed != '' }}

steps:
- name: Checkout PR branch
uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ github.head_ref }}

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Install tooling
run: pip install pre-commit ruff

- name: Run pre-commit (CI check-only stage) on changed files
id: precommit_run
continue-on-error: true
env:
CHANGED_FILES: ${{ needs.detect_changes.outputs.changed }}
run: |
mapfile -t files <<< "$CHANGED_FILES"
pre-commit run --hook-stage manual --files "${files[@]}" --show-diff-on-failure

- name: Generate Ruff Markdown report
id: ruff_report
if: ${{ always() && needs.detect_changes.outputs.changed_python != '' }}
env:
CHANGED_PYTHON: ${{ needs.detect_changes.outputs.changed_python }}
run: |
mkdir -p tmp
mapfile -t pyfiles <<< "$CHANGED_PYTHON"
python tools/ruff_report.py "${pyfiles[@]}" --output tmp/ruff-report.md

- name: Add short Ruff report to GitHub Actions summary
if: ${{ always() && steps.precommit_run.outcome == 'failure' && needs.detect_changes.outputs.changed_python != '' }}
run: |
{
echo "# Lint summary"
echo
echo "## Ruff report (top section)"
echo
sed -n '1,80p' tmp/ruff-report.md
echo
echo "_Full report uploaded as workflow artifact: `ruff-report`_"
} >> "$GITHUB_STEP_SUMMARY"

- name: Upload Ruff report artifact
if: ${{ always() && needs.detect_changes.outputs.changed_python != '' }}
uses: actions/upload-artifact@v6
with:
name: ruff-report
path: tmp/ruff-report.md

- name: Fail job if pre-commit failed
if: ${{ steps.precommit_run.outcome == 'failure' }}
run: |
echo "pre-commit reported failures"
exit 1
2 changes: 1 addition & 1 deletion .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
- name: Set up Python
uses: conda-incubator/setup-miniconda@v3
with:
channels: conda-forge,defaults
channels: conda-forge
channel-priority: strict
python-version: ${{ matrix.python-version }}

Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,12 @@ ENV/
# mypy
.mypy_cache/

# Tools output
tmp/*

# Test data
tests/data/*

# Automated docs checks
**/tmp/docs_nb_checks/

Expand Down
80 changes: 69 additions & 11 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,88 @@
default_stages: [pre-commit]

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v6.0.0
hooks:
# These are safe to run in both local & CI (they don't require "fix vs check" split)
- id: check-added-large-files
stages: [pre-commit, manual]
- id: check-yaml
stages: [pre-commit, manual]
- id: check-toml
- id: end-of-file-fixer
stages: [pre-commit, manual]
- id: check-merge-conflict
stages: [pre-commit, manual]
- id: name-tests-test
args: [--pytest-test-first]
stages: [pre-commit, manual]

# These modify files. Run locally only (pre-commit stage).
- id: end-of-file-fixer
stages: [pre-commit]
- id: trailing-whitespace
stages: [pre-commit]

- repo: https://github.com/tox-dev/pyproject-fmt
rev: v2.15.2
rev: v2.19.0
hooks:
- id: pyproject-fmt
stages: [pre-commit] # modifies -> local only

- repo: https://github.com/abravalheri/validate-pyproject
rev: v0.25
hooks:
- id: validate-pyproject
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 22.3.0
stages: [pre-commit, manual]

# NOTE: @C-Achard 2026-03-18 disabled for now
# It had its use in introducing and enforcing linting, especially for docstrings
# but now ruff should be our de-facto linter.
# Only re-enable if we end up requiring large-scale docstring reformatting
# or we need some features from this in the future
# - repo: https://github.com/PyCQA/docformatter
# rev: v1.7.7
# hooks:
# - id: docformatter
# name: docformatter (fix)
# args: [--wrap-descriptions=88, --wrap-summaries=88, --in-place, --black]
# stages: [pre-commit]

# - id: docformatter
# name: docformatter (ci)
# args: [--wrap-descriptions=88, --wrap-summaries=88, --check, --black]
# stages: [manual]


- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.6
hooks:
- id: black
language_version: python3
# --------------------------
# LOCAL AUTOFIX (developers)
# --------------------------
- id: ruff-check
name: ruff-check (fix)
args: [--fix, --unsafe-fixes]
stages: [pre-commit]

- id: ruff-format
name: ruff-format (write)
stages: [pre-commit]

# --------------------------
# CI CHECK-ONLY (no writes)
# --------------------------
- id: ruff-check
name: ruff-check (ci)
args: [--output-format=github]
stages: [manual]

- id: ruff-format
name: ruff-format (ci)
args: [--check, --diff]
stages: [manual]

# check only, no modifications
- repo: local
hooks:
- id: dlc-docs-notebooks-check
Expand All @@ -43,3 +100,4 @@ repos:
- "pydantic>=2,<3"
- "pyyaml"
- "nbformat>=5"
stages: [pre-commit, manual]
1 change: 0 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -163,4 +163,3 @@ whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

2 changes: 1 addition & 1 deletion NOTICE.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
- deeplabcut/pose_tracking_pytorch/solver/scheduler_factory.py
- deeplabcut/pose_tracking_pytorch/model/backones/vit_pytorch.py

# PyTorch license
# PyTorch license

- header: |
See https://github.com/pytorch/pytorch/blob/main/LICENSE
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<div align="center">


<p align="center">
<img src="https://images.squarespace-cdn.com/content/v1/57f6d51c9f74566f55ecf271/1628250004229-KVYD7JJVHYEFDJ32L9VJ/DLClogo2021.jpg?format=1000w" width="95%">
Expand All @@ -8,7 +8,7 @@
<p align="center">

<img src="https://images.squarespace-cdn.com/content/v1/57f6d51c9f74566f55ecf271/1619609897110-TKSTWKEM6HTGXID9D489/ke17ZwdGBToddI8pDm48kAvjv6tW_eojYQmNU0ncbllZw-zPPgdn4jUwVcJE1ZvWEtT5uBSRWt4vQZAgTJucoTqqXjS3CfNDSuuf31e0tVHBSTXHtjUKlhRtWJ1Vo6l1B2bxJtByvWSjL6Vz3amc5yb8BodarTVrzIWCp72ioWw/triMouseDLC.gif?format=180w" height="150">


<img src="https://images.squarespace-cdn.com/content/v1/57f6d51c9f74566f55ecf271/daed7f16-527f-4150-8bdd-cbb20e267451/cheetah-ezgif.com-video-to-gif-converter.gif?format=180w" height="150">

Expand All @@ -18,7 +18,7 @@







Expand All @@ -27,13 +27,13 @@
[🌎 Home Page](https://www.deeplabcut.org) |
[🐿🐴🐁🐘🐆 Model Zoo](http://www.mackenziemathislab.org/deeplabcut/) |
[🚨 News](https://deeplabcut.github.io/DeepLabCut/README.html#news-and-in-the-news) |
[🪲 Reporting Issues](https://github.com/DeepLabCut/DeepLabCut/issues)
[🪲 Reporting Issues](https://github.com/DeepLabCut/DeepLabCut/issues)


[🫶 Getting Assistance](https://deeplabcut.github.io/DeepLabCut/README.html#be-part-of-the-dlc-community) |
[∞ DeepLabCut Online Course](https://github.com/DeepLabCut/DeepLabCut-Workshop-Materials/blob/master/DLCcourse.md) |
[📝 Publications](https://deeplabcut.github.io/DeepLabCut/README.html#references) |
[👩🏾‍💻👨‍💻 DeepLabCut AI Residency](https://www.deeplabcutairesidency.org/)
[🫶 Getting Assistance](https://deeplabcut.github.io/DeepLabCut/README.html#be-part-of-the-dlc-community) |
[∞ DeepLabCut Online Course](https://github.com/DeepLabCut/DeepLabCut-Workshop-Materials/blob/master/DLCcourse.md) |
[📝 Publications](https://deeplabcut.github.io/DeepLabCut/README.html#references) |
[👩🏾‍💻👨‍💻 DeepLabCut AI Residency](https://www.deeplabcutairesidency.org/)


![Version](https://img.shields.io/badge/python_version-3.10-purple)
Expand All @@ -55,15 +55,15 @@

# Welcome! 👋

**DeepLabCut™️** is a toolbox for state-of-the-art markerless pose estimation of animals performing various behaviors. As long as you can see (label) what you want to track, you can use this toolbox, as it is animal and object agnostic. [Read a short development and application summary below](https://github.com/DeepLabCut/DeepLabCut#why-use-deeplabcut).
**DeepLabCut™️** is a toolbox for state-of-the-art markerless pose estimation of animals performing various behaviors. As long as you can see (label) what you want to track, you can use this toolbox, as it is animal and object agnostic. [Read a short development and application summary below](https://github.com/DeepLabCut/DeepLabCut#why-use-deeplabcut).

# [Installation: how to install DeepLabCut](https://deeplabcut.github.io/DeepLabCut/docs/installation.html)

Please click the link above for all the information you need to get started! Please note that currently we support only Python 3.10+ (see conda files for guidance).

## Quick start

Developers Stable Release: very quick start (Python 3.10+ required) to install
Developers Stable Release: very quick start (Python 3.10+ required) to install
DeepLabCut with the PyTorch engine

- [1] [Install PyTorch](https://pytorch.org/get-started/locally/) (**install and then select the desired
Expand All @@ -77,15 +77,15 @@ conda install pytorch cudatoolkit=11.3 -c pytorch
```bash
pip install --pre "deeplabcut[gui]"
```
or `pip install --pre "deeplabcut"` (headless
or `pip install --pre "deeplabcut"` (headless
version with PyTorch)!

To use the TensorFlow (TF) engine (requires Python 3.10; TF up to v2.10 supported on Windows,
up to v2.12 on other platforms): you'll need to run `pip install "deeplabcut[gui,tf]"`
up to v2.12 on other platforms): you'll need to run `pip install "deeplabcut[gui,tf]"`
(which includes all functions plus GUIs) or `pip install "deeplabcut[tf]"` (headless
version with PyTorch and TensorFlow). We aim to depreciate the TF part in 2027.

We recommend using our conda file, see [here](https://github.com/DeepLabCut/DeepLabCut/blob/main/conda-environments/README.md) or the [`deeplabcut-docker` package](https://github.com/DeepLabCut/DeepLabCut/tree/main/docker).
We recommend using our conda file, see [here](https://github.com/DeepLabCut/DeepLabCut/blob/main/conda-environments/README.md) or the [`deeplabcut-docker` package](https://github.com/DeepLabCut/DeepLabCut/tree/main/docker).

# [Documentation: The DeepLabCut Process](https://deeplabcut.github.io/DeepLabCut/README.html)

Expand All @@ -105,11 +105,11 @@ See [more demos here](https://github.com/DeepLabCut/DeepLabCut/blob/main/example

# Why use DeepLabCut?

DeepLabCut continues to be actively maintained and we strive to provide a user-friendly `GUI` and `API` for computer vision researchers and life scientists alike. This means we integrate state-of-the-art models and frameworks, while providing our "best-guess" defaults for life scientists. We highly encourage you to read our papers to get a better understanding of what to use and how to modify the models for your setting.
DeepLabCut continues to be actively maintained and we strive to provide a user-friendly `GUI` and `API` for computer vision researchers and life scientists alike. This means we integrate state-of-the-art models and frameworks, while providing our "best-guess" defaults for life scientists. We highly encourage you to read our papers to get a better understanding of what to use and how to modify the models for your setting.

## Performance 🔥

In general, we provide all the tooling for you to train and use custom models with various high-performance backbones.
In general, we provide all the tooling for you to train and use custom models with various high-performance backbones.
We also provide two foundation pretrained animal models: `SuperAnimal-Quadruped`, `SuperAnimal-TopViewMouse`. To gauge their *out-of-distribution* performance, we provide the following tables.

These models are trained on the [SuperAnimal-Quadruped with AP-10K held out for out-of-domain testing]([https://cocodataset.org/](https://www.nature.com/articles/s41467-024-48792-2)) and the [SuperAnimal-TopViewMouse with DLC-openfield held out for out-of-distribution testing](https://www.nature.com/articles/s41467-024-48792-2). We provide models that include AP-10K in the API (and GUI).
Expand Down Expand Up @@ -139,7 +139,7 @@ We currently provide state-of-the-art performance for animal pose estimation and
<p align="center">
<img src="https://static1.squarespace.com/static/57f6d51c9f74566f55ecf271/t/5c3e47258a922d548c483247/1547585339819/ErrorvsTrainingsetSize.png?format=750w" height="160">
<img src="https://static1.squarespace.com/static/57f6d51c9f74566f55ecf271/t/5c3e469d8a922d548c4828fa/1547585194560/compressionrobustness.png?format=750w" height="160">
<img src="https://static1.squarespace.com/static/57f6d51c9f74566f55ecf271/t/5c3fbed74fa51acecd63deeb/1547681534736/MouseLocomotion_warren.gif?format=500w" height="160">
<img src="https://static1.squarespace.com/static/57f6d51c9f74566f55ecf271/t/5c3fbed74fa51acecd63deeb/1547681534736/MouseLocomotion_warren.gif?format=500w" height="160">
<img src="https://static1.squarespace.com/static/57f6d51c9f74566f55ecf271/t/5c3fc1c6758d46950ce7eec7/1547682383595/cheetah.png?format=750w" height="160">
</p>

Expand Down Expand Up @@ -169,7 +169,7 @@ DeepLabCut is an open-source tool and has benefited from suggestions and edits b
|------------------------------------------------------------|-----------------------------------------------------------------------------|---------------------------|----------------------------------------|
| GitHub DeepLabCut/[Issues](https://github.com/DeepLabCut/DeepLabCut/issues) | To report bugs and code issues🐛 (we encourage you to search issues first) | 2-5 days | DLC Core Dev Team |
| GitHub DeepLabCut/[Contributing](https://github.com/DeepLabCut/DeepLabCut/blob/master/CONTRIBUTING.md) | To contribute your expertise and experience🙏💯 | 2-5 days | DLC Core Dev Team |
| 🚧 GitHub DeepLabCut/[Roadmap](https://github.com/DeepLabCut/DeepLabCut/blob/master/docs/roadmap.md) | To learn more about our journey✈️ | N/A | N/A
| 🚧 GitHub DeepLabCut/[Roadmap](https://github.com/DeepLabCut/DeepLabCut/blob/master/docs/roadmap.md) | To learn more about our journey✈️ | N/A | N/A
| [![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&amp;url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fdeeplabcut.json&amp;query=%24.topic_list.tags.0.topic_count&amp;colorB=brightgreen&amp;&amp;suffix=%20topics&amp;logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/deeplabcut) <br /> 🐭Tag: DeepLabCut | To ask help and support questions 👋 | Promptly🔥 | The DLC Community |
|[![Gitter](https://badges.gitter.im/DeepLabCut/community.svg)](https://gitter.im/DeepLabCut/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) | To discuss with other users, share ideas and collaborate💡 | 2-5 days | The DLC Community |
| [BluSky🦋](https://bsky.app/profile/deeplabcut.bsky.social) | To keep up with our latest news and updates 📢 | 2-5 days | DLC Team |
Expand Down Expand Up @@ -217,7 +217,7 @@ VERSION 1.0: The initial, Nature Neuroscience version of [DeepLabCut](https://ww

- June 2024: Our second DLC paper ['Using DeepLabCut for 3D markerless pose estimation across species and behaviors'](https://www.nature.com/articles/s41596-019-0176-0) in Nature Protocols has surpassed 1,000 Google Scholar citations!
- May 2024: DeepLabCut was featured in Nature: ['DeepLabCut: the motion-tracking tool that went viral'](https://www.nature.com/articles/d41586-024-01474-x)
- January 2024: Our original paper ['DeepLabCut: markerless pose estimation of user-defined body parts with deep learning'](https://www.nature.com/articles/s41593-018-0209-y) in Nature Neuroscience has surpassed 3,000 Google Scholar citations!
- January 2024: Our original paper ['DeepLabCut: markerless pose estimation of user-defined body parts with deep learning'](https://www.nature.com/articles/s41593-018-0209-y) in Nature Neuroscience has surpassed 3,000 Google Scholar citations!
- December 2023: DeepLabCut hit 600,000 downloads!
- October 2023: DeepLabCut celebrates a milestone with 4,000 🌟 in Github!
- July 2023: The user forum is very active with more than 1k questions and answers: [![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&amp;url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fdeeplabcut.json&amp;query=%24.topic_list.tags.0.topic_count&amp;colorB=brightgreen&amp;&amp;suffix=%20topics&amp;logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/deeplabcut)
Expand Down
Loading
Loading