Studio
启动和使用用于 pipeline preview、streaming 和交互式世界模型调试的多前端 Studio。
介绍
WorldFoundry Studio 是围绕仓库 pipelines 的薄可视化入口。模型在启动时固定;切换模型族时启动新进程。
Studio 现在有多前端入口:
| Frontend | 适用场景 | 说明 |
|---|---|---|
world | 交互世界模型 | 独立 WebRTC 控制台:常驻模型、可靠按键边沿 DataChannel、有界内存帧队列、单一持续视频轨、沉浸式全屏和实时运行日志;控制热路径不生成 MP4。 |
points | Viser 点云 / mesh | 直接启动原生 Viser,不嵌回游戏机界面。 |
embodied | 具身智能仿真器 | 计划中。 目前只是 URL bridge:Studio 登记外部 simulator URL 并给出 tunnel 提示,还没有仓内 embodied viewer。 |
spark | 3DGS | 启动独立 Spark 3DGS viewer,复用项目内置 Spark frontend,并允许通过 WORLDFOUNDRY_MODEL_DIR / WORLDFOUNDRY_ARTIFACT_DIR 暴露本地资产。 |
auto | 默认 | 按模型类型自动路由:交互世界 -> world,3D scene -> spark,点云/深度 -> points,具身策略 -> embodied。 |
可视化内容
| Surface | 作用 |
|---|---|
| Preview Video | 最新生成或 streamed video。 |
| Preview Image | Still-image outputs 和 imported reference frames。 |
| 3D World | 导出时显示 Gaussian splat、point cloud 或 spatial outputs。 |
| Gallery | 最近 shots 和 preview artifacts。 |
| Artifacts | 用于检查和下载的 raw output artifacts。 |
默认情况下,Studio 会隐藏大多数高级面板。使用 --show-aux-panels 显示 history、notes、catalog、3DGS import 和低层 runtime controls。
Workspace 模式
多模型验证和发布 QA 推荐启动 workspace app,而不是单模型 Studio 进程:
source tmp/worldfoundry_unified_env.sh
conda activate "${WORLDFOUNDRY_UNIFIED_ENV_PREFIX}"bash scripts/workspace/run_workspace.sh \
--host 127.0.0.1 \
--port 7870 \
--max-jobs 8如果 checkpoint 或 benchmark 数据不在默认 cache 中,显式传入根目录:
bash scripts/workspace/run_workspace.sh \
--ckpt-dir /path/to/checkpoints \
--data-dir /path/to/benchmark-datalauncher 不依赖任何机器专有路径。资产解析顺序是:命令行参数、已经导出的
环境变量、repo 同级存在的 ckpt/ 或 data/ 目录、tmp/worldfoundry_unified_env.sh
中的 env-file 值,最后回退到 ~/.cache/worldfoundry/...。
Workspace 必须从模型推理使用的统一 runtime 环境启动,不能从只装了 UI
依赖的轻量环境启动。CUDA 12.8 机器通常对应
worldfoundry-unified-cu128,先执行 source tmp/worldfoundry_unified_env.sh
再启动 7870。如果 LOAD 或 START 报 cv2 等模块缺失,说明当前
7870 进程不是统一 runtime 环境,先重启 workspace,再排查模型代码。
不要在机器之间复制或搬迁已经创建好的 conda 环境。Python、OpenSSL 等原生
链接可能仍指向旧 prefix,导致浏览器服务能启动,但 resident inference worker
一运行模型就报缺少 python3.x、cv2、libssl 或 libcrypto。遇到这类
问题,按公开 setup 路径验证或重建统一环境:
bash scripts/setup/bootstrap_worldfoundry.sh --verify-only
source tmp/worldfoundry_unified_env.sh
bash scripts/workspace/run_workspace.sh打开:
http://127.0.0.1:7870/workspace 是发布验证时推荐使用的 UI。 它适合提交 inference job、检查不同模型的输入表单、查看生成产物, 以及在同一个界面里对比多次 run。
Workspace 也支持 evaluation job。以 VBench 为例:选择 Evaluation,
benchmark 选 vbench,把生成视频目录填到 Dataset Root(或把官方
VBench results JSON 填到 Results Path),Metrics 填一个或多个
dimension,例如 aesthetic_quality、motion_smoothness,也可以填 preset
custom_supported。VBench 专用 runtime 参数,例如
{"mode":"custom_input","load_ckpt_from_local":true},写到 Eval Runtime JSON。
Create Job 配置
Workspace UI 没有单独的 Settings 页。每次提交前在 Create Job 对话框里 定制参数即可。
| 字段分组 | 作用 |
|---|---|
| Model / variant / task profile | 选择 catalog 条目,以及该模型暴露的官方输入 contract。 |
| Prompt、input path、动态 task 字段 | 来自 inference contract 的模型专用输入。 |
| Device、backend、attention | 运行设备与加载路径(auto、from_pretrained、api_init)。 |
| Frames、FPS、height、width、steps、guidance、seed | 写入 job payload 的生成参数。 |
| Runtime checks | 可选内存/编译开关,例如 Torch Compile、CPU Offload、VAE Offload、Text Encoder Offload;仅在所选模型声明支持时显示。 |
| Call JSON / Load JSON | 合并进 call_kwargs 和 load_kwargs 的高级 override。 |
打开 Create Job 或切换 task profile 时,表单会先用 Workspace 启动时加载 的默认值预填。catalog 和 task profile 中的模型专用官方 demo 值仍优先于这些 共享默认值。
未配置 settings 文件时的默认值:
| Key | 默认值 |
|---|---|
device | cuda;若设置了 WORLDFOUNDRY_STUDIO_DEVICE 则使用该值 |
backend | auto |
attention_backend | auto |
fps | 16 |
num_frames | 81 |
height × width | 720 × 1280 |
num_inference_steps | 30 |
guidance_scale | 7.5 |
seed | -1 |
torch_compile / cpu_offload | false |
可选的持久化默认值
若希望在 Workspace 重启后仍复用同一套默认值,可指定 JSON settings 文件:
export WORLDFOUNDRY_STUDIO_SETTINGS_FILE=/path/to/studio-settings.json启动时 Workspace 会把该文件加载到 /api/settings,Create Job 表单通过
GET /api/settings 读取。运维脚本也可以用 POST /api/settings 更新:
curl -sS -X POST http://127.0.0.1:7870/api/settings \
-H 'Content-Type: application/json' \
-d '{"values":{"fps":12,"num_frames":49,"attention_backend":"torch"}}'未设置 WORLDFOUNDRY_STUDIO_SETTINGS_FILE 时,默认值只存在于当前 Workspace
进程内存中,重启后会恢复为内置默认。
快速 job 与 preflight 检查
Workspace inference 默认走快速 job 路径:默认认为 conda 环境、checkpoint 根目录和 viewer 依赖已经在启动 server 前配置好。正常反复推理时建议保持默认。
只有在环境排障或发布前 preflight 时,再显式打开检查:
| 环境变量 | 默认值 | 作用 |
|---|---|---|
WORLDFOUNDRY_STUDIO_RUNTIME_CHECKS=strict | 跳过 | pipeline load 前验证 runtime imports 和本地 model path。 |
WORLDFOUNDRY_STUDIO_CHECK_RUNTIME_COMPLETENESS=1 | 跳过 | 构建 Studio catalog 时重新检查仓内 3D/4D entrypoint 文件。 |
WORLDFOUNDRY_STUDIO_RESIDENT_WORKERS=0 | auto | 关闭长驻 conda worker,恢复每个 job 单独启动子进程。 |
WORLDFOUNDRY_STUDIO_RESIDENT_WORKER_MODELS=matrix-game-2 | 所有符合条件的模型 | 只给指定模型启用 resident worker;torchrun/多卡 job 仍走一次性子进程。 |
WORLDFOUNDRY_STUDIO_ARTIFACT_SCAN_MODE=missing | missing | run record 缺少 required artifacts 时才扫描输出目录。 |
WORLDFOUNDRY_STUDIO_ARTIFACT_SCAN_MODE=always | 默认不启用 | 对未返回 artifact paths 的旧 runtime 强制递归扫描输出目录。 |
WORLDFOUNDRY_STUDIO_ARTIFACT_SCAN_MODE=off | 默认不启用 | 完全不扫描输出目录,只相信 preview_*、artifact_paths 和 rrd_path。 |
WORLDFOUNDRY_STUDIO_VALIDATE_PREVIEW_VIDEO=1 | 跳过 | 接受 preview video 前先尝试解码。 |
WORLDFOUNDRY_STUDIO_EXTRACT_VIDEO_PREVIEW_IMAGE=1 | 跳过 | 从生成视频中抽取静态 preview image。 |
WORLDFOUNDRY_STUDIO_BUILD_RERUN_PREVIEW=1 | 跳过 | 对 geometry 输出自动构建 .rrd preview。 |
为了让 job 完成路径最快,模型 runtime 应该在 run record 中显式返回
preview_image、preview_video、artifact_paths、rrd_path 和 output_dir。
只有旧 runtime 只写文件、不返回路径时,才建议把 artifact scan mode 切到
always。
Resident worker 会让 conda 子进程在多个 job 之间保持存活,因此子进程里的
StudioManager 可以复用 pipeline cache。排查进程启动问题,或希望每个 job
结束后立刻释放 GPU 显存时,设置 WORLDFOUNDRY_STUDIO_RESIDENT_WORKERS=0。
Visualizers、Gallery 和 Artifacts 适合快速视觉 QA。 这些视图会展示最近生成的视频、图片、manifest 和直接 artifact 链接。 真正对外声明验证通过前,还需要把对应 run 记录到模型推理验证页。
Workspace 可视化入口
7870 Workspace 是整套可视化服务的统一浏览器入口。打开 Visualizers
页面后,每张卡片都有 Launch、Open 和 Stop 按钮。卡片下方会
嵌入正在运行的 viewer iframe,普通 QA 流程里不需要手动复制 URL。具身仿真器
Bridge 卡片标记为 计划中:与 Viser、Spark、Rerun、World Rollout 不同,目前还不会启动仓内 embodied viewer。


