Feasibility-study sandbox fork of kreeader-studio. Legally-sensitive experiments (video diarization, artist-style skins) live here, isolated from clean studio. Postgres-backed model/voice/skin media library.
  • Rust 90.2%
  • Python 8.8%
  • Shell 0.7%
  • PLpgSQL 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andrew Tyler 87a9d1de94 Wave-4 residuals: speculative docs to roadmap/, clippy arg counts (#34)
Items 3 and 4 of kreeader-studio#34. Item 2 (the crate/package rename
from kreeader-studio-dev) is deliberately untouched — it moves Rust
import names and deployment references together and needs a coordinated
call.

Item 3 — docs/ states what exists, roadmap/ holds the speculative:

* docs/plugins.md described a plugin manager that installs, updates,
  runs and removes plugins and reconciles each running plugin's
  /studio/manifest. The code fetches the registry index.json, lists its
  entries, and writes a `renderers` row for an endpoint the operator
  types in. The design document moves to roadmap/plugins.md (with a
  header saying which part is built), and docs/plugins.md is rewritten
  factually: registry discovery, renderer registration, the
  POST /studio/speak call the worker actually makes to a TTS plugin, and
  an explicit list of what is not built.

* docs/ladspa.md → roadmap/ladspa.md. Its own first line already said
  "research/roadmap … not a built feature"; the `fx` renderer it
  recommends does not exist.

* docs/architecture.md's "what the toolkit does not cover" list named
  `cpal` + `kira` for audio and panebench device pairing for auth,
  neither of which is in the tree — the crates are `rodio` (+`hound`)
  and `image`, and server auth is an optional bearer token. Corrected,
  including the contradicting auth row in the endpoint table, and its
  plugin section now points at the factual doc for today and roadmap/
  for the intended contract.

* docs/README.md, docs/as-built.md and roadmap/README.md updated to
  match (roadmap's index gains the two moved specs).

Item 4 — the two long-standing clippy::too_many_arguments warnings:

* `app.rs::load_revisions_match` took eight `u64`s in two positional
  groups of four; it now takes two `LoadRevisions` structs and is a
  single comparison, which also makes the call sites say which reading
  is the started one and which is current.
* `timeline.rs::draw_nle`'s `audio_channels` and `document_revision`
  move into the `NleResources` struct it already takes — both are
  document/project-scoped values like `fps`.

Gates: cargo build, cargo clippy --all-targets clean (zero warnings,
both pre-existing ones gone), cargo test 191+27 passed / 22 ignored,
python3 -m pytest tests 54 passed.

Co-Authored-By: Claude Opus <noreply@anthropic.com>
2026-09-04 12:54:23 -05:00
db Sol review #9/#15/#16: durable registry outbox, kept prompt attempts, quarantined mattes 2026-08-29 22:46:53 -05:00
deploy/butcher deploy/butcher: document pyannote-on-CPU device split for multi-speaker 2026-08-14 17:35:33 -05:00
docs Wave-4 residuals: speculative docs to roadmap/, clippy arg counts (#34) 2026-09-04 12:54:23 -05:00
engines engines: keep and act on mask coverage (guard + telemetry) — #29 2026-08-29 21:00:55 -05:00
roadmap Wave-4 residuals: speculative docs to roadmap/, clippy arg counts (#34) 2026-09-04 12:54:23 -05:00
scripts fix(studio): review wave S3 — renderer routing, single persistence authority, schema versioning, bootstrap, diarize service, perf 2026-08-22 23:11:44 -05:00
services Renderer/worker defects from the overnight review (#14) 2026-09-04 12:49:50 -05:00
src Wave-4 residuals: speculative docs to roadmap/, clippy arg counts (#34) 2026-09-04 12:54:23 -05:00
tests Renderer/worker defects from the overnight review (#14) 2026-09-04 12:49:50 -05:00
.env.example Establish studio-dev as legal-sandbox feasibility study 2026-08-13 13:03:39 -05:00
.gitignore Butcher headless studio agent: diarize service + deploy bundle (#22) 2026-08-14 15:13:52 -05:00
Cargo.lock Sol review #9/#15/#16: durable registry outbox, kept prompt attempts, quarantined mattes 2026-08-29 22:46:53 -05:00
Cargo.toml Sol review #9/#15/#16: durable registry outbox, kept prompt attempts, quarantined mattes 2026-08-29 22:46:53 -05:00
CLAUDE.md graduate to production kreeader-studio + add docs/license-audit.md 2026-08-15 01:12:55 -05:00
README.md Voice casting wired end-to-end on the local seam (#30 slice) 2026-08-30 23:30:01 -05:00
TODO.md Rename: pane editor -> layout editor (ecosystem-wide migration) 2026-09-02 21:32:26 -05:00

kreeader-studio

The production native editor for turning comics into voiced motion comics and 3D-animation projects.

Studio is a Rust/egui NLE and a read-only client of kreeader-server. It owns its Postgres media catalog, projects, timelines, characters, prompt proposals, and durable renderer queue; heavy engines stay out of process. See docs/as-built.md for the current implementation and roadmap/ for work that is not built yet.

Feasibility goals

# Goal Maturity
1 Diarize video dialogue → voice sample library mature tech
2 Single-image → 3D mesh (props/hero objects) usable now
3 Blender automation (procedural gen, scene compose, interior-face cleanup) mature
4 Bare models + artist-specific skins → 2D animation research frontier
5 OCR speech bubbles → speaker attribution → TTS dialogue buildable now
L Postgres media library — browse/name/tag/preview every model, voice, skin, and clip created or imported buildable now
W Worker binary — bridge to external renderers via a Postgres job queue (distributable across boxes) buildable now

See roadmap/ for the per-goal feasibility spec, and roadmap/media-library.md + db/schema.sql for the library data model.

Build & run

Two binaries share a library crate:

cargo build

# GUI: Timeline / Media Library / Diarize / Image→Mesh / Blender / Skins /
# OCR·Dialog and the character/prompt authoring surfaces.
DATABASE_URL=$(sed -n 's/^DATABASE_URL=//p' .env) cargo run --bin kreeader-studio

# Worker: health-checks renderers, atomically claims queued work, dispatches
# through the renderer seam, and registers completed artifacts.
DATABASE_URL=… cargo run --bin kreeader-studio-worker

Bootstrap or upgrade the database with scripts/db-bootstrap.sh "$DATABASE_URL". It applies db/schema.sql first and then every numbered migration in order, recording checksums so reruns are idempotent. Copy .env.example.env (gitignored) for the DSN.

Hard boundaries

The rules in CLAUDE.md apply: Rust + egui, native, never a webview; studio is a read-only client of kreeader-server; local-model and TTS engines are out-of-process; and authoring prompts use local models only.