Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions docs/Governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ deeplabcut:
last_metadata_updated: '2026-03-06'
ignore: false
---

(governance-model)=

# Governance Model of DeepLabCut

(adapted from https://napari.org/stable/community/governance.html)

## Abstract
Expand Down Expand Up @@ -112,7 +115,7 @@ DeepLabCut uses a “consensus seeking” process for making decisions. The grou
tries to find a resolution that has no open objections among core developers.
Core developers are expected to distinguish between fundamental objections to a
proposal and minor perceived flaws that they can live with, and not hold up the
decision-making process for the latter. If no option can be found without
decision-making process for the latter. If no option can be found without
objections, the decision is escalated to the SC, which will itself use
consensus seeking to come to a resolution. In the unlikely event that there is
still a deadlock, the proposal will move forward if it has the support of a
Expand All @@ -139,7 +142,7 @@ are made according to the following rules:
decision-making process outlined above.

- **Changes to this governance model or our mission, vision, and values**
require a dedicated issue on our [issue tracker](https://github.com/DeepLabCut/DeepLabCut/issues)
require a dedicated issue on our [issue tracker](https://github.com/DeepLabCut/DeepLabCut/issues)
and follow the decision-making process outlined above,
*unless* there is unanimous agreement from core developers on the change in
which case it can move forward faster.
Expand Down
33 changes: 19 additions & 14 deletions docs/HelperFunctions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,27 @@ deeplabcut:
recommendation: archive
notes: I would suggest using API docs over pages like this to avoid drift. The advice below promises updates that are not being made, and the content is already quite outdated. Automating API docs generation and putting usage info for obtaining commands info in ipython in a basic 'evergreen' page would be more sustainable than trying to maintain this page.
---

(helper-functions)=

# Helper & Advanced Optional Function Documentation

There are additional functions that are not required, but can be extremely helpful.

First off, if you are new to Python, you might not know this handy trick: you can see
ALL the functions in deeplabcut by typing ``deeplabcut.`` then hitting "tab." You will see a massive list!
ALL the functions in deeplabcut by typing `deeplabcut.` then hitting "tab." You will see a massive list!

<p align="center">
<img src="https://images.squarespace-cdn.com/content/v1/57f6d51c9f74566f55ecf271/1567907875609-57X4S1LVZWTRJ8GPM34T/ke17ZwdGBToddI8pDm48kKLvSvW2qdCTCjZZgzhLzasUqsxRUqqbr1mOJYKfIPR7LoDQ9mXPOjoJoqy81S2I8N_N4V1vUb5AoIIIbLZhVYxCRW4BPu10St3TBAUQYVKc0_818bg8q0aD7_W_W22OLw0yYD6y1fnQ3mVB6beYNdnbXafewWM7FbBaWqQqcLy-/options.png?format=1000w" width="90%">
</p>

Or perhaps you sort of know the name of the function, but not fully, then you can start typing the command, i.e. as in ``deeplabcut.a `` then hit tab:
Or perhaps you sort of know the name of the function, but not fully, then you can start typing the command, i.e. as in `deeplabcut.a ` then hit tab:

<p align="center">
<img src="https://images.squarespace-cdn.com/content/v1/57f6d51c9f74566f55ecf271/1567907844296-STHTZ2SD6UB5WCVEN2I8/ke17ZwdGBToddI8pDm48kJEw9Z-3B5ptjcdSkknf02DlfiSMXz2YNBs8ylwAJx2qgRUppHe6ToX8uSOdETM-XipuQpH02DE1EkoTaghKW779xRs5veesYFcByqmynT9oByNVWkh1tiIAZLs8gRhPycqbSMdPDHKAvTCdk8NbVnE/optionsA.png?format=1000w" width="90%">
</p>


Now, for any of these functions, you type ``deeplabcut.analyze_videos_converth5_to_csv?`` you get:
Now, for any of these functions, you type `deeplabcut.analyze_videos_converth5_to_csv?` you get:

```text
Signature: deeplabcut.analyze_videos_converth5_to_csv(videopath, videotype='.avi')
Expand Down Expand Up @@ -56,8 +57,7 @@ Only videos with this extension are analyzed. The default is ``.avi``
While some of the names are ridiculously long, we wanted them to be "self-explanatory." Here is a list
(that is bound to be continually updated)
of currently available helper functions. To see information about any of them, including HOW
to use them, use the ``?`` at the end of the call, as described above.

to use them, use the `?` at the end of the call, as described above.

```python
deeplabcut.analyze_videos_converth5_to_csv
Expand Down Expand Up @@ -112,18 +112,23 @@ In order to label with epipolar lines, you must complete two additional sets of
steps 1-3 in [3D Overview](3D-overview).

- Second, you must extract imagr from `camera_1` first; here you would have run the standard `deeplabcut.extract_frames(config_path, userfeedback=True)`, but just extract files from 1 camera. Next, you need to extract matching frames from `camera_2`:

```python
deeplabcut.extract_frames(config_path, mode = 'match', config3d=config_path3d, extracted_cam=0)
```

You can set `extracted_cam=0` to match all other camera images to the frame numbers in the `camera_1` folder, or change this to match to other cameras. If you `deeplabcut.extract_frames` with `mode='automatic'` before, it shouldn't matter which camera you pick. If you already extracted from both cameras, be warned this will overwrite the images for `camera_2`.

- Three, now you can label with epipolar lines:

- Here, label `camera_1` as you would normally, i.e.:
```python
deeplabcut.label_frames(config_path)
```
- Then for `camera_2` (now it will compute the epipolar lines based on camera_1 labels and project them onto the GUI):
```python
deeplabcut.label_frames(config_path, config3d=config_path3d)
```
- Here, label `camera_1` as you would normally, i.e.:

```python
deeplabcut.label_frames(config_path)
```

- Then for `camera_2` (now it will compute the epipolar lines based on camera_1 labels and project them onto the GUI):

```python
deeplabcut.label_frames(config_path, config3d=config_path3d)
```
33 changes: 17 additions & 16 deletions docs/MISSION_AND_VALUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ deeplabcut:
last_metadata_updated: '2026-03-06'
ignore: false
---

(mission-and-values)=

# Mission and Values of DeepLabCut

This document is meant to help guide decisions about the future of `DeepLabCut`, be it in terms of
Expand All @@ -25,7 +27,6 @@ estimation framework that is:
- fast (GPU-powered)
- scalable (project focused for ease of portability and sharability)


As the project has grown we've turned these original principles into the mission statement and set of values that we
described below.

Expand All @@ -36,44 +37,44 @@ pose estimation for people to use in their daily work** without the need to be a
framework. We hope to accomplish this by:

- being **easy to use and install**. We are careful in taking on new dependencies, sometimes making them optional, and
aim support a fully (Python) packaged installation that works cross-platform.
aim support a fully (Python) packaged installation that works cross-platform.

- being **well-documented** with **comprehensive tutorials and examples**. All functions in our API have thorough
docstrings clarifying expected inputs and outputs, and we maintain a separate
[tutorials and information website](http://deeplabcut.org).
docstrings clarifying expected inputs and outputs, and we maintain a separate
[tutorials and information website](http://deeplabcut.org).

- providing **GUI access** to all critical functionality so DeepLabCut can be used by people without coding experience.

- being **interactive** and **highly performant** in order to support large data pipelines.

- providing a **consistent and stable API** to enable plugin developers to build on top of DeepLabCut without their
code constantly breaking and to enable advanced users to build out sophisticated Python workflows, if needed.
code constantly breaking and to enable advanced users to build out sophisticated Python workflows, if needed.

- **ensuring correctness**. We strive for complete test coverage of both the code and GUI, with all code reviewed by a
core developer before being included in the repository.
core developer before being included in the repository.

## Our values

- We are **inclusive**. We welcome newcomers who are making their first contribution and strive to grow our most
dedicated contributors into [core developers](https://github.com/orgs/DeepLabCut/teams/core-developers).
We have a [Code of Conduct](https://github.com/DeepLabCut/DeepLabCut/blob/main/CODE_OF_CONDUCT.md) to make DeepLabCut
a welcoming place for all.
dedicated contributors into [core developers](https://github.com/orgs/DeepLabCut/teams/core-developers).
We have a [Code of Conduct](https://github.com/DeepLabCut/DeepLabCut/blob/main/CODE_OF_CONDUCT.md) to make DeepLabCut
a welcoming place for all.

- We are **community-engaged**. We respond to feature requests and proposals on our

- [issue tracker](https://github.com/DeepLabCut/DeepLabCut/issues).

- We serve **scientific applications** primarily, over “consumer or commercial” pose estimation tools. This often means
prioritizing core functionality support, and rejecting implementations of “flashy” features that have little
scientific value.
prioritizing core functionality support, and rejecting implementations of “flashy” features that have little
scientific value.

- We are **domain agnostic** within the sciences. Functionality that is highly specific to particular scientific
domains belongs in plugins, whereas functionality that cuts across many domains and is likely to be widely used belongs
inside DeepLabCut.
domains belongs in plugins, whereas functionality that cuts across many domains and is likely to be widely used belongs
inside DeepLabCut.

- We value **education and documentation**. All functions should have docstrings, preferably with examples, and major
functionality should be explained in our [tutorials](http://deeplabcut.org). Core developers can take an active role
in finishing documentation examples.

functionality should be explained in our [tutorials](http://deeplabcut.org). Core developers can take an active role
in finishing documentation examples.

## Acknowledgements

Expand Down
Loading