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
2 changes: 1 addition & 1 deletion docs/04-reelee-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
**What this file is for.** You are about to design a library that turns instructional media (a
video of a choreographer + a doc + a steering prompt) into an intermediate annotated
representation and then renders that into guides. The user wants it to live in — or at least
integrate with — the `video_gen` federation whose top application package is **reelee**. This
integrate with — the `av` (formerly `video_gen`) federation whose top application package is **reelee**. This
file is a first-hand read of the reelee codebase (and its two siblings `reelee-org`,
`reelee-web`) so you do not have to rediscover: what reelee actually is, what a *genre* is
(it's an `nw` concept, not a reelee one), what a project is on disk, whether the
Expand Down
8 changes: 4 additions & 4 deletions docs/05-fleet-inventory.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 05 — The `video_gen` fleet: what already exists
# 05 — The `av` fleet (formerly `video_gen`): what already exists

**What this file is for.** You are about to design and build `stepped`, a library that
parses instructional media (a video + a doc + a steering prompt) into a time-aligned
Expand Down Expand Up @@ -32,8 +32,8 @@ behaviour, and whether the module graph has real depth.

**Two corrections to your brief.**

1. The member list you were given is not the `video_gen` workspace. The real file,
`$PP/vs_workspaces/video_gen.code-workspace`, also contains **`reelee`**
1. The member list you were given is not the `av` workspace. The real file,
`$PP/vs_workspaces/av.code-workspace`, also contains **`reelee`**
(`$PP/tt/reelee`) and **`reelee-web`** (`$PP/tt/reelee-web`). A parallel manifest at
`~/.cache/reelee-review-main/docs/video_gen_manifest.json` adds **`wrapex`** (legacy,
superseded by `acture`). `reelee` is the most relevant package in the fleet and was
Expand Down Expand Up @@ -575,7 +575,7 @@ acquire (yb) ─► pose (rtmlib / YOLO, tracked tori/uke) ─► segment (motio
|---|---|---|
| `acquire.py` | `download_techniques(...)`, `download_source(...)`, `list_techniques(...)`, `local_clips(dir)`, `canonical_technique_key(title)` | Thin wrapper over `yb.download`, keeping the source URL with every clip. |
| `pose.py` / `track.py` | `PoseSequence`, `estimate_poses(video)`, `estimate_poses_tracked(video, source_url=…)`, `identity_swap_rate(seq)` | Pose extraction with persistent person identity — **the obvious enrichment for a dance-step AST**. |
| `segment.py` | `pose_motion_energy(seq)`, `optical_flow_energy(video, frame_range=…)`, `find_segments(energy, frames, fps, **kw)`, `self_similarity_matrix`, `estimate_period`, `segment_demonstrations(seq, *, min_two_person_frac=0.0, use_optical_flow=False, **kw)`, `Segment` | **Unsupervised segmentation of a continuous take into repeated moves.** Hysteresis thresholding so slow-motion reps are not split; a RepNet-style autocorrelation cross-check on rep count. A *better* fit for "segment a dance run-through" than anything in the `video_gen` fleet. |
| `segment.py` | `pose_motion_energy(seq)`, `optical_flow_energy(video, frame_range=…)`, `find_segments(energy, frames, fps, **kw)`, `self_similarity_matrix`, `estimate_period`, `segment_demonstrations(seq, *, min_two_person_frac=0.0, use_optical_flow=False, **kw)`, `Segment` | **Unsupervised segmentation of a continuous take into repeated moves.** Hysteresis thresholding so slow-motion reps are not split; a RepNet-style autocorrelation cross-check on rep count. A *better* fit for "segment a dance run-through" than anything in the `av` fleet. |
| `compare.py` | `joint_angles(kp)`, `angle_features(seq)`, `compare(a, b) -> dict` (DTW distance + warping path), `distance_matrix(seqs)`, `per_angle_deviation(result)`, `time_stretch(...)` | "Am I doing it right?" scoring. Honest caveat in the docstring: 2D joint angles are **not** viewpoint-invariant. |
| `store.py` | `pose_store(dir)`, `segments_store(dir)`, `sequence_to_tidy_df(seq)`, `sequence_to_parquet_bytes`, `load_all_tidy(store)`, `check_tidy_integrity`, `store_integrity_report()` | dol-backed; tidy/long Parquet as the analysis SSOT. |
| `viz.py` | `render_skeleton_video(seq, out_path=…, source_video=…, blank_canvas=…)`, `log_to_rerun(...)` | A skeleton-on-blank-canvas render **is** a face-anonymised, stylized clip — free and deterministic, as an alternative to the AnimeGAN path. |
Expand Down
6 changes: 3 additions & 3 deletions docs/06-surfaces-and-conventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -710,7 +710,7 @@ From `python-project-structure`, `python-iterables`, `python-storage` and the us

**Ecosystem plugin pattern, if you need one:** `xdol.Registry` — a typed, dict-backed
`MutableMapping` plugin registry with `on_conflict` policy and `subscribe()`
(`$PP/i/xdol/xdol/registry.py:134`, VERIFIED). The video_gen
(`$PP/i/xdol/xdol/registry.py:134`, VERIFIED). The `av` (formerly `video_gen`)
workspace overview names it "the ecosystem-wide plugin pattern". Note the tension with
`architecture-first` test 2 (a seam that grew a registry means you over-built) — a Registry is
justified when *third parties* register into it (as genres do in `nw`), not to make your own
Expand Down Expand Up @@ -814,8 +814,8 @@ Facts you need up front:
## 13. Fleet context you should not re-discover

- The federation overview lives at
`$PP/t/priv/data/groups/video_gen/workspace_overview.md`
(note: `t/priv/data/…`, **not** `t/priv/priv/data/…`). It has the ASCII stack diagram,
`$PP/g/av/workspace_overview.md`
(the `av` group repo; formerly `t/priv/data/groups/video_gen/`). It has the ASCII stack diagram,
~22 packages with one concern each, and the **prime directive**: *"We work from the top of
the stack but do as little work as possible in either [app]. Whenever something looks like
it could be useful to a second application — or already has a natural home in the substrate
Expand Down
6 changes: 3 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ a dance, plus a hand-written HTML aide-mémoire, plus a paragraph of steering pr
deployed interactive practice page: <https://thorwhalen.com/que_calor_dance/>.

The user now wants that generalised into a library, integrated with the **reelee** /
`video_gen` fleet. Your job is to research, design and build it. **This folder exists so you
`av` (formerly `video_gen`) fleet. Your job is to research, design and build it. **This folder exists so you
do not start from scratch.** It records what was built, the parameters that were expensive to
find, the failures and what each one teaches, the user's own framing of the generalisation,
and an inventory of what already exists in the fleet.
Expand All @@ -28,7 +28,7 @@ Nothing here is a design you must follow. It is evidence and framing. Argue with
| 2 | **`03-design-brief.md`** | The user's own framing: the parse→AST→render metaphor they explicitly asked to have recorded, the three generalisation axes, and the constraints the POC discovered. |
| 3 | **`04-reelee-core.md`** | What reelee is, what a reelee "genre" is, and what to reuse. **This determines the package boundary**, so read it before deciding anything structural. |
| 4 | **`07-annotation-model.md`** | The proposed shape of the AST — the contract between analysis and rendering. |
| 5 | **`05-fleet-inventory.md`** | What already exists across `video_gen`, and honestly which parts are stubs. |
| 5 | **`05-fleet-inventory.md`** | What already exists across `av`, and honestly which parts are stubs. |
| 6 | **`02-technical-recipes.md`** | Every technique with working parameters. Reference, not narrative — come back to it when implementing. |
| 7 | **`06-surfaces-and-conventions.md`** | House style: architecture-first seams, qh, py2mcp, storage, frontend, deploy. |
| 8 | **`08-naming-candidates.md`** | PyPI-verified name options, and a better word for the "subject" axis. |
Expand All @@ -37,7 +37,7 @@ Nothing here is a design you must follow. It is evidence and framing. Argue with
| — | **`adr/`** | The decisions. **`0003` `video + segmenter`** — read it before designing the analysis phase. `0002` the name. `0001` the alignment engine (intent) — note that much of what you'd otherwise build already exists in `muvid`, `mixing` and `kodokan`. |
| — | **`alignment/`** | The research behind that ADR: one file per method family, prepared so you don't start from a literature search. |
| — | **`KICKOFF.md`** | A paste-ready prompt to start a fresh session on this. |
| — | **`REGISTRATION.md`** | **One command still pending** to register `paces` in the `video_gen` group, and why `priv pkg add-package` is deliberately deferred. |
| — | **`REGISTRATION.md`** | **One command still pending** to register `paces` in the `av` group, and why `priv pkg add-package` is deliberately deferred. |
| — | **`poc-reference/`** | The actual scripts and data. Read `poc-reference/README.md` first — several of those files are recorded dead ends. |

## The one-paragraph version
Expand Down
18 changes: 9 additions & 9 deletions docs/REGISTRATION.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Fleet registration — DONE (kept as the record of how and why)

*Status as of 2026-08-29 (kickoff session): **all registration is complete.** The
`video_gen` group membership landed (the manifest lists `t/paces`), the package was
`av` (formerly `video_gen`) group membership landed (the manifest lists `t/paces`), the package was
scaffolded (`pyproject.toml` + wads CI), `priv pkg add-package` ran with it, and the PyPI
name was claimed by an actual publish (paces 0.0.1). The interpreter breakage described at
the bottom turned out to be scoped: the pyenv fallback outside `$HOME` is broken, but the
Expand All @@ -11,26 +11,26 @@ The sections below are kept as the reasoning of record.*
## Do now — one command

```bash
priv group add video_gen $PP/t/paces
priv group add av $PP/t/paces
```

That is the whole registration for a docs-only package. It edits the **SSOT**
(`$PP/t/priv/data/groups/video_gen/manifest.json`, git-tracked in `thorwhalen/priv`) and
(`$PP/g/av/manifest.json`, git-tracked in `thorwhalen/av`) and
regenerates the workspace from it.

Then commit the SSOT change in the `priv` repo — it is tracked, so leaving it dirty is drift:
Then commit the SSOT change in the `av` group repo — it is tracked, so leaving it dirty is drift:

```bash
cd $PP/t/priv && git status --short data/groups/video_gen/manifest.json
cd $PP/g/av && git status --short manifest.json
```

### Do NOT hand-edit the workspace file

`$PP/vs_workspaces/video_gen.code-workspace` is a **symlink** to
`$PP/t/priv/data/groups/video_gen/video_gen.code-workspace`, which is **generated** by
`$PP/vs_workspaces/av.code-workspace` is a **symlink** to
`$PP/g/av/av.code-workspace`, which is **generated** by
`_generate_code_workspace()` (`priv/group.py:381`) from the manifest, and is gitignored
(`t/priv/.gitignore:128`). Any hand-edit is destroyed by the next
`priv group materialize video_gen` — the same failure mode `CLAUDE.md` warns about for
(`*.code-workspace` in the group repo's `.gitignore`). Any hand-edit is destroyed by the next
`priv group materialize av` — the same failure mode `CLAUDE.md` warns about for
`my_packages.pth`.

## Do NOT do yet — `priv pkg add-package`
Expand Down
2 changes: 1 addition & 1 deletion docs/alignment/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Alignment research

*What this folder is for: preparation for a possible dedicated **alignment tool** in the
`video_gen` / reelee fleet — the thing that answers "given some artifacts and some media,
`av` (formerly `video_gen`) / reelee fleet — the thing that answers "given some artifacts and some media,
which span of the media does each artifact correspond to?". The decision to build it is
recorded as an intent in `../adr/0001-alignment-engine-as-a-fleet-package.md`; **read that
first**, then come here for the method-by-method detail.*
Expand Down
Loading