跳转到内容
查看源码

命令行(CLI)

entelechy 是唯一的命令行入口;Player 也可以作为独立程序 entelechy-player 运行。每个子命令的完整参数见类参考 · 命令,它们由 entelechy 自身的用法文本生成。

终端窗口
entelechy new hello --kind picture # 新建能运行的项目(带回放)
entelechy check kernels/rings.ent scene.esn # 编译检查
entelechy run scene.esn --out out.ppm --watch # 运行并监视修改
entelechy player scene.esn # 在窗口中实时运行
entelechy replay tests/*.replay # 运行测试
entelechy serve scene.esn --listen 127.0.0.1:7788 # 给 Agent 提供协议
entelechy graph scene.esn # 看展平后的图与计划
entelechy trace scene.esn --node rings --at 128 128 # 单步一个元素
entelechy help sample # 查语法与 API
命令 作用
new 生成一个能直接运行的场景,附带检查它的回放测试。
check 编译文档,打印清单或诊断信息。
run 对场景求值一次,或在文件变化时持续运行(–watch)。
render 按帧推进场景若干帧,写出每帧画面和声音。
player 运行 Player:在窗口中打开场景并实时热更新。
replay 用脚本化的帧与输入驱动场景并做检查(回放测试)。
serve 在 stdin/stdout(以及 –listen)上提供创作协议。
graph 打印展平后的图及其执行计划。
trace 运行某个节点 Kernel 的一个元素,打印它的每个绑定。
bench 在一个或多个后端上测量场景的帧耗时。
import 运行导入器:把 glTF、音频、MIDI、SVG、字体导入为 Host 文件。
export 运行导出器:把 Host 文件写成 GLB、WAV、MIDI、字体等格式。
help 各层的语法与 API:全部,或某个名字的完整说明。
version 打印 Entelechy 及各项契约的版本。
package 检查一个包目录并说明它包含什么。
pack 把包目录打包成单个归档文件。
unpack 把包归档还原成目录。

大多数运行场景的命令(run、render、replay、serve、graph、trace、bench、Player)共享:

参数 作用
--backend cpu|gpu|jit 选择后端(bench 还接受 all;Player 默认 best)
--library <dir|file> 场景 use 之外的 Kernel
--param <name>=<literal> 覆盖图参数
--input <name>=<path>、--output <name>=<path> 把输入/输出放到别处,场景文本不变
--no-fusion 关闭融合
--allow …、--grant … Host 权限与 Kernel 能力(见能力与安全)
--memory <MB>、--work <M>、--small <operations> Host 预算
--window <w>x<h>[@<scale>] window() 看到的窗口
--profile 打印每个节点的用时、后端与传输,以及每个 Kernel 的准备时间
  • check 编译文档并打印清单或诊断;还会提示对设备编译器过大的 Kernel、没有节点使用的 Kernel,以及某些元素永远不会运行的节点。--ir 打印经过校验的 IR。
  • graph 打印展平的图、已发布 Kernel、状态推进顺序与执行计划(见图与状态)。
  • trace 在解释器上运行某个节点的一个元素,打印它做出的每个绑定(真实输出):
$ entelechy trace scene.esn --node rings --at 128 128
rings (demo.rings@1), element (128, 128), as the evaluation at time 0 runs it
uv: Vec2 = vec2(0, 0)
r: Float = 0
band: Float = 0
-> result: Vec4 = vec4(0, 0, 1, 1)
  • help 从实现执行的表中回答语法和 API:entelechy help(全部)、entelechy help window、--json。
  • version 打印 Entelechy 及其各契约的版本(真实输出):
$ entelechy version
entelechy = 0.0.2-rc.3
entelechy.api = 1
entelechy.language = 3
entelechy.ir = 1
entelechy.package = 1
终端窗口
entelechy player examples/life/scene.esn
entelechy-player editor.esn --folder disk,checks,defined,disk_ops --folder-allow file.write,file.delete

Player 的参数和快捷键见实时替换。