Skip to content

Commit 71910de

Browse files
authored
Add creation time to model config, and docs improvements (#378)
1 parent 8f0749f commit 71910de

8 files changed

Lines changed: 72 additions & 14 deletions

File tree

docs/index.rst

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ Lightning Pose Homepage
55

66
.. image:: images/LightningPose_horizontal_light.png
77

8+
.. admonition:: 📢 Official Release: Lightning Pose App 2.0
9+
10+
A new modern UI is available for multi-camera single-animal pose estimation,
11+
featuring end-to-end support for labeling, model management, and viewing predictions.
12+
13+
Since the initial release in late Jan 2026. Over 40 researchers from 8 countries have installed and run the app.
14+
15+
* **Get started:**
16+
Check out the :doc:`Create your first project <source/create_first_project>` tutorial and
17+
:doc:`installation guide <source/installation_guide>`.
18+
19+
* **See what's new:**
20+
Check out the `release notes <https://github.com/paninski-lab/lightning-pose-app?tab=readme-ov-file#-release-notes>`_
21+
for the latest updates. New capabilities are released weekly.
22+
23+
* **📣 Join the discord:** Have a question or feature request?
24+
Just want to chat? We'd love to hear from you in the
25+
`Discord channel <https://discord.gg/tDUPdRj4BM>`_!
826

927
.. meta::
1028
:description: Accessible documentation for animal pose estimation.
@@ -175,7 +193,7 @@ It covers the end-to-end workflow of labeling, training, and evaluation.
175193
.. toctree::
176194
:maxdepth: 2
177195
:hidden:
178-
:caption: Getting started
196+
:caption: 🚀 Getting started
179197

180198
source/installation_guide
181199
source/core_concepts
@@ -186,7 +204,7 @@ It covers the end-to-end workflow of labeling, training, and evaluation.
186204
.. toctree::
187205
:maxdepth: 4
188206
:hidden:
189-
:caption: CLI User guides
207+
:caption: 💻 CLI User guides
190208

191209
source/user_guide_singleview/index
192210
source/user_guide_multiview/index
@@ -196,21 +214,21 @@ It covers the end-to-end workflow of labeling, training, and evaluation.
196214
.. toctree::
197215
:maxdepth: 2
198216
:hidden:
199-
:caption: Community
217+
:caption: 🧑‍🤝‍🧑 Community
200218

201219
source/migrating_to_app
202-
Discord channel <https://discord.gg/tDUPdRj4BM>
220+
📣 Discord channel 📣 <https://discord.gg/tDUPdRj4BM>
203221
Github Repo <https://github.com/paninski-lab/lightning-pose>
204222
Release notes <https://github.com/paninski-lab/lightning-pose/releases>
205-
App Github Repo <https://github.com/paninski-lab/lightning-pose-app>
223+
App Github Repo 📁 <https://github.com/paninski-lab/lightning-pose-app>
206224
App Release notes <https://github.com/paninski-lab/lightning-pose-app?tab=readme-ov-file#-release-notes>
207225
source/faqs
208226

209227

210228
.. toctree::
211229
:maxdepth: 2
212230
:hidden:
213-
:caption: Reference
231+
:caption: 📖 Reference
214232

215233
source/directory_structure_reference/index
216234
source/api

docs/source/directory_structure_reference/changelog.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ over time.
1010
:depth: 2
1111

1212

13+
v2.0.7.0 | Feb 26, 2026
14+
------------------------------------
15+
16+
* Added ``creation_datetime`` to the model config file, for display in the model list page.
17+
The app backfills the field for existing models on startup.
18+
* Videos must be stored in ``DATA_DIR/videos`` to be viewable in the viewer. Previously the
19+
app supported viewing videos anywhere in the data directory.
20+
* Label files must be stored at the top-level of ``DATA_DIR`` to be accessible in the labeler. Previously the
21+
app supported viewing label files anywhere in the data directory.
22+
1323
v2.0.5.3 | Feb 8, 2026
1424
------------------------------------
1525

docs/source/directory_structure_reference/model_config_file.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,3 +281,12 @@ The following parameters are used for general evaluation.
281281

282282
* ``eval.confidence_thresh_for_vid`` (*float, default: 0.9*): predictions with confidence below this
283283
value will not be plotted in the labeled videos
284+
285+
Additional Metadata
286+
===================
287+
288+
The following parameters are added to the config by lightning pose on model creation:
289+
290+
* ``creation_datetime``: (*string*) An ISO datetime string of the model creation datetime.
291+
* ``model.lightning_pose_version``: (*string*) The lightning-pose package version number that created
292+
this model.

docs/source/directory_structure_reference/multiview_structure.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The detailed documentation for a multiview project data directory.
1919
│ ├── session0_view0.mp4
2020
│ └── session0_view1.mp4
2121
├── CollectedData_view0.csv ...........................[4]
22-
── CollectedData_view1.csv
22+
── CollectedData_view1.csv
2323
├── CollectedData_view0.unlabeled.jsonl ...............[5]
2424
└── CollectedData_view1.unlabeled.jsonl
2525

docs/source/installation_guide.rst

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,34 @@ Option B: Installation from Source (Development)
8181

8282
Use this if you plan to modify the source code. This requires cloning the repositories for an **editable** install.
8383

84+
If you want to edit the core training/inference logic:
85+
8486
.. code-block:: bash
8587
8688
# Clone the core repo and install
8789
git clone https://github.com/paninski-lab/lightning-pose.git
8890
cd lightning-pose
89-
pip install -e .
91+
pip install -e ".[dev]"
9092
cd ..
9193
94+
If you want to edit the app/UI code:
95+
96+
.. code-block:: bash
97+
9298
# Clone the app repo and install
9399
git clone https://github.com/paninski-lab/lightning-pose-app.git
94-
cd lightning-pose-app
100+
cd lightning-pose-app/app_server
95101
pip install -e .
102+
cd ..
103+
104+
# Install node.js via nvm to be able to compile and run the web UI.
105+
# Follow the directions here: https://github.com/nvm-sh/nvm
106+
# Then:
107+
npm install -g @angular/cli
108+
cd web_ui
109+
npm install
110+
cd ..
111+
honcho -f Procfile.dev
96112
97113
.. note::
98114

lightning_pose/train.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Example model training function."""
22

33
import contextlib
4+
from datetime import datetime
45
import json
56
import math
67
import os
@@ -21,7 +22,6 @@
2122
from lightning_pose.api.model_config import ModelConfig
2223
from lightning_pose.utils import pretty_print_cfg, pretty_print_str
2324
from lightning_pose.utils.io import (
24-
find_video_files_for_views,
2525
return_absolute_data_paths,
2626
)
2727
from lightning_pose.utils.scripts import (
@@ -218,6 +218,7 @@ def _train(cfg: DictConfig, status_file: Path = None) -> Model:
218218

219219
# record lightning-pose version
220220
with open_dict(cfg):
221+
cfg.creation_datetime = datetime.now().isoformat()
221222
cfg.model.lightning_pose_version = lightning_pose.version
222223

223224
print("Config file:")
@@ -302,7 +303,8 @@ def _train(cfg: DictConfig, status_file: Path = None) -> Model:
302303
# Log hydra config to tensorboard as helpful metadata.
303304
for key, value in cfg.items():
304305
logger.experiment.add_text(
305-
"hydra_config_%s" % key, "```\n%s```" % OmegaConf.to_yaml(value)
306+
"hydra_config_%s" % key,
307+
"```\n%s```" % (value if isinstance(value, str) else OmegaConf.to_yaml(value))
306308
)
307309

308310
# early stopping, learning rate monitoring, model checkpointing, backbone unfreezing

lightning_pose/utils/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ def pretty_print_cfg(cfg):
2020
print("--------------------")
2121
print("%s parameters" % key)
2222
print("--------------------")
23-
for k, v in val.items():
24-
print("{}: {}".format(k, v))
23+
if hasattr(val, "items"):
24+
for k, v in val.items():
25+
print("{}: {}".format(k, v))
26+
if isinstance(val, str):
27+
print(val)
2528
print()
2629
print("\n\n")

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44

55
[project]
66
name = "lightning-pose"
7-
version = "2.0.6"
7+
version = "2.0.7"
88
description = "Semi-supervised pose estimation using pytorch lightning"
99
license = "MIT"
1010
readme = "README.md"

0 commit comments

Comments
 (0)