Skip to content
Merged
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
1 change: 1 addition & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
branches: [main]
paths:
- "docs/**"
- "examples/**" # the example notebooks are rendered into the site
- "mkdocs.yml"
- "src/**"
- ".github/workflows/docs.yml"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ scratch/

# MkDocs build output
site/
# mkdocs-jupyter render cache
.cache/
5 changes: 4 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,7 @@ repos:
- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
hooks:
- id: nbstripout
- id: nbstripout
# The example notebooks are rendered into the docs site from their stored
# outputs (mkdocs-jupyter, execute: false), so keep their outputs intact.
exclude: '^(examples|docs/examples)/.*\.ipynb$'
1 change: 1 addition & 0 deletions docs/examples/bundle_adjustment.ipynb
1 change: 1 addition & 0 deletions docs/examples/pipeline_walkthrough.ipynb
9 changes: 7 additions & 2 deletions docs/guides/library.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,10 @@ with io.VideoWriter("out.mp4", fps=30) as writer:

## Examples

- [`examples/bundle_adjustment.ipynb`](https://github.com/NeLy-EPFL/deeperfly/blob/main/examples/bundle_adjustment.ipynb) — the bundle-adjustment walkthrough.
- [`examples/pipeline_walkthrough.ipynb`](https://github.com/NeLy-EPFL/deeperfly/blob/main/examples/pipeline_walkthrough.ipynb) — the pipeline one stage at a time.
Two runnable notebooks, rendered here with their outputs (the Plotly figures
stay interactive):

- [Bundle adjustment](../examples/bundle_adjustment.ipynb) — build a multi-camera
rig, perturb it, and recover it with `bundle_adjust`.
- [Pipeline walkthrough](../examples/pipeline_walkthrough.ipynb) — the full
2D→3D pipeline one stage at a time.
459 changes: 379 additions & 80 deletions examples/bundle_adjustment.ipynb

Large diffs are not rendered by default.

1,159 changes: 918 additions & 241 deletions examples/pipeline_walkthrough.ipynb

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ nav:
- CLI usage: guides/cli.md
- Writing configs: guides/configuration.md
- Library API: guides/library.md
- Examples:
- Bundle adjustment: examples/bundle_adjustment.ipynb
- Pipeline walkthrough: examples/pipeline_walkthrough.ipynb
- How it works:
- Pipeline stages: explanation/pipeline.md
- Keypoint locations: explanation/keypoints.md
Expand Down Expand Up @@ -81,6 +84,14 @@ extra_javascript:

plugins:
- search
# Render the example notebooks (symlinked into docs/examples/) straight into
# the site. execute: false -> use the outputs already stored in the .ipynb, so
# the build stays fast and needs no torch/jax/data; the Plotly figures stay
# interactive.
- mkdocs-jupyter:
execute: false
include_source: true
ignore_h1_titles: false
- mkdocstrings:
handlers:
python:
Expand Down
11 changes: 10 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,12 @@ build-backend = "uv_build"
[dependency-groups]
dev = [
"ipykernel>=7.2.0",
"matplotlib>=3.10", # ad-hoc plotting in the example notebooks (not used by the package)
# Notebook plotting only (examples/*.ipynb; not used by the package). Plotly
# draws the interactive figures, which stay interactive when the notebooks are
# rendered into the docs; matplotlib still draws a few static panels in
# pipeline_walkthrough.ipynb.
"matplotlib>=3.10",
"plotly>=6.8.0",
]
test = [
"pytest>=9.0.3",
Expand All @@ -86,6 +91,10 @@ docs = [
"mkdocs-material>=9.5",
"mkdocstrings[python]>=0.27",
"ruff>=0.6", # mkdocstrings uses it to format the rendered API signatures
# Renders the example notebooks (examples/*.ipynb) into the site from their
# stored outputs (execute: false), so the Plotly figures stay interactive
# without importing torch/jax at build time.
"mkdocs-jupyter>=0.25",
]

[tool.pytest.ini_options]
Expand Down
360 changes: 360 additions & 0 deletions uv.lock

Large diffs are not rendered by default.

Loading