Intro film v5: a Blender galaxy opening, 150.5 s, and HD players in the READMEs - #51
Merged
Merged
Conversation
…ME; Blender large-scene notes - overview/architecture SVGs, CITATION.cff, recipes/README: 31 styles, 13 playbook docs, 30 reference repos, 9 types - README (en/zh): styles are references, not templates; quick's checks; concept cards in the FAQ; research note 06; the reel is 46 s; the bin/vh table lists new flags, style compare/apply, storyboard/rhythm/cover-preview - README: code-driven Blender as a feature (badge, a bullet, a section) - engines/blender.md: lessons from the intro film's opening (numpy-driven point clouds, velocity motion blur, no denoiser on stars, camera up vector, nodexpr, chunked resumable renders, Metal determinism) - styles/_swatch/lib.js: color(tokens, 'fg') falls back to ink/text before magenta (pastel-ui names its foreground ink) - showcase 00/01 READMEs: mix figures re-measured after the #40 sound refresh; build_audio.sh comments: 21 built-ins
…he READMEs - showcase/04-intro-film is now v5: 0–15.8 s rendered in Blender (Cycles, a galaxy of films), the rest in HyperFrames + Three.js, one camera handed across the dissolve. v3 moves to v3/. - The film follows one request (showcase 02's question) through the router, the gates and the self-review loop to the finished short. A time map (js/tmap.js) lengthens holds so every line meets the reading-time floor; the score is retimed with the same map. - READMEs: the samples play inline (GitHub user-attachments, 1080p, a small corner mark); the intro plays as eight chapters. Each sample links its original file. - Lessons into playbook/02 and 08, engines/blender.md, recipes; CHANGELOG entry.
…e Reproduce block - tools/deliver.sh and tools/build_audio.sh pass shellcheck; deliver.sh drops the unused 720p clip and WebP preview and cuts the eight README chapters instead (tools/chapters.sh, tools/watermark.sh, now in the repo). - audio/music.beats.json (the body score's beat map, which js/main.js reads for its pulses) is committed; rendering audio/score.base.json reproduces it byte for byte, and a missing map now logs a warning instead of failing silently. - Reproduce: npm i (no lockfile), the shader export before the atlases, film_atlas.py pinned to the 41 rows the film was made with (the rebuilt films.jpg is byte-identical), Blender steps marked macOS only (bl.sh says so and exits). - The hand-over is 15.0–15.6 s everywhere; the Blender determinism figures say which plate they are from; the asset ledger covers the AI stills, atlases and v5 audio; showcase docs use showcase paths (NOTES says it is a log). - README chapter thumbnails: chapters 2–8 re-uploaded without a picture fade-in (frame 0 is the player's thumbnail); the 04 cell says it plays chapter 5; exact chapter ranges; the clone is about 530 MB now.
ZLHad
marked this pull request as ready for review
October 2, 2026 18:58
ZLHad
enabled auto-merge (squash)
October 2, 2026 18:58
ZLHad
added a commit
that referenced
this pull request
Oct 3, 2026
* install.sh: shallow clone, so a fresh install downloads about 210 MB instead of 350 After #51 a full clone is about 550 MB on disk (351 MB to download), most of it earlier versions of the sample films kept in the history. The installer now clones with --depth 1 --single-branch: about 210 MB to download, 420 MB on disk. Re-running it on a shallow checkout fetches the newest commit with --depth 1 and moves to it with reset --keep (a depth-1 fetch can't be fast-forwarded): untracked and ignored files (LOCAL.md, projects/) and edits to untouched files stay; a file it would overwrite, or commits of your own, stop it with a hint. A full clone keeps git pull --ff-only, since a depth-1 fetch would make it shallow. READMEs (en/zh): clone and total sizes (825 MB instead of 935), the "What gets downloaded" row, a note that contributors who want the history clone normally, and "To update" says to re-run the install command. * install.sh: stop before updating a checkout that isn't on a tracking branch; put origin/main back when the reset is refused Review of the shallow-clone update found two cases: - On a branch without upstream, or a detached HEAD, the own-commits check read a failed rev-list as "no commits", fetched anyway and then blamed the user's edits. With an upstream configured but origin/main missing, it exited 0 and left a commit of your own behind. It now resolves @{u} first and stops with a message if it can't. - When reset --keep refused, origin/main had already moved to the new parentless commit, so after a manual git pull the next run reported "commits of your own" that didn't exist, and git status showed ahead 1 / behind 1. origin/main is now put back before exiting. The hint now tells edited files (stash, re-run, stash pop) from untracked ones (move them out of the way). Docs: "re-run with the same options" and how to pass them to the one-line install; the download is about 215 MB (decimal, like the 351 MB of a full clone); v3's README says to fetch 7057c74 first in the installer's clone. * install.sh: quiet rev-parse on older git; drop the git pull claim; hint for a missing origin/main - rev-parse -q --verify '@{u}' still prints "fatal: no upstream…" on Apple Git 2.39; send it to /dev/null so only the installer's own message shows. - After a refused reset, the fetched commit stays grafted in .git/shallow, so a plain git pull still can't fast-forward (it couldn't before either); the comment and CHANGELOG no longer say it can. Re-running the installer works. - When the branch is main but origin/main is missing, the hint now says to git fetch.
ZLHad
added a commit
that referenced
this pull request
Oct 4, 2026
…he READMEs (#51) * Docs: counts and wording after #41–#50; a Blender section in the README; Blender large-scene notes - overview/architecture SVGs, CITATION.cff, recipes/README: 31 styles, 13 playbook docs, 30 reference repos, 9 types - README (en/zh): styles are references, not templates; quick's checks; concept cards in the FAQ; research note 06; the reel is 46 s; the bin/vh table lists new flags, style compare/apply, storyboard/rhythm/cover-preview - README: code-driven Blender as a feature (badge, a bullet, a section) - engines/blender.md: lessons from the intro film's opening (numpy-driven point clouds, velocity motion blur, no denoiser on stars, camera up vector, nodexpr, chunked resumable renders, Metal determinism) - styles/_swatch/lib.js: color(tokens, 'fg') falls back to ink/text before magenta (pastel-ui names its foreground ink) - showcase 00/01 READMEs: mix figures re-measured after the #40 sound refresh; build_audio.sh comments: 21 built-ins * Intro film v5: a Blender galaxy opening, 150.5 s, and HD players in the READMEs - showcase/04-intro-film is now v5: 0–15.8 s rendered in Blender (Cycles, a galaxy of films), the rest in HyperFrames + Three.js, one camera handed across the dissolve. v3 moves to v3/. - The film follows one request (showcase 02's question) through the router, the gates and the self-review loop to the finished short. A time map (js/tmap.js) lengthens holds so every line meets the reading-time floor; the score is retimed with the same map. - READMEs: the samples play inline (GitHub user-attachments, 1080p, a small corner mark); the intro plays as eight chapters. Each sample links its original file. - Lessons into playbook/02 and 08, engines/blender.md, recipes; CHANGELOG entry. * Intro v5: fixes from review — shellcheck, the beat map, a reproducible Reproduce block - tools/deliver.sh and tools/build_audio.sh pass shellcheck; deliver.sh drops the unused 720p clip and WebP preview and cuts the eight README chapters instead (tools/chapters.sh, tools/watermark.sh, now in the repo). - audio/music.beats.json (the body score's beat map, which js/main.js reads for its pulses) is committed; rendering audio/score.base.json reproduces it byte for byte, and a missing map now logs a warning instead of failing silently. - Reproduce: npm i (no lockfile), the shader export before the atlases, film_atlas.py pinned to the 41 rows the film was made with (the rebuilt films.jpg is byte-identical), Blender steps marked macOS only (bl.sh says so and exits). - The hand-over is 15.0–15.6 s everywhere; the Blender determinism figures say which plate they are from; the asset ledger covers the AI stills, atlases and v5 audio; showcase docs use showcase paths (NOTES says it is a log). - README chapter thumbnails: chapters 2–8 re-uploaded without a picture fade-in (frame 0 is the player's thumbnail); the 04 cell says it plays chapter 5; exact chapter ranges; the clone is about 530 MB now. * Intro v5: cut the README chapters after the final check; chapters.sh is executable
ZLHad
added a commit
that referenced
this pull request
Oct 4, 2026
* install.sh: shallow clone, so a fresh install downloads about 210 MB instead of 350 After #51 a full clone is about 550 MB on disk (351 MB to download), most of it earlier versions of the sample films kept in the history. The installer now clones with --depth 1 --single-branch: about 210 MB to download, 420 MB on disk. Re-running it on a shallow checkout fetches the newest commit with --depth 1 and moves to it with reset --keep (a depth-1 fetch can't be fast-forwarded): untracked and ignored files (LOCAL.md, projects/) and edits to untouched files stay; a file it would overwrite, or commits of your own, stop it with a hint. A full clone keeps git pull --ff-only, since a depth-1 fetch would make it shallow. READMEs (en/zh): clone and total sizes (825 MB instead of 935), the "What gets downloaded" row, a note that contributors who want the history clone normally, and "To update" says to re-run the install command. * install.sh: stop before updating a checkout that isn't on a tracking branch; put origin/main back when the reset is refused Review of the shallow-clone update found two cases: - On a branch without upstream, or a detached HEAD, the own-commits check read a failed rev-list as "no commits", fetched anyway and then blamed the user's edits. With an upstream configured but origin/main missing, it exited 0 and left a commit of your own behind. It now resolves @{u} first and stops with a message if it can't. - When reset --keep refused, origin/main had already moved to the new parentless commit, so after a manual git pull the next run reported "commits of your own" that didn't exist, and git status showed ahead 1 / behind 1. origin/main is now put back before exiting. The hint now tells edited files (stash, re-run, stash pop) from untracked ones (move them out of the way). Docs: "re-run with the same options" and how to pass them to the one-line install; the download is about 215 MB (decimal, like the 351 MB of a full clone); v3's README says to fetch c649392 first in the installer's clone. * install.sh: quiet rev-parse on older git; drop the git pull claim; hint for a missing origin/main - rev-parse -q --verify '@{u}' still prints "fatal: no upstream…" on Apple Git 2.39; send it to /dev/null so only the installer's own message shows. - After a refused reset, the fetched commit stays grafted in .git/shallow, so a plain git pull still can't fast-forward (it couldn't before either); the comment and CHANGELOG no longer say it can. Re-running the installer works. - When the branch is main but origin/main is missing, the hint now says to git fetch.
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.
Why
The intro film's v3 (81 s, all WebGL) read as cheap effects, and "many films" was only a claim. v5 opens with a Blender render where every star is a film, then follows one request through the repo. You also asked for every sample to play inside the README, in HD, with a small
ZLHad/OpenVideoHarnessmark in a corner.Changes
showcase/04-intro-filmis v5 (150.5 s, 1080p30). v3's notes and media move tov3/.blender/galaxy.py, GPL-3.0-or-later; the rest of the repo stays MIT). 475 frames, about 1 h 28 min on an M-series GPU, with motion blur from per-vertexvelocity.tools/export_state.pyexports it without starting Blender).js/tmap.jslengthens 26 holds so each line meets the reading-time floor. The story runs on the mapped time; ambient motion runs on film time.tools/retime.pylengthens the score with the same map (whole beats, held breaths), andtools/build_audio.shrebuilds the mix.styles/README.md: the player replaces the GIF at the top.playbook/02: camera continuity checked by numbers; a failed async build that nobody saw.playbook/08: atmosphere layers draw first; amber type below the glare threshold.engines/blender.md: measured speeds.video-types/03, CLAUDE.md / AGENTS.md, and a CHANGELOG entry.Checked
tools/ci.sh --committed, with shellcheck and pyflakes, also underVH_BASH=/bin/bash: all checks passed. The first push failed Linux CI on shellcheck, which I hadn't installed locally; fixed in the second commit.bin/vh checkonmedia/final.mp4: no black, frozen or silent stretch; BT.709 tags.bin/vh qa: 62/62 cues within a frame, −14.0 LUFS, −1.65 dBTP.tools/film_atlas.pyrebuildsfilms.jpgbyte for byte; renderingaudio/score.base.jsonrebuildsaudio/music.beats.jsonbyte for byte;tools/retime.pyreproducesscore.json,events.jsonandindex.html.docs/design-notes/isn't included.Not done / known
Review round 1 found a blocker (shellcheck) and nine should-fixes; all addressed in the second commit except the repo size (below). Not changed: the caret in the terminal blinks on story time, so it vanishes for 4.8 s in the stretched hold (fixing it means a full re-render); the corner mark is hard to read over the busiest frames.
Not every score reached 8: variety is 6.
150.5 s is long for an intro.
bin/vh qareports about 190 click warnings from the score's gated saw (not checked by ear).media/final.mp4is 48 MB (2.5 Mbps). The clone grows from about 330 MB to about 530 MB (the README andinstall.shsay so). Moving v3's media out of the tree wouldn't shrink a clone, since history keeps it; a shallow clone ininstall.shwould, as a separate change.