License and attributions
video-harness is copyright 2026 Saketha Ramanjam, released under the MIT License.
This page lists the work we implement against, depend on, or learned from. None of the owners below endorse this project unless they say so themselves.
This project
| License | MIT |
| Copyright | 2026 Saketha Ramanjam |
| Source | github.com/sakethramanujam/video-harness |
| Docs | sakethramanujam.github.io/video-harness |
Host application (not redistributed)
DaVinci Resolve, Fusion, fuscript, and the Resolve scripting API are products of Blackmagic Design Pty Ltd. This repo does not include Resolve. You must install it yourself.
We drive the published scripting surface (scriptapp, MediaPool.ImportMedia, TimelineItem.SetClipColor, markers, Fusion Scripts). Behavior of free vs Studio (external scripting, UIManager) is as Blackmagic documents it.
| Product | DaVinci Resolve |
| Support / downloads | blackmagicdesign.com/support |
| Scripting notes | Bundled with Resolve: DaVinci Resolve.app/Contents/Resources/Developer/Scripting/ (README and examples). Not copied here. |
| Title / generator / property APIs | Timeline.InsertFusionTitleIntoTimeline, InsertTitleIntoTimeline, InsertGeneratorIntoTimeline, TimelineItem.SetProperty / GetProperty (Pan, Tilt, ZoomX/Y, Opacity, …). TimelineItem.AddTransition is documented from Resolve 21.1; 21.0.4.5 may return none. TimelineItem.AddFusionComp, Fusion Comp:AddTool("TextPlus"), TimelineItem.SetLUT. Bundled Film Looks .cube LUTs ship inside the Resolve app (e.g. Rec.709 Fujifilm 3513DI). |
| Fusion file helpers | On Resolve 21.1 Workspace Scripts, standard Lua io / package may be nil. The bridge uses Fusion bmd.readfile / bmd.writefile for the RPC queue (Blackmagic Fusion scripting). |
| Trademarks | DaVinci Resolve, Fusion, Blackmagic Design, and related marks belong to Blackmagic Design Pty Ltd. |
App Store “Lite” sandboxing (com.blackmagic-design.DaVinciResolveLite) is Apple’s and Blackmagic’s packaging, not ours.
Protocol and Python stack
| Work | Role here | License (upstream) | Citation |
|---|---|---|---|
| Model Context Protocol | Tool/resource wire format for agents | See spec site | Anthropic PBC and MCP contributors, Model Context Protocol specification |
MCP Python SDK (mcp) | stdio MCP server (FastMCP / MCPServer) | MIT | python-sdk LICENSE |
| Pydantic | Tool argument models | MIT | Copyright Samuel Colvin and contributors |
| PyYAML | types.yaml marker registry | MIT | Copyright Kirill Simonov and contributors; YAML 1.1 |
| pytest | Tests (optional extra) | MIT | Holger Krekel and contributors |
| setuptools | Package build | MIT | Python Packaging Authority |
| Python 3.10+ | Runtime | PSF License | Python Software Foundation |
| Lua 5.1 / LuaJIT | Resolve Fusion scripts | MIT (Lua) / LuaJIT license | PUC-Rio; Mike Pall / LuaJIT.org. Fusion embeds Lua; we author .lua against that VM. |
JSON on the Lua file-queue follows RFC 8259 (IETF).
POSIX fcntl file locks (serial RPC) are IEEE Std 1003.1.
Documentation site
| Work | Role here | License (upstream) | Citation |
|---|---|---|---|
| Jekyll | Static site from docs/ | MIT | Tom Preston-Werner, Parker Moore, and contributors |
| just-the-docs v0.10.1 | Docs theme (remote_theme) | MIT | just-the-docs LICENSE |
| github-pages gem | Local/CI Jekyll stack | MIT | GitHub |
| actions/checkout, configure-pages, jekyll-build-pages, upload-pages-artifact, deploy-pages | GitHub Pages deploy | MIT (Actions) | GitHub, Inc. |
Agents and hosts
| Work | Role here | Citation |
|---|---|---|
| Grok / Grok Build TUI | MCP client used in development | xAI. Product names are xAI’s. |
Antigravity CLI (agy) | Peer agent on vision/RFC work in this tree | Google Antigravity CLI. Not bundled. |
Editing craft (method we follow)
| Work | Role here | Citation |
|---|---|---|
| Joris Hermans, FAST, EASY & FREE! How to Edit a CINEMATIC Video in DaVinci Resolve 19 [Beginners Tutorial] | Cinematic assembly: cull junk; open with 2–3 wide establishing shots; intercut wide vs closer; titles over those wides; soundtrack + cuts on beats; end fades; global grade (adjustment clip / LUT) | YouTube, 19 Oct 2024: watch?v=sh5MEb5cX1M |
Resolve’s free Edit page still owns blade, ripple trim, Cmd-T dissolves, and adjustment clips. This harness places and dresses; it does not razor.
Craft and persona
Agent operating rules in AGENTS.md follow:
Balaji Srinivasan, The Samurai Engineer: 7 Japanese Philosophies for Technical Mastery (6 Sep 2025).
The seven named ideas are older than that essay. We cite Srinivasan as the engineering mapping we use, not as the origin of the Japanese terms:
| Term | Sense we use | Notes |
|---|---|---|
| Shugyō | Relentless practice | Traditional; see Srinivasan §Shugyō |
| Ikigai | Reason for the small API surface | Popularized in English in many places; we mean the intersection he describes |
| Kodawari | Invisible quality | |
| Shikata ga nai | Accept Lite/sandbox limits | |
| Kintsugi | Leave failures in docs and tests | Ceramic repair tradition, Japan |
| Kaizen | Small daily improvement | Toyota Production System / Imai, Kaizen (1986) is the usual English industrial citation |
| Danshari | Subtract extras (Scripts copies, session scratch) | Hideko Yamashita’s decluttering coinage, later popularized in English |
Srinivasan also points to a Daily Sabah roundup of Japanese concepts.
Algorithms and media conventions
| Work | Role here | Citation |
|---|---|---|
| Difference hash (dHash) | Optional vision pre-filter (skip static frames) | Neal Krawetz, Looks Like It (2011) and Kind of Like That (2013), The Hacker Factor Blog: Looks Like It, Kind of Like That |
| Hamming distance | Compare dHash bits | Richard Hamming, “Error Detecting and Error Correcting Codes,” Bell System Technical Journal 29(2), 1950 |
| Presentation timestamps / edit lists | Frame-accurate source in/out (vision RFC) | ISO/IEC 14496-12 (ISO BMFF / elst); Apple Video Toolbox |
| Apple Metal / Mach task info | Memory caps in vision notes | Apple Inc. documentation; Metal allocations are not POSIX RLIMIT_DATA |
DJI clip names DJI_YYYYMMDDHHmmss_* | Sort/cluster camera originals | Filename convention of DJI products. DJI is a trademark of SZ DJI Technology Co., Ltd. We parse names; we do not ship DJI software. |
Pillow (optional, BSD-style HPND) may accelerate dHash when installed; it is not a required dependency.
Clip colors vs marker colors
Resolve’s TimelineItem.SetClipColor palette (Orange, Apricot, Yellow, Lime, Olive, Green, Teal, Navy, Blue, Purple, Violet, Pink, Tan, Beige, Brown, Chocolate) and marker colors (Cyan, Mint, Red, …) come from Blackmagic’s scripting API, not from this repo. Aliases here (Cyan→Teal, Mint→Lime, Red→Violet) are ours, so agents do not pass marker names into SetClipColor.
What we do not claim
- Ownership of DaVinci Resolve, Fusion, or any Blackmagic sample script
- Affiliation with Blackmagic Design, Apple, DJI, xAI, Google, or Anthropic
- Redistribution of MLX, Qwen, or other model weights (vision notes may name them; they are not in this tree’s required install)
If you add a dependency or copy an algorithm, add a row here in the same change.