Communitygithub.com

shinyobjectz/cadence

Cadenceでプログラム動画を作成、編集、プレビュー、レンダリング — Lua + LÖVE2D、ブラウザ不要のRemotion/HyperFrames代替。コンポジションは純Luaファイル;`cadence render comps/foo.lua -o out.mp4` で動画生成。モーショングラフィックス、キャプション、タイトルカード、縦型ショート作成時にロード。

cadence とは?

Cadenceは、LuaとLÖVE2Dフレームワークをベースに、ブラウザに依存しないプログラム動画生成ツールです。RemotionやHyperFramesと同様の概念を持ちながら、すべての処理をLuaファイルで記述し、コマンドラインから直接動画をレンダリングします。このスキルは、CadenceのコンポジションAPI、CLIコマンド(render, verify, lint, check)、決定性ルール、および必須の検証ループをカバーします。ユーザーはモーショングラフィックス、キャプション、タイトルカード、縦型ショート動画などを、コードベースで正確に制御・生成できます。また、Luaの純粋関数としてコンポジションを記述することで、再現性とテスト容易性を確保し、フレームごとの出力結果を検証するループが組み込まれています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shinyobjectz/cadence/tree/main/skills/cadence

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

cadence は何をしますか?

Cadenceでプログラム動画を作成、編集、プレビュー、レンダリング — Lua + LÖVE2D、ブラウザ不要のRemotion/HyperFrames代替。コンポジションは純Luaファイル;cadence render comps/foo.lua -o out.mp4 で動画を生成します。Cadence/ellua Lua コンポジションでモーショングラフィックス、キャプション、タイトルカード、縦型ショートを作成、編集、アニメーション化、デバッグ、レンダリングする際にロードしてください。コンポAPI、CLI(render、verify、lint、check)、決定性ルール、必須の検証ループをカバーします。

サポートプラットフォーム: Claude Code, Cursor, Codex CLI, その他AIエージェントCLI

使い方

  1. 新しいコンポジションを作成:

    -- comps/my_composition.lua
    return function(state, ctx)
      return {
        layers = {
          {
            type = "text",
            content = "Hello Cadence",
            position = { x = 100, y = 100 },
            style = {
              color = { 1, 1, 1, 1 },
              font_size = 48
            }
          }
        }
      }
    end
    
  2. レンダリング:

    cadence render comps/my_composition.lua -o output.mp4
    
  3. 検証ループ:

    cadence verify comps/my_composition.lua
    

コアAPI

関数説明
render(state, ctx)現在のフレームのレイヤーリストを返す
state前のフレームからの状態(決定論的)
ctxコンテキストオブジェクト(ctx.frame、ctx.fps、ctx.duration など)

CLIコマンド

  • cadence render <file> -o <output> — 動画をレンダリング
  • cadence verify <file> — 決定性を検証(複数回のレンダリングが同一結果になることを確認)
  • cadence lint <file> — ベストプラクティスをチェック
  • cadence check <file> — 構文とAPI使用法をチェック

決定性ルール

  • コンポジション関数は純粋関数でなければならない
  • 外部状態(ファイルシステム、ネットワーク、乱数)の使用禁止
  • state オブジェクトのみがフレーム間で変化可能
  • すべてのタイムスタンプとアニメーションは ctx.frame を基準とする

詳細は 公式ドキュメント を参照してください。

関連スキル