Skip to content
CAI
Software that uses CAICheck a score

storytold/filmcraft

74.9

Strong · 7 November 2026

326.2k

lines of production code

Rust

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Behavioural changes

1 commit (0 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 1 commit, 14 files: “Codecs: add clean-room APV (RFC 9924) decoder, encoder, container support, and export presets”. Also in this area: 4 commits (0 fixes) modifying crates/isobmff; 5 commits (1 fix) modifying crates/isobmff.

(repo-wide) · low confidence · unverified

1 commit (0 fixes) modifying apps/filmcraft-cli

A change to existing behaviour in apps/filmcraft-cli — 1 commit, 3 files: “cli: --save runs on one project take turns, so no edit is lost (\#3926)” (refs \#3926). Also in this area: 2 commits (0 fixes) modifying apps/filmcraft-cli; 2 commits (1 fix) modifying apps/filmcraft-cli.

(repo-wide) · low confidence · unverified

1 commit (0 fixes) modifying apps/filmcraft-web, assets

A change to existing behaviour in apps/filmcraft-web, assets — 1 commit, 37 files: “app icon: owl with ear tufts (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs”. Also in this area: 3 commits (1 fix) modifying apps/filmcraft-web.

apps/filmcraft-web/web · medium confidence · unverified

1 commit (0 fixes) modifying apps/filmcraft-web, crates/time

A change to existing behaviour in apps/filmcraft-web, crates/time — 1 commit, 2 files: “codecs: video frames are looked up by the nearest timestamp unit, so a 1 ms WebM shows every frame”. Also in this area: 2 commits (2 fixes) fixing crates/codecs; 26 commits (1 fix) modifying crates/engine; 1 commit (1 fix) fixing crates/time.

crates/time · low confidence · unverified

1 commit (0 fixes) modifying crates/aac, crates/isobmff

A change to existing behaviour in crates/aac, crates/isobmff — 1 commit, 3 files: “\#922: eight-channel AAC reports and returns eight channels” (refs \#922). Also in this area: 6 commits (0 fixes) modifying crates/export.

crates/aac/src · low confidence · unverified

1 commit (0 fixes) modifying crates/av1, crates/mpeg2v

A change to existing behaviour in crates/av1, crates/mpeg2v — 1 commit, 7 files: “Harden AV1 and MPEG-2 decoders against hostile input; add mutation-fuzz tests for the video codecs”. Also in this area: 4 commits (0 fixes) modifying crates/mpeg2v; 1 commit adding/updating tests in crates/mpeg2v.

crates/mpeg2v/src · medium confidence · unverified

1 commit (0 fixes) modifying crates/export, crates/h264enc, crates/platform

A change to existing behaviour in crates/export, crates/h264enc, crates/platform — 1 commit, 33 files: “\#1221: H.264 High 10 and High 10 Intra export in the built-in encoder (\#1580)” (refs \#1221, \#1580). Also in this area: 3 commits (1 fix) modifying crates/h264enc; 8 commits (0 fixes) modifying crates/export; 1 commit (1 fix) fixing crates/h264enc; 1 commit adding/updating tests in crates/h264enc.

crates/h264enc · medium confidence · unverified

1 commit (0 fixes) modifying crates/mxf, crates/ogg

A change to existing behaviour in crates/mxf, crates/ogg — 1 commit, 12 files: “M9.14: MXF (OP1a/OP-Atom) and Ogg demuxers, image sequences, BWF timecode”. Also in this area: 19 commits (2 fixes) modifying crates/engine; 2 commits (1 fix) modifying crates/mpegts, crates/mxf.

crates/mxf/src · low confidence · unverified

1 commit (0 fixes) modifying crates/mxf, crates/ogg

A change to existing behaviour in crates/mxf, crates/ogg — 1 commit, 12 files: “M9.14: MXF (OP1a/OP-Atom) and Ogg demuxers, image sequences, BWF timecode”. Also in this area: 3 commits (0 fixes) modifying crates/matroska.

crates/ogg · medium confidence · unverified

10 commits (2 fixes) modifying packaging/web

A change to existing behaviour in packaging/web — 10 commits (2 fixs), 4 files: “Release fixes: CLI --version, ALSA on Linux, web build via xtask”; “packaging: use \[\[ for bash conditional tests (SonarCloud S7688) (\#3003)”; “Release 0.7.2: install the wasm-bindgen CLI for the web release build”; and 7 more (refs \#3003, \#94, \#100, \#3341).

packaging/web · medium confidence · unverified

12 commits (1 fix) modifying crates/codecs

A change to existing behaviour in crates/codecs — 12 commits (1 fix), 26 files: “M9.15: MPEG-2 video in MXF (D-10/IMX, XDCAM HD/HD422) decodes; open-GOP leading pictures seek from the previous GOP”; “M4.9: draft decoding for reduced-resolution playback (opt-in preference)”; “M9.15: MPEG TS/PS/ES media source (MPEG-2, H.264, HEVC; MP2, AAC ADTS/LATM, LPCM) with ffmpeg oracle tests”; and 9 more. Also in this area: 1 commit (0 fixes) modifying crates/gpu, crates/media; 7 commits (0 fixes) modifying crates/codecs; 2 commits (2 fixes) fixing crates/media; 1 commit (1 fix) fixing crates/media.

crates/ac3, crates/media/src · low confidence · unverified

12 commits (1 fix) modifying crates/project

A change to existing behaviour in crates/project — 12 commits (1 fix), 9 files: “M8.8: colour management — sequence working space (Rec. 709 / Rec. 2100 PQ / HLG, wide gamut), Interpret Footage colour space, log/HDR decode with BT.2390 tone mapping, HDR export signalling, HDR scopes”; “M10.4: caption tracks in the sequence model (project v2) + filmcraft-captions (SRT/WebVTT/SCC read+write, CEA-608 pop-on/roll-up/paint-on decoder, pop-on encoder with frame-exact load scheduling, burn-in layout + own rasteriser over skrifa outlines with Inter) + caption edit ops (add/split/merge/trim/move/delete, sync-locked insert/extract)”; “M10.2: graphic clips — text and shape layers in the project model, vector renderer (CPU + GPU plan), graphics.\* commands”; and 9 more. Also in this area: 1 commit (0 fixes) modifying crates/audio-dsp, crates/edit, crates/project; 4 commits (0 fixes) modifying crates/project; 1 commit (1 fix) fixing crates/project.

(repo-wide) · low confidence · unverified

14 commits (5 fixes) modifying crates/engine

A change to existing behaviour in crates/engine — 14 commits (5 fixs), 29 files: “voice-over: the Mixer's input meter follows the microphone while recording”; “\#1216: a cap on the CPU threads an export uses (ExportSettings::max\_threads)”; “fix(timeline): preserve individual linked clip selections”; and 11 more (refs \#1216, \#1831, \#1675, \#1545, \#1916, …). Also in this area: 1 commit (0 fixes) modifying crates/audio-dsp, crates/edit, crates/project; 4 commits (1 fix) modifying crates/edit; 1 commit (1 fix) fixing crates/edit.

(repo-wide) · low confidence · unverified

182 commits (5 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 182 commits (5 fixs), 17 files: “ROADMAP: crash recovery day — VP9, Opus, captions, previews, autosave/recovery, test infra merged; \~40% parity, 724 tests”; “Linux: NVDEC hardware decoding for H.264 and HEVC”; “\#598: import AVI files (Motion JPEG, H.264, HEVC, uncompressed; PCM, MP3, MP2, AC-3)”; and 179 more (refs \#598, \#3645, \#609, \#271, \#405, …).

(repo-wide) · low confidence · unverified

2 commits (0 fixes) modifying assets, crates/captions

A change to existing behaviour in assets, crates/captions — 2 commits, 21 files: “M10.4: caption tracks in the sequence model (project v2) + filmcraft-captions (SRT/WebVTT/SCC read+write, CEA-608 pop-on/roll-up/paint-on decoder, pop-on encoder with frame-exact load scheduling, burn-in layout + own rasteriser over skrifa outlines with Inter) + caption edit ops (add/split/merge/trim/move/delete, sync-locked insert/extract)”; “M10.1: text engine (crates/text): font database with bundled OFL fonts and system-font discovery, harfrust shaping, bidi, line breaking, paragraph layout, glyph cache and rasteriser; captions and Timecode/Clip Name burn-ins use it”. Also in this area: 1 commit (0 fixes) modifying apps/filmcraft-web, assets.

assets · low confidence · unverified

2 commits (0 fixes) modifying assets, crates/captions

A change to existing behaviour in assets, crates/captions — 2 commits, 21 files: “M10.4: caption tracks in the sequence model (project v2) + filmcraft-captions (SRT/WebVTT/SCC read+write, CEA-608 pop-on/roll-up/paint-on decoder, pop-on encoder with frame-exact load scheduling, burn-in layout + own rasteriser over skrifa outlines with Inter) + caption edit ops (add/split/merge/trim/move/delete, sync-locked insert/extract)”; “M10.1: text engine (crates/text): font database with bundled OFL fonts and system-font discovery, harfrust shaping, bidi, line breaking, paragraph layout, glyph cache and rasteriser; captions and Timecode/Clip Name burn-ins use it”. Also in this area: 1 commit (0 fixes) modifying crates/captions, crates/format, crates/text; 3 commits (1 fix) modifying crates/captions; 1 commit (1 fix) fixing crates/captions.

crates/captions/src · medium confidence · unverified

2 commits (0 fixes) modifying crates/color

A change to existing behaviour in crates/color — 2 commits, 7 files: “M8.8: colour management — sequence working space (Rec. 709 / Rec. 2100 PQ / HLG, wide gamut), Interpret Footage colour space, log/HDR decode with BT.2390 tone mapping, HDR export signalling, HDR scopes”; “M8.8: colour science in filmcraft-color — camera log curves, gamuts, BT.2390 tone mapping, gamut mapping; .cube/.3dl LUTs with tetrahedral interpolation”. Also in this area: 1 commit (0 fixes) modifying crates/color, crates/frame, crates/render; 12 commits (1 fix) modifying crates/codecs.

crates/frame · low confidence · unverified

2 commits (0 fixes) modifying crates/platform/examples, crates/platform/src/media\_foundation

A change to existing behaviour in crates/platform/examples, crates/platform/src/media\_foundation — 2 commits, 5 files: “Windows: Media Foundation / Direct3D 11 hardware H.264 + HEVC decode (\#30)”; “Windows: VP9 + AV1 hardware decode through Media Foundation / DXVA (\#30)” (refs \#30).

_crates/platform/examples, crates/platform/src/media\foundation · medium confidence · unverified

2 commits (1 fix) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 2 commits (1 fix), 10 files: “Clippy 1.99: fix new lints so \cargo xtask ci\ is green again”; “Never crash: deny the panicking lints in the already-clean crates and apps”.

crates/scopes · medium confidence · unverified

2 commits (1 fix) modifying crates/av1/examples

A change to existing behaviour in crates/av1/examples — 2 commits (1 fix), 1 file: “M4.10: AV1 fixed-width MC passes, recycled planes, lean mode info, draft mode; media-stack draft test”; “M4.10: VP9 frame threading (band-published references, per-frame post stage) and draft mode”.

crates/av1/examples · medium confidence · unverified

28 commits (3 fixes) modifying crates/ui-egui/src

A change to existing behaviour in crates/ui-egui/src — 28 commits (3 fixs), 12 files: “M4.6: GPU path converts layer texels on the frame workers, not on the UI thread”; “M10.4: caption UI — caption track rows above the video tracks (select, drag to move/trim, eye/lock headers), Text panel Captions tab (segment list with editable in/out/text, add/split/merge/delete/export, track picker, style strip), Burn Captions Into Video in Export mode, caption file dialogs; docs/captions.md”; “M7.2: Audio Track Mixer and Audio Clip Mixer panels, timeline track keyframes, live recording”; and 25 more.

crates/ui-egui/examples, crates/ui-egui/examples/bench · low confidence · unverified

32 commits (1 fix) modifying crates/ui-egui

A change to existing behaviour in crates/ui-egui — 32 commits (1 fix), 3 files: “timeline: snap transition drops to Start/Center/End at Cut”; “i18n: Russian catalog covers the whole interface”; “i18n: German (de) joins Edit \> Language”; and 29 more (refs \#218, \#1435, \#867, \#498, \#482, …).

crates/ui-egui · medium confidence · unverified

4 commits (0 fixes) modifying apps/filmcraft

A change to existing behaviour in apps/filmcraft — 4 commits, 4 files: “M0.10/M0.11: egui shell — docking workspaces, header/menus, Project, Source/Program monitors, Timeline with all edit tools, Tools, Effects, Effect Controls, Lumetri, meters, mixer, control channel, desktop app with cpal audio”; “UI fidelity pass from the Premiere 26 black-box reference: measured palette and label colours, square panels with 4 pt gutters, tab strips with underline + menu glyph, header layout, native macOS menu bar (muda), status/hint bar, Properties panel, timeline restyle (clip bodies, name band, fx badge, head thumbnails, rectified waveforms, hatched transitions, track header layout with patch/target buttons, markers row, 30 pt toolbar, zoom bar knobs), monitor controls, meters, tools”; “M5.8: wgpu compositor — frame plans (render crate), YUV/RGB layer sampling with footprint supersampling in WGSL, linear-light premultiplied compositing, upload cache; Program monitor composites on the GPU (FILMCRAFT\_CPU\_COMPOSITE=1 to disable)”; and 1 more. Also in this area: 1 commit (0 fixes) modifying apps/filmcraft, crates/audio-dsp, crates/isobmff; 5 commits (1 fix) modifying apps/filmcraft; 1 commit (1 fix) fixing apps/filmcraft.

(repo-wide) · low confidence · unverified

6 commits (0 fixes) modifying crates/render

A change to existing behaviour in crates/render — 6 commits, 13 files: “M8: Lumetri curves, hue curves, colour wheels, looks, HSL secondary (render + panel UI); Color workspace layout”; “M0.12: xtask layers/wasm/ci gates (layer table, same-layer allow-list, UI crates barred below L5); cargo alias”; “M4: LUT-based linear conversion and linear-light box decimation for reduced-resolution playback”; and 3 more. Also in this area: 1 commit (0 fixes) modifying crates/gpu, crates/media; 4 commits (1 fix) modifying crates/gpu.

crates/gpu · low confidence · unverified

9 commits (1 fix) modifying crates/engine

A change to existing behaviour in crates/engine — 9 commits (1 fix), 20 files: “security(proxies): reserve outputs atomically (\#2922)”; “CI: xtask ci in the dev profile, one test binary per crate, nextest (\#2860)”; “fix(engine): resolve stored media paths with craft-docpath's resolve\_absolute (\#2609)”; and 6 more (refs \#2922, \#2860, \#2609, \#2869, \#2887, …). Also in this area: 1 commit (0 fixes) modifying (repo-wide); 3 commits (0 fixes) modifying crates/export.

crates/export/tests · low confidence · unverified

Test coverage

1 commit adding/updating tests in crates/aac, crates/dng; 1 commit adding/updating tests in crates/engine/tests; 1 commit adding/updating tests in crates/interchange/tests; 1 commit adding/updating tests in crates/matroska; 2 commits adding/updating tests in crates/av1/tests, crates/h264; 2 commits adding/updating tests in crates/av1/tests, crates/h264; 7 commits adding/updating tests in crates/ui-egui/tests.

Dependencies

27 commits updating dependencies (29 manifests)

A dependency / build maintenance change in (dependencies) — 27 commits, 29 files: “M6.5/M6.6: export pipeline (parallel render → MJPEG/PCM MOV, PNG sequence, GIF, WAV) as background engine jobs; Export mode wired; control channel defers requests until elements render”; “M1/M2: wire filmcraft-h264 into the codec hub (MP4/MOV H.264 with B-frames, GOP-aware seeking)”; “M0.10/M0.11: egui shell — docking workspaces, header/menus, Project, Source/Program monitors, Timeline with all edit tools, Tools, Effects, Effect Controls, Lumetri, meters, mixer, control channel, desktop app with cpal audio”; and 24 more. Also in this area: 1 commit updating dependencies (3 manifests).

(dependencies) · medium confidence · unverified

Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 75.

Lenses

  • Code Health 83
  • Architecture 95
  • Maturity 78
  • Readiness 73
  • Security 70
  • Event Sourcing 100
  • Performance 100

Changes since last survey

  • 300 commits — 268 feature/other, 32 fixes

By area

  • (repo) — 118 commits
  • crates/ui-egui — 46 commits
  • crates/engine — 19 commits
  • crates/interchange — 13 commits
  • (root) — 11 commits
  • crates/codecs — 9 commits
  • apps/filmcraft-web — 8 commits
  • crates/captions — 8 commits
  • crates/project — 7 commits
  • crates/render — 6 commits
  • apps/filmcraft — 3 commits
  • apps/filmcraft-cli — 3 commits
  • crates/dng — 3 commits
  • crates/gpu — 3 commits
  • crates/h264 — 3 commits
  • crates/tts-text — 3 commits
  • .github/workflows — 2 commits
  • contributors/people.toml — 2 commits
  • crates/audio-dsp — 2 commits
  • crates/automation — 2 commits

Notable commits

  • fix: Integration: #2050 port the auto point fix to project/track.rs and its test to project/tests.rs
  • fix: Integration: #3389 #3391 fix the ruler menu braces and the caption padding test's style call
  • fix: M10.7: fix per-character Stroke and Stroke 2 controls (#3938)
  • fix: Merge PR #1118: fix: シーケンス配置時の自動文字起こしを実行 #903
  • fix: Merge PR #1555: fix(control): sequence.settings without params reports the settings instead of opening a dialog
  • fix: Merge PR #1829: fix(codecs): read the frame rate phone clips average to (#1700)
  • fix: Merge PR #2007: fix: satisfy clippy::nonminimal_bool on Rust 1.96
  • fix: Merge PR #2089: fix(ui): Close All Projects asks to save unsaved changes
  • fix: Merge PR #2232: fix(timeline): Track Select tools skip locked tracks (#2223)
  • fix: Merge PR #2284: fix(interchange): a huge duration times a speed saturates instead of overflowing
  • fix: Merge PR #2365: fix(engine): timeline.slip by i64::MIN clamps instead of overflowing
  • fix: Merge PR #2410: fix(tts-text): a currency amount past the digit cap is read digit by digit
  • fix: Merge PR #2533: fix(timeline): a press hits only the track rows of its own pane when tracks are scrolled
  • fix: Merge PR #2704: fix(ui): submit clip dialogs on Enter key (#2659)
  • fix: Merge PR #2710: #2682: Lumetri curves get automation elements; regression test for curve undo/redo
  • fix: Merge PR #2847: fix(interchange): bound subclip parent resolution to prevent cycle stack overflow
  • fix: Merge PR #2974: fix(captions): VTT parse decodes the writer's cue-text arrow escape (#2066)
  • fix: Merge PR #3052: Fix FCPXML slideshow imports and missing-media relinking (#2837)
  • fix: Merge PR #3483: fix(sequence): clamp a new transition's duration to what its cut supports
  • fix: Merge PR #3486: fix(#issue3): loop button highlights when looping is active
  • …and 280 more

Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

storytold/filmcraft was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 7 November 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit da535c18433dbe046553733b0ab08ce9bd736a51 — the exact code this score is about.
  • Scored under rubric-2026.11.2 — the same rubric and the same method as every other entry in this index.
  • Measured by Canine Code Analyzer (cca.canine.dev) using cca measure-2026.11.3+preprod-5f8314471808.