世界模型分段 Rollout
- 端口
7868 - Alias
interactive-world, world-model, world-rollout
面向实时漫游的缓冲式动作条件 rollout。前端持续采样控制输入并预取生成片段。
产物image, video, action_trace
python -m worldfoundry.studio.app matrix-game-2 --frontend world --port 7868
Viser Geometry Viewer
- 端口
18590 - Alias
viser, geometry, pointcloud
点云、depth 转 point set、mesh、camera pose 和 trajectory。
产物ply, pcd, xyz, glb, gltf, obj, npz
python -m worldfoundry.studio.app pi3 --frontend points --asset /path/to/scene.ply
Rerun Timeline Viewer
- 端口
9876 - Alias
rrd
`.rrd` timeline / recording,同步 camera、frame、track 与 3D entity。
产物rrd
python -m worldfoundry.studio.app vggt --frontend rerun --asset /path/to/recording.rrdSpark Gaussian Splat Viewer
- 端口
8765 - Alias
3dgs, splat
通过仓内 Spark frontend 查看 3D Gaussian splat。实时预览来自 Spark.js Hello World butterfly demo。
产物splat, spz, ksplat, sog, splat-ply
python -m worldfoundry.studio.app vggt --frontend spark --asset /path/to/scene.splat
具身仿真器 Bridge
计划中- 端口
18610 - Alias
sim, simulator
仍处于计划/早期集成阶段。当前 Studio 只会登记外部 simulator URL 并给出 tunnel 提示,还没有仓内 embodied viewer。请先单独启动 simulator,再把 URL 填到 Visualizers。
产物action_trace, trajectory, simulator_url
python -m worldfoundry.studio.app openvla --frontend embodied --simulator-url http://127.0.0.1:18610world 默认使用 7868。只有部署环境要求固定代理路由时,才需要手动指定端口。
实时前端需要 worldfoundry[studio_realtime](worldfoundry[ui] 已包含)。
服务启动时会后台加载模型;一次会话固定复用同一个 pipeline context 和执行线程。
WASD/IJKL 只发送按下/释放边沿,服务端按生成 chunk 重采样;RGB 帧直接进入
WebRTC 视频轨。控制到画面的热路径不会扫描 artifact、写 manifest 或编码 MP4。
| 环境变量 | 默认值 | 作用 |
|---|---|---|
WORLDFOUNDRY_REALTIME_FPS | 16 | WebRTC 播放节奏与输入重采样频率。 |
WORLDFOUNDRY_REALTIME_CHUNK_FRAMES | 9 | 每个生成 chunk 的目标帧数;有严格时序约束的模型会覆盖该值。 |
WORLDFOUNDRY_REALTIME_INFERENCE_STEPS | 模型默认;LingBot Fast 为 4 | 显式的延迟/质量覆盖;非蒸馏模型不会被静默降到 4 步。 |
WORLDFOUNDRY_REALTIME_FRAME_QUEUE | max(chunk, 8) | 单个 steady-state chunk 的有界播放队列。 |
WORLDFOUNDRY_REALTIME_BACKPRESSURE_MS | 半个 chunk | 正常播放时保留全部帧;只有拥塞超过预算才丢弃旧帧。 |
WORLDFOUNDRY_REALTIME_WARMUP_CHUNKS | 1 | 后台 stream warmup;设为 0 可关闭,编译/autotune 实验可调高。 |
WORLDFOUNDRY_REALTIME_LIVENESS_TIMEOUT_SECONDS | 30 | 浏览器 heartbeat 消失后自动回收会话,同时避免误杀较慢的在途 chunk。 |
WORLDFOUNDRY_REALTIME_ICE_SERVERS_JSON | 未设置 | 浏览器无法直连 GPU 主机时使用的 STUN/TURN iceServers JSON。 |
远程机器上使用时,需要暴露 7870 和实际启动的 viewer 端口。例如:
ssh -L 7870:127.0.0.1:7870 \
-L 18590:127.0.0.1:18590 \
-L 8765:127.0.0.1:8765 \
-L 9876:127.0.0.1:9876 \
user@host产物可视化路由
inference job 完成后,Workspace 会扫描 run record 和输出目录里的可视化产物。 Artifacts 页会为支持的文件显示 Open 和 Open in ... 操作。 Job Detail 只保留内嵌 preview video/image,不再重复 viewer 快捷入口。
| 产物形态 | Viewer |
|---|---|
.png, .jpg, .jpeg, .webp, .gif, .bmp, .mp4, .mov, .webm, .mkv, .avi, .wav, .mp3, .flac, .ogg media files | Workspace 内联预览和直接 Open 链接 |
.ply, .pcd, .xyz, .glb, .gltf, .obj geometry files;包含可解释 geometry/depth key 的 .npz | Viser Geometry Viewer |
.splat, .spz, .ksplat, .sog 和 Gaussian-splat .ply | Spark Gaussian Splat Viewer |
.rrd recordings | Rerun Timeline Viewer |
Base model 感知结果
WorldFoundry 为仓内 3D 和 perception model 维护一份统一的可视化能力注册表。 编写 model-specific viewer 前先查询注册表:
worldfoundry-eval models visualizations
worldfoundry-eval models visualizations --family perception_core
worldfoundry-eval models visualizations --model raft --json结构化 2D 结果复用同一个转换命令。当前支持 detection、mask、flow、
tracks、feature-pca、depth、normal、keypoints 和 text:
worldfoundry-eval models visualize \
--kind flow \
--artifact outputs/flow.npz \
--output outputs/flow.png
worldfoundry-eval models visualize \
--kind detection \
--artifact outputs/detections.json \
--media inputs/frame.png \
--output outputs/detections.png这条共享路径覆盖 Depth Anything、SAM、RAFT、DINO、GroundingDINO、 YOLO World、CoTracker 等仓内 family 的官方输出 schema。原生图像/视频进入 media viewer,点云和 mesh 进入 Viser,Gaussian splat 进入 Spark,同步场景记录 进入 Rerun。每个模型的权威映射以 registry 命令输出为准。
对磁盘上已有的 run,直接在 Workspace 打开该 run,用 Artifacts 标签页确认 viewer 路由。上表是路由参考;具体 run 以 Artifacts 里的 Open / Open in ... 按钮为准。
对模型作者来说,最容易复现的方式是把输出写到 Studio run 的输出目录,并在 run record 中保留稳定路径:
preview_image或preview_video:用于快速媒体预览。artifact_paths:用于原始生成产物。rrd_path:用于 Rerun recording。output_dir:用于让 Workspace 继续发现目录里的其他文件。
3D reconstruction 模型应该导出浏览器可读的 .ply、.glb、.gltf、.obj、
.pcd、.xyz 或紧凑点云/depth .npz。3DGS 模型应该导出原生 splat 文件,或者
header 中包含 scale、rotation、opacity、spherical-harmonic color 等 splat
属性的 binary little-endian Gaussian-splat PLY。Workspace 会在选择 Viser 或
Spark 前区分普通 PLY geometry 和 Gaussian-splat PLY。
坐标系契约
启动 viewer 是 geometry contract 的一部分。points、mesh、camera-to-world、frustum 和 trajectory 必须处于同一个已声明坐标系,不能只翻转点云:
- 已完成 OpenCV-to-OpenGL 对齐的官方 GLB 使用
asset-native和 exporter 声明的 up axis;VGGT/VGGT-Omega 官方 GLB 使用+Yup、alignment=none。 - VGGT/VGGT-Omega、UniDepth V2 与 UniK3D 的原始 model-point NPZ 保留 OpenCV
camera frame,Viser 只应用一次
opencv-to-opengl并使用+Yup。 - UniDepth V2/UniK3D 的 Workspace PLY 已写成
x-right/y-up/z-forward,因此使用asset-native、+Yup、alignment=none,不能再次翻转。 - DUSt3R、LoGeR 与 Pi3 的 PLY 保留预测 camera-to-world sidecar;Viser 对 points
与 cameras 一起应用
first-camera-opengl,使用+Yup,并按中心 5-95% geometry 取景,避免少量离群点把有效场景缩得过小。 - Rerun recording 必须声明 world
ViewCoordinates,并让每个Pinhole使用同一 camera convention;Cut3R 与 MonST3R 的 world/camera 都使用 RDF。
Workspace 会自动解析 VGGT、DUSt3R、LoGeR、Pi3、UniDepth V2 与 UniK3D 的上述已验证默认值。其他 exporter 可用 Visualizer Params JSON
显式覆盖。请求端口被占用时,Viser 会显示实际绑定端口。Rerun 默认使用 WebGPU;
只有目标浏览器需要时才设置 WORLDFOUNDRY_STUDIO_RERUN_RENDERER=webgl。
选择 3D viewer
默认按产物语义路由,避免每个模型重复实现 viewer:
| 输出语义 | 默认 viewer | 何时保留官方 viewer |
|---|---|---|
| 静态点云、mesh、depth-derived geometry、camera frustum | Viser | 存在共享 scene layer 无法表达的模型专用控制或标注。 |
| 时变 geometry、camera trajectory、同步 image/depth/action | Rerun | 导出为 .rrd 会丢失官方 timeline 语义。 |
| Gaussian splat | Spark | 上游依赖非标准 shader 或 splat 格式。 |
viewer 进程能启动不等于 inference 已完成视觉验证。3D/4D 方法的 release evidence 应先确认 geometry 与 camera data 有限,再在真实浏览器中打开实际产物,检查 canvas 非空且构图可读,执行 reset/orbit 或 timeline 交互,并检查 console error。官方 viewer 应作为小型 visualization plugin 保留;共享 Viser/Rerun scene layer 足够时, 不要复制其 inference runtime,也不要为单个模型另写 frontend。
Studio 截图
这些截图来自当前用于模型发布验证的 7870 workspace。
| 视图 | 检查重点 |
|---|---|
| Inference jobs | 已完成 run、内嵌 preview media、状态和日志。 |
| Create Job | 模型专用输入项和官方 demo 默认值。 |
| Catalog | world-model 过滤结果和模型 metadata。 |
| Gallery | 最近生成结果的并排视觉检查。 |
Inference Jobs
队列会展示已提交 run、最终状态,以及 run record 提供的内嵌 preview video 或 image。

