Skip to content

Genericize repo for public release + add turntable proofreading tools - #1

Merged
davidackerman merged 2 commits into
mainfrom
mesh-driven-video-proofreading
Oct 25, 2026
Merged

davidackerman merged 2 commits into
mainfrom
mesh-driven-video-proofreading

Conversation

@davidackerman

Copy link
Copy Markdown
Contributor

Summary

Two commits:

  1. Genericize repo for public release — removes project-specific data so the repo can be made public:

    • tools/make_review_page.py: drop hardcoded internal Neuroglancer mesh/EM sources, dataset position, and EM contrast window. Neuroglancer links now only render when --ng-mesh-sources / --ng-em-source are passed.
    • tools/render_slices.py: --contrast defaults to auto instead of a dataset-tuned window; generic example paths.
    • tools/export_run.py: --runs-root defaults to ./runs (gitignored).
    • README / design doc / AGENTS.md / agent_prompt.md: internal paths and dataset ids replaced with placeholders (<collection_dir>, /path/to/...); downstream-migration notes removed.
    • rubrics.py: shared structural guidance is now organelle-agnostic (mito-specific wording stays in the mitochondrion rubric).
    • README lists get_image_legend and fixes get_rubric's signature.
  2. Add mesh-driven turntable proofreading tools — render_turntable.py (rotating MP4 or labeled stills + geometry sidecar), turntable_geometry.py, grid_to_voxel.py (ray-cast a view/grid hit back to a voxel + local slice orientation), standalone remote precomputed mesh support in mesh_sources.py, a VLM scan prompt, tests, and a new [video] extra.

Behavior changes

  • export_run.py writes to ./runs/ by default (was ignore/runs/); pass --runs-root to override.
  • Slice montages default to per-object auto contrast; pass --contrast lo,hi for a fixed window.

Testing

  • ruff check . and ruff format --check . clean.
  • pytest: 41 passed locally (turntable tests skip without numpy/pyvista, as in CI's [dev] install).
  • Smoke-tested make_review_page.py with and without Neuroglancer sources, and export_run.py with the new default runs root.

Note

Earlier commits on main still contain the old internal paths/URLs in history; consider squashing or publishing from a fresh repo if history matters before making the repo public.

…, and datasets

- make_review_page: remove hardcoded internal Neuroglancer mesh/EM sources,
  dataset position, and EM contrast window; NG links only render when sources
  are passed on the CLI
- render_slices: default --contrast to auto instead of a dataset-tuned window;
  generic example paths
- export_run: default --runs-root to ./runs (gitignored)
- README / design doc / AGENTS.md / agent_prompt.md: replace internal paths and
  dataset ids with placeholders (<collection_dir>, /path/to/...); drop
  cellmap-analyze migration notes
- rubrics: make the shared structural guidance organelle-agnostic (mito-specific
  wording stays in the mitochondrion rubric)
- README: list get_image_legend and fix get_rubric's signature
…scan prompt)

- tools/render_turntable.py: rotating MP4 or N labeled still viewpoints of one
  object's mesh under a fixed orthographic camera with a stationary grid overlay,
  plus a <id>.turntable.json sidecar describing the exact geometry
- tools/turntable_geometry.py: pure-numpy camera/grid/rotation geometry
- tools/grid_to_voxel.py: invert a (view/frame, grid cell or point) hit to a
  voxel coordinate by ray-casting the un-rotated mesh; returns a local slice
  orientation (surface normal + PCA axes)
- tools/mesh_sources.py: support standalone remote precomputed mesh layers
- prompts/turntable_scan.md: VLM scan prompt whose JSON output feeds grid_to_voxel
- tests/test_turntable.py: geometry + end-to-end ray-cast tests (skip without
  numpy/pyvista)
- new [video] extra (imageio + imageio-ffmpeg); TESTING_ROADMAP.md
@davidackerman
davidackerman merged commit 7a201b4 into main Oct 25, 2026
6 checks passed
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