Repository navigation
reelee target: camera-track motion, a commentary-production manifest, and the studio tour - #35
Merged
Merged
Conversation
…st; the studio tour example - render_plans takes a path_builder: index_path_builder (default, unchanged) or camera_path_builder, which frames each step's CameraKeyframe (focus rect + zoom) with burns.resolve_move, the resolver braidio's render and the studio's move preview share. audio_out keeps the assembled recording. - to_production_manifest: braidio's ProductionManifest from the same plans, moves declared 'rendered', so a rendered demo imports as a commentary production that opens and edits in reelee-studio. - examples/reelee_studio_tour: a narrated tour of the studio's Commentary screen (actually-romantic), captured through the studio's acture commands with walkthru's play(), voiced with ElevenLabs, rendered, packaged. - DECISIONS D16.
From the adversarial review: - Framing (default move, aspect, pixel density, easing) is taken by BOTH camera_path_builder and to_production_manifest, so the records cannot drift from the render; an easing no panel record can carry is refused. - The film size is worked out the way burns does (first picture at the framing's aspect), no longer a free parameter that could disagree. - A non-positive keyframe zoom names no move (no ZeroDivisionError on the default path). - Tour: a shot whose focus is off screen fails at capture, naming the shot; the recording ships as mp3 (braidio serves episodes as audio/mpeg); the README says to import into a fresh root.
…refuses it, capture reports it on screen The product never labels a cost 'free' (reelee-web#372). build_document refuses a line saying a banned cost word; capture saves each shot's words on screen beside the picture and flags one the studio still shows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A walkthru tour can now be delivered as a commentary production: a Ken Burns film whose camera follows the document's camera track, packaged as the manifest braidio imports. The first one is a narrated tour of reelee-studio's Commentary screen, using actually-romantic as the example (
examples/reelee_studio_tour/).What
render_plans(..., path_builder=)is the camera strategy.index_path_builderis the default and exactly the old behaviour (a test pins it).camera_path_builder(Framing(...))projects each step'sCameraKeyframe(focus rect plus zoom) onto a named burns move and frames it withburns.resolve_move. That is the resolver braidio's render and the studio's move preview also use, so the camera closes on the element a step is about.audio_out=keeps the assembled recording.to_production_manifest(plans, ..., framing=)returns braidio'sProductionManifestbuilt from the same plans. It takes the sameFraming, gets the film size the way burns does, and refuses an easing a panel record can't carry. It declaresmoves: "rendered"(needs importing: a manifest may declare its moves were rendered (moves="rendered") braidio#91) and imports nothing from braidio.examples/reelee_studio_tour/:studio_tour.pyis the authoring source (35 shots, pure core, run bytest_examples).make_studio_tour.pyruns capture (walkthruplay()over the studio's acture commands, in Chrome, with a synthetic cursor), then narrate (ElevenLabseleven_v3), render, manifest, and import. The README says how to re-record the tour.Gate
pytest: 200 passed (7 new tests intests/test_reelee_production.py, and the tour document intest_examples.py), plusruff check. End to end: 35 shots captured against a throwaway copy of actually-romantic, 35 lines voiced (each transcribed with Whisper and matched to its script), a 4:02 film rendered, imported,npm run smoke:studiogreen (7 screens and 5 dialogs × 3 widths) against a backend bound to the result, and the film and recording served by the live server's reelee code.An independent adversarial review found no blockers. It rendered a synthetic screenshot through both paths and got identical camera rects at every t checked. All six should-fixes are folded in (one
Framingfor both sides, a size check, easing refused, a zero-zoom guard, an off-screen focus failing capture, braidio refusing a bad move before writing).Not covered: CI does not install the
reeleeextra, so the render-target tests skip there and ran locally only.