Create Job
表单应该展示模型真实的输入 contract。 下面的截图只展示 UI 结构;真正的 release demo 声明应以验证记录和对应 run manifest 为准。

Catalog
Catalog 过滤可以用来确认 workspace 提交 job 前能看到哪些 world-model entries。

Gallery
Gallery 提供最近 inference outputs 和 preview artifacts 的紧凑视觉检查入口。
模型推理 Demo 结果
下面的 gallery 只做视觉参考,展示来自仓内 Studio 或 Studio-compatible API run 的 代表性产物。这里不是 release claim 表;精确参数、环境说明、run id 和剩余风险 记录在验证 reference 中。本页只嵌入经过筛选的非短测示例。
Reference-to-video
Image/control-to-video
Text-to-video
Image-to-video
Text-to-video
Image-to-video
Image-to-video
Human animation
Interactive world model
Cityscape world model
Image-pose world video
Interactive village world
Camera-path world video
World navigation
Robot video-input world model
Conditioned world video
Text-to-video
启动矩阵
| 场景 | 命令形状 | 说明 |
|---|---|---|
| LingBot realtime | python -m worldfoundry.studio.app lingbot-world --variant fast --frontend world --device cuda:1 | 常驻 runtime、持续 WebRTC 视频和 DataChannel 控制。 |
| LingBot camera | python -m worldfoundry.studio.app lingbot-world --variant base-camera --device cuda:1 | 更慢,偏 camera-centric profile。 |
| MatrixGame | python -m worldfoundry.studio.app matrix-game-2 --device cuda:1 | 交互式 world navigation。 |
| WorldCam | python -m worldfoundry.studio.app worldcam --device cuda:1 | Camera-path generation 和 view control。 |
| Hosted APIs | python -m worldfoundry.studio.app <model> --backend api_init --endpoint <url> | Endpoint 在启动时显式固定。 |
| Viser 点云 | python -m worldfoundry.studio.app pi3 --frontend points --asset /path/to/scene.ply --port 18590 | 原生 Viser UI。 |
| Spark 3DGS | python -m worldfoundry.studio.app vggt --frontend spark --asset /path/to/scene.splat --port 8765 | 独立 Spark canvas,不进入游戏机 shell。 |
| Embodied simulator | python -m worldfoundry.studio.app openvla --frontend embodied --simulator-url http://127.0.0.1:9000 | 计划中。 仅登记外部 simulator URL,不会启动仓内 viewer。 |
推荐本地启动:
cd /path/to/WorldFoundry
PYTHONPATH=. WORLDFOUNDRY_STUDIO_PORT=7868 conda run -p "${WORLDFOUNDRY_UNIFIED_ENV_PREFIX}" python -m worldfoundry.studio.app \
lingbot-world \
--variant fast \
--model-ref /path/to/checkpoints/lingbot-world-fast \
--device cuda:1如果当前 checkout 没有安装到环境里,请保留 PYTHONPATH=.。
Studio 启动时会打印解析到的 workspace、model、cache 和 Hugging Face cache 根目录,方便在真正运行前发现路径配置问题。
打开:
http://127.0.0.1:7868远程 GPU 节点推荐用 SSH tunnel。
world 进程通过配置的 HTTP 端口提供页面和 WebRTC signaling;视频与控制随后
走 ICE 选出的 WebRTC 链路。普通 SSH 端口转发只会承载 signaling,无法单独转发
WebRTC 媒体。浏览器不能直连 GPU 主机时,请通过
WORLDFOUNDRY_REALTIME_ICE_SERVERS_JSON 配置 TURN relay。
ssh -N -L 7868:127.0.0.1:7868 user@gpu-host
# local browser:
# http://127.0.0.1:7868页面状态条会显示 RTC 播放 FPS、生成耗时、控制延迟、队列深度和丢弃的旧帧。 ICE 超时会明确报错,不会让页面永久停留在连接中。
交互模式
| 模式 | 流程 | 最适合 |
|---|---|---|
| Image World | 选择示例图或上传 image -> START -> 按住键盘或摇杆控制 | image-conditioned 交互世界模型。 |
| Video World | 上传 video -> START -> 后续 video-to-video / continuation 流程 | video-conditioned world model。 |
| Stream | seed input -> 启动一个持续会话 -> 按键边沿与生成帧连续流动 | 交互式世界模型和 continuation。 |
| Prompt-scheduled segments | 输入 prompt,可选一张 image,然后 START;当前 segment 完成后修改 prompt 并按 Enter | 在原生 segment 边界接收新 prompt 的模型。 |
| Queued controlled segments | 选择初始 image、dense control video、sparse control video 和 prompt -> RUN;每次 EXTEND 前选择新的控制视频 | 每个 segment 都有显式控制输入的长时程模型。 |
| Spatial preview | 运行或导出 3D asset -> 打开 3D World | Gaussian splat、point cloud 或 scene outputs。 |
键盘/实时控制:
WASD = move
Arrow keys / IJKL = look键盘和摇杆的按下/释放边沿会立即通过当前实时通道发送。常驻 runtime 在模型 chunk 边界采样最新的有效控制状态;输入不会创建第二个 inference request,也 不会重新加载 pipeline。
沉浸式全屏与实时运行日志
全屏视图属于共享的 world 前端,因此所有路由到该前端的交互模型都可以使用。
它会复用当前 peer 或 socket、帧缓冲和常驻模型会话。进入或退出全屏不会让
浏览器重连,也不会重启生成。
- 按正常流程准备模型输入并启动会话。
- 点击 viewport 左上角的 FULLSCREEN,或按
F。 - 画面会铺满屏幕,并自动打开实时运行日志。
- 点击 LIVE LOG 或按
Shift+L,可以在不退出全屏的情况下隐藏或显示日志。 - 按
Esc或点击 EXIT,返回标准 Studio 布局和同一个活动会话。
| 操作 | 结果 |
|---|---|
FULLSCREEN / F | 进入或退出沉浸式全屏。 |
LIVE LOG / Shift+L | 在普通布局或全屏布局中开关运行日志。单独按 L 仍然是视角向右控制。 |
| CLEAR | 只清空页面上可见的日志历史;不会重置模型会话或 runtime 状态。 |
Esc | 退出全屏,回到同一个活动会话。 |
日志会展示 client/model 就绪状态、实时传输状态、segment 排队/生成/播放阶段、
错误和每个 chunk 的性能数据。chunk 完成后会记录帧数、生成耗时 (gen)、播放
队列深度 (queue) 和丢弃的旧帧数 (dropped)。这些内容用于当前交互会话排障;
它们不是持久化 run artifact,也不是服务端完整 stdout/stderr 的副本。
实时日志复用现有实时连接。浏览器按 animation frame 批量更新 DOM,并且最多 保留最近 120 条记录,因此长时间游玩不会无限扩大日志树,也不会在帧传输热路径 增加轮询。浏览器允许 Fullscreen API 时,点击按钮或使用快捷键会进入原生全屏; 如果原生全屏不可用或被浏览器策略阻止,Studio 会保持当前会话,并回退到铺满 浏览器视口的布局。 Workspace 的 visualizer iframe 已经授予 fullscreen 权限。
启动 flags
| Flag | 含义 |
|---|---|
positional model_id / --model | 启动目标。 |
--variant | Runtime profile,例如 fast 或 base-camera。 |
--model-ref / --ckpt / --checkpoint | 显式 local 或 repo reference。 |
--device | Runtime device。 |
--backend | auto、from_pretrained 或 api_init。 |
--endpoint | 显式 API endpoint。 |
--show-aux-panels | 显示 history、notes、catalog 和 side panels。 |
--frontend | auto、world、points、embodied 或 spark。 |
--asset | 原生 viewer 的远端资产路径,例如 point cloud .ply/.npz 或 3DGS .splat/.spz/.ply。 |
--simulator-url | 具身仿真器原生 URL。 |
--host / --port | 覆盖前端监听地址和端口。 |
环境变量
| Variable | 作用 |
|---|---|
WORLDFOUNDRY_WORKSPACE_PORT | Workspace HTTP 端口(默认 7870)。 |
WORLDFOUNDRY_WORKSPACE_MAX_JOBS | 并发 job worker 上限。 |
WORLDFOUNDRY_STUDIO_SETTINGS_FILE | 可选 JSON 文件,启动时加载到 /api/settings,供 Create Job 默认值使用。 |
WORLDFOUNDRY_STUDIO_PORT | 单模型 Studio server 端口。 |
WORLDFOUNDRY_STUDIO_MODEL | Default model id。 |
WORLDFOUNDRY_STUDIO_VARIANT | Default variant。 |
WORLDFOUNDRY_STUDIO_BACKEND | Default backend。 |
WORLDFOUNDRY_STUDIO_DEVICE | Default device。 |
WORLDFOUNDRY_STUDIO_ENDPOINT | API endpoint。 |
WORLDFOUNDRY_STUDIO_FIXED_MODEL_REF | 固定 local model/checkpoint ref。 |
WORLDFOUNDRY_STUDIO_SHOW_AUX_PANELS | 显示高级面板。 |
WORLDFOUNDRY_STUDIO_FRONTEND | 默认 frontend 路由。 |
WORLDFOUNDRY_STUDIO_ASSET | 原生 viewer 默认资产。 |
WORLDFOUNDRY_STUDIO_SIMULATOR_URL | 具身 simulator URL。 |
WORLDFOUNDRY_STUDIO_SPARK_PORT / WORLDFOUNDRY_STUDIO_POINTS_PORT | 各原生前端默认端口。 |
WORLDFOUNDRY_STUDIO_SSH_HOST | 启动日志中 tunnel 命令使用的 SSH host;设置为用户自己的 GPU 节点,例如 user@gpu-host。 |
WORLDFOUNDRY_STUDIO_WORKSPACE_DIR | Studio run/output 根目录;未设置时优先使用 ${WORLDFOUNDRY_ARTIFACT_DIR}/studio,否则使用 tmp/worldfoundry_studio。 |
WORLDFOUNDRY_STUDIO_MODEL_ROOT | 额外 local model repo 根目录,会在共享 roots 前优先搜索。 |
WORLDFOUNDRY_MODEL_DIR | 共享 model/checkpoint 根目录;Studio 会搜索其中的本地 repos 和 checkpoints。 |
WORLDFOUNDRY_CACHE_DIR | 共享 cache 根目录;Studio 会搜索 ${WORLDFOUNDRY_CACHE_DIR}/hfd 和 ${WORLDFOUNDRY_CACHE_DIR}/repos。 |
WORLDFOUNDRY_HF_CACHE_DIR | 可选 Hugging Face Hub cache 覆盖。默认不设置,交给 Hugging Face 原生 from_pretrained / snapshot_download 缓存与自动下载策略处理。 |
Studio 只支持 WORLDFOUNDRY_* 环境变量。
发布证据
只有当对应官方配置已经通过仓内 Studio 或 Studio-compatible API 路径运行后, 才把 demo media 放到公开文档中。保留对应 run manifest、解码后的视频元数据和 视觉 QA 记录,确保页面中嵌入的视频可以追溯到实际 release candidate run。