Skip to content

docs: 0.7.0 release prep — docs revision, README, and aniposelib export#947

Merged
mprib merged 17 commits intomainfrom
docs/0.7.0-update
Feb 25, 2026
Merged

docs: 0.7.0 release prep — docs revision, README, and aniposelib export#947
mprib merged 17 commits intomainfrom
docs/0.7.0-update

Conversation

@mprib
Copy link
Copy Markdown
Owner

@mprib mprib commented Feb 25, 2026

Summary

  • Aniposelib export: Caliscope now auto-exports camera_array_aniposelib.toml at the workspace root alongside camera_array.toml on every successful calibration. Tools that consume aniposelib calibrations (anipose, sleap-anipose, Pose2Sim) can use this file directly.
  • Docs positioning overhaul: Reframed Caliscope as a multicamera calibration tool that slots into existing workflows rather than a full motion capture system. New "Integration with other tools" section, expanded calibration problem explanation, aniposelib export documented.
  • README rewrite: Updated tagline, opener, and feature list to match current scope. Removed stale roadmap and dead links.
  • Minor renames: frametimes.csvtimestamps.csv, "Printed Edge" → "Square Size (corner to corner)" in GUI.

What ships

  • camera_array_aniposelib.toml written to workspace root after every calibration save
  • Export hardened against numpy type edge cases (ravel for distortions/translation, int cast for size)
  • docs/faq.md and docs/triangulation_api.md removed (not helpful in current form)
  • Sample project page restored to OneDrive link with updated data

mprib added 17 commits February 23, 2026 22:33
Restructure mkdocs.yml with task-oriented navigation:
Home → Installation → Getting Started → Calibration → Reconstruction → API → FAQ

Remove empty/obsolete pages: roadmap.md, mkdocs_notes.md, data_capture.md,
workspace.md, video_capture.md, requirements.md

Rename calibration_board.md → calibration_targets.md (broader scope)
Add onnx_trackers.md stub
Fix site_description placeholder and dark mode media query
Full content rewrite of all 11 documentation pages to reflect
current codebase: three calibration target types (ChArUco,
chessboard, ArUco), ONNX tracker support, timestamps.csv format,
triangulation API, and updated installation instructions.

Calibration targets page reviewed by CV engineer and write-well
auditor. Remaining pages have audit findings captured for follow-up.

Also renames test session frametimes.csv files to timestamps.csv
to match the new canonical name used in docs and code.
- intrinsic: document fisheye model support, clarify board size claim,
  mention TOML storage format
- extrinsic: clarify 2.5% filter is auto-applied, user filter is second
  pass, document per-camera scope
- onnx: fix Windows path (no appauthor), correct SimCC output shape
  with simcc_split_ratio
- reconstruction: add frame_time column to output descriptions
- triangulation_api: add frame_time to input and output column lists
- faq: fix stale frametimes.csv reference and broken anchor link
- __init__.py: fix matching Windows path comment
Canonical filename is now timestamps.csv throughout the codebase.
Test data files were renamed in the prior commit; this commit
updates all source code and test references to match.
Clarifies the measurement instruction for users configuring their
ChArUco board. Updates the widget label, internal variable names,
and the matching docs reference.
These videos show the old GUI and are no longer representative.
The current demo video is on the README/index page.
Rewrite index.md to lead with the calibration problem, name the
ecosystem (SLEAP, DLC, Pose2Sim), describe the pairwise estimation
approach in plain language, mention mirror boards and distortion
model visualization, position ONNX as the extensibility story,
and acknowledge anipose respectfully.

Surgical tone fixes across three other pages:
- extrinsic_calibration: remove marketing language, rename
  bootstrapping section to plain English
- reconstruction: reorder trackers (ONNX first), remove slop words
- installation: remove uv marketing copy
Remove em dashes, generic Overview headings, restating summary sections.
Convert bullet-as-prose to flowing sentences. Tighten passive voice and
wordy phrases. Remove roadmap section from onnx_trackers page.
Sample data now hosted at mprib/caliscope-sample-data with Git LFS.
Updated description to reflect ArUco marker calibration and raw-only data.
LFS bandwidth limits (1 GB/month free) make git clone impractical
for a 241 MB dataset. Will attach zip to a GitHub Release instead.
Adds save_camera_array_aniposelib() to persistence.py that writes a
camera_array_aniposelib.toml alongside the standard camera_array.toml
in extrinsic/capture_volume/. Format matches aniposelib exactly:
top-level [cam_N] sections with Rodrigues rotation vectors. Hooked
into PointDataBundleRepository.save() so the export is automatic.
Reframes Caliscope as a multicamera calibration tool that slots into
existing workflows (SLEAP, DLC, Pose2Sim via aniposelib). Key changes:

- index.md: new tagline, calibration-first framing, aniposelib export
  callout, expanded "calibration problem" section
- extrinsic_calibration.md: note about camera_array_aniposelib.toml
- sample_project.md: restore OneDrive link, remove YouTube embed
- calibration_targets.md: trim unimplemented features, tighten prose
- onnx_trackers.md: move Models Directory section above Model Card table
- reconstruction.md: drop Subject Appearance and Calibration Trials sections
- project_setup.md: fix camera ID formatting, remove MultiWebCam mention
- triangulation_api.md: deleted (not needed for current scope)
- faq.md: deleted (not helpful in current form)
- mkdocs.yml: update nav to remove deleted pages
The aniposelib-compatible camera array was saving inside capture_volume/,
which is an internal bundle artifact directory. Moved the export to the
workspace root alongside camera_array.toml, where researchers expect to
find calibration output files.

The coordinator is the right layer for this export: it owns the workspace
path and the bundle repo explicitly has no knowledge of workspace structure.
Guard against upstream array shapes that would produce bad TOML:
- ravel().tolist() on distortions/translation ensures flat 1D output
  even if cv2.calibrateCamera delivers shape (1,5) arrays
- int() cast on camera.size prevents rtoml serialization failure on
  numpy scalar types (np.int32/int64)
- Add success logging for future debugging
Frames anipose as a full pipeline that Caliscope feeds into, not a peer
to SLEAP/DLC. "feeding calibration into an anipose pipeline" signals
that anipose owns triangulation, filtering, and analysis downstream.
- Update tagline to "Multicamera Calibration for Research Workflows"
- New opener based on user's draft: permissive license, visual feedback,
  pairwise bundle adjustment initialization
- Add aniposelib export and ONNX tracker support to feature list
- Add mirror board support to feature list
- Remove trajectory smoothing (out of scope)
- Remove Roadmap section
- Remove dead YouTube link and stale "not yet released" note
- Acknowledgments and License unchanged
@mprib mprib merged commit 6d79b7d into main Feb 25, 2026
3 checks passed
@mprib mprib deleted the docs/0.7.0-update branch February 25, 2026 03:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant