Skip to content

feat(samples): add reusable cinematic shots drawn in three.js - #129

Merged
ystknsh merged 3 commits into
mainfrom
feat/cinematic-samples
Sep 29, 2026
Merged

ystknsh merged 3 commits into
mainfrom
feat/cinematic-samples

Conversation

@ystknsh

@ystknsh ystknsh commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

文字と色を差し替えれば自分の動画にそのまま入れられる 3D のショット 8 本を samples/cinematic/ に追加し、3D の場面を作り込むときの落とし穴と作り方を samples/opus55-motion/README.md に書き足します。

  • 見本: 山並みの日の出・黄金の時間の海・金属の立体タイトル・製品のヒーローショット・3D 空間の UI スクリーン・粒子 → 文字 → ロゴ・文字めくりの案内板・撮影映像への注釈。すべて three.js で、ナレーションの無い beat なので書き出しに API の費用はかからない。差し替える値は build.py の SHOTS(ショットごとの秒数と P)
  • 共通部品(samples/cinematic/kit/): 合成器の MSAA、RoomEnvironment の代わりの暗いスタジオの環境光、明るい金属だけに残す映り込み、不透明な canvas、撮影映像を canvas に描き写す paint()
  • README: 10 節(mulmocast 2.12.1 と three.js r147 で実測した落とし穴)、11 節(Codex との分業と検品の型)、12 節(ショットの一覧と P で変えられるもの)

動画

cinematic_samples_en.mp4

Items to Confirm / Review

  • README 10 節に、既存の ideas-composite の footage-overlay が 2.12.1 では意図どおりにならない可能性を書いた(映像を 0.75 倍速の位置で読んでいるが、mulmocast が撮影直前に <video> を beat の経過時刻へシークし直すため、本体の映像は等速に戻る)。書き出して確かめてはいない。直すかは別に決めたい
  • footage_notes は、repo にある MulmoTerminal の画面収録(mulmoterminal/clips/first-run-assets/07-grid.mp4)を相対パスで使い、Claude Code のキャラクターに寄る
  • assets/waternormals.jpg は three.js(MIT License)の examples にある水面の法線マップ
  • 場面は Codex(gpt-6-astra)が samples/cinematic/scenes/BRIEF.md を約束事として下書きし、mulmocast 2.12.1 で書き出したコマを見て差し戻し、光と露出の設定(golden_ocean の空と表示変換、particle_logo の星雲の密度、footage_notes の注目点)はこちらで直した
  • 「ガンマのパスを入れない」は言い過ぎだった。16 進の色で照らす場面には不要だが、objects/Sky や objects/Water のようにリニアな光を出す場面には最後に 1 回必要。BRIEF と README はその形に直してある

User Prompt

  • AI Short Film Fes 2025 の告知動画の作り直しで得たものを汎用化して、presentations に貯めている知見と sample を増やしたい
  • 日の出の谷はクオリティが低かった。fes に寄せないで、もっと頑張って、いろいろな人が使いたいと思うものにする
  • issue は不要。worktree で進める
  • コーディングは Opus 5.5、3D モデルの磨き込みは Codex(Astra)が得意という触れ込みなので、その分担で
  • footage_notes の「Look here」の場所が悪い。Claude のキャラクターをアップにする感じで

作り方と確かめたこと

  • 書き出しは repo のルートから python3 samples/cinematic/build.py のあと npm run movie -- -o "$MAIN/output" samples/cinematic/cinematic.json(1280×720、8 ショット、60 秒)
  • 全ショットを mulmocast 2.12.1 で書き出し、ショットごとにコマを抜いて検品した。npm test は 111/111 valid(新しい samples/cinematic/cinematic.json を含む)
  • README の表に書いた P の値は、すべて各ショットのコードで使われていることを確かめた

🤖 Generated with Claude Code

work in mulmocast-cli

ystknsh and others added 3 commits September 29, 2026 10:58
Eight silent, parameterised shots under samples/cinematic/: a mountain
sunrise over a sea of clouds, a golden-hour ocean, extruded metal title
text, a product hero shot, a floating UI screen, particles into a word and
a logo, a split-flap board, and annotated footage. Text and colours come
from P in build.py's SHOTS, so a shot drops into another video by editing
those values.

kit/ carries the fixes found while building the AI Short Film Fes remake:
MSAA on the composer, a dark studio environment instead of RoomEnvironment,
reflections kept on bright metals only, an opaque canvas, and paint() for
footage that mulmocast would otherwise re-seek. scenes/BRIEF.md is the
contract the scenes were written against (drafted by Codex gpt-6-astra,
reviewed from mulmocast 2.12.1 renders and finished here).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ic shots

Adds three sections to samples/opus55-motion/README.md: pitfalls measured
with mulmocast 2.12.1 and three.js r147 (video re-seek, relative paths,
gamma and environment making scenes grey, composer anti-aliasing,
non-invertible matrix3d, chamfered holes, timeouts, TTS and music API
quirks), how 3D scenes were split between Codex and review, and a catalogue
of samples/cinematic/ with what each shot's P controls. Notes that the
footage-overlay sample reads the video at 0.75x and may be re-seeked to 1x
under 2.12.1 (not verified).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The loupe and circle sat on an arbitrary spot. The point of interest,
circle radius and loupe zoom now come from P (focus in footage pixels,
radius, zoom), the camera pushes in on it while the circle draws, and the
sample targets Claude Code's mascot with the note "Meet Claude".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ystknsh ystknsh changed the title Feat/cinematic samples feat(samples): add reusable cinematic shots drawn in three.js Sep 29, 2026
@ystknsh
ystknsh merged commit af48bbc into main Sep 29, 2026
4 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