把主题渲染成 240×120 字符网格的完整影片
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add YanKaFei/ascii-cinema-engine该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 38 处,展示前 30 条)
- 读取本地文件experiments/gpu-ascii/spike.mjs:35
const scene = JSON.parse(await readFile(irPath, "utf8")); - 写入本地文件experiments/gpu-ascii/spike.mjs:64
await mkdir(path.dirname(outPath), { recursive: true }); - 写入本地文件experiments/gpu-ascii/spike.mjs:66
await writeFile(outPath, png); - 读取本地文件src/audio/audio-source.ts:71
const b = await readFile(p); - 读取本地文件src/audio/decode.ts:56
const pcm = await readFile(decodedPath); - 删除本地文件递归src/audio/decode.ts:59
await rm(dir, { recursive: true, force: true }); - 读取本地文件src/cli/engine.ts:110
return JSON.parse(await readFile(p, "utf8")) as T; - 写入本地文件src/cli/engine.ts:184
await writeFile(p.spec, JSON.stringify(film, null, 2) + "\n", "utf8"); - 写入本地文件src/cli/engine.ts:230
await writeFile(p.shots, JSON.stringify(shotList, null, 2) + "\n", "utf8"); - 写入本地文件src/cli/engine.ts:291
await writeFile(path.join(outDir, "film-spec-v2.json"), JSON.stringify(film, null, 2) + "\n", "utf8"); - 写入本地文件src/cli/engine.ts:292
await writeFile(path.join(outDir, "film-spec.json"), JSON.stringify(v1, null, 2) + "\n", "utf8"); - 写入本地文件src/cli/engine.ts:324
await writeFile(path.join(outDir, "shot-list.json"), JSON.stringify(shotList, null, 2) + "\n", "utf8"); - 写入本地文件src/cli/engine.ts:329
await writeFile( - 读取本地文件src/cli/engine.ts:500
const buf = await readFile(p); - 写入本地文件src/render/encode.ts:19
await mkdir(dir, { recursive: true }); - 读取本地文件src/render/encode.ts:24
return (await stat(p)).size; - 写入本地文件src/render/encode.ts:94
await writeFile(outPath, png); - 写入本地文件src/render/encode.ts:150
await writeFile(outPath, png); - 写入本地文件src/render/encode.ts:179
await writeFile(outPath, buf); - 删除本地文件src/render/encode.ts:185
await rm(p, { force: true }); - 执行外部命令来自配置/变量src/util/ffmpeg.ts:18
const child = spawn(bin, args, { - 执行外部命令来自配置/变量src/util/ffmpeg.ts:40
const r = spawnSync(bin, ["-version"], { encoding: "utf8" }); - 执行外部命令来自配置/变量src/util/ffmpeg.ts:200
const child = spawn(opts.ffmpeg, args, { - 执行外部命令来自配置/变量src/util/ffmpeg.ts:244
const r = spawnSync(c, ["-version"], { encoding: "utf8" }); - 执行外部命令来自配置/变量src/util/ffmpeg.ts:309
const child = spawn(opts.ffmpeg, args, { - 执行外部命令来自配置/变量src/util/toolchain.ts:73
const r = spawnSync(bin, ["-hide_banner", "-version"], { - 读取本地文件src/util/toolchain.ts:87
if (existsSync(candidate) && statSync(candidate).isFile()) return candidate; - 读取本地文件src/util/toolchain.ts:87
if (existsSync(candidate) && statSync(candidate).isFile()) return candidate; - 读取本地文件src/util/toolchain.ts:98
if (envFfmpeg && envFfprobe && existsSync(envFfmpeg) && existsSync(envFfprobe)) { - 读取本地文件src/util/toolchain.ts:165
return readdirSync(root).filter((d) => d.startsWith("compositor-"));
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
一部完全由字符构成的电影引擎——每帧 240×120 个 ASCII 字符格,确定性渲染,因果编译。
README
由 DeepSeek 最新模型翻译生成运行 / RUN
npm ci
npm run typecheck && npm run build
npm test # 518,975 不变式断言
npm run gate:phase2 # 完整质量门:typecheck → build → test → 回归 → 基准 → 多样性
完整管线:
node scripts/pipeline.mjs --prompt <主题> --out out/<name>
环境变量
两个脚本需要外部素材,路径由环境变量提供,仓库内不含这些文件:
| 变量 | 用途 |
| CINEMA_TRACK | scripts/phase4a3.mjs / phase4b0-.mjs 的音频轨路径 |
| CINEMA_PYTHON | scripts/phase4a3-independent.mjs 用于独立比对的 Python 解释器 |
未设置时会明确报错,不会静默使用错误路径。
依赖的渲染工具链不在本仓库内
node_modules 与 FFmpeg / Remotion 平台二进制不随仓库分发(见 LICENSE.md)。
out/draftt2/final-draftt2.mp4 是已生成的成片,用于直接观看。
ENGINE · 96 TypeScript files / 30,458 lines · 240 × 120 character grid · byte-for-byte reproducible
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
YanKaFei/ascii-cinema-engine
把主题渲染成 240×120 字符网格的完整影片
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9