在线实验室使用指南
本站的交互块由 Datapack Sandbox 驱动。已建模命令的解析/执行、世界状态、资源解析和软件渲染都在独立 Web Worker 中完成;主线程只负责编辑器、UI、相机和 WebGL 绘制。
真实 VVE 骰子教程
下面的教程会在浏览器中载入 Math3、线性代数/几何库、VVE 3.0.1 运行时、骰子示例和官方资源包。点击 初始化并投掷 后,页面执行真实的 vve:_init、vve_examples:dice_6/init 与 vve_demo:start,再通过 VVE 自己的刚体冲量接口投出骰子,并以 20 TPS 调用模拟器主函数。你可以随时暂停、单步、重新投掷或编辑下方命令。
首次打开需读取约 4.2 MiB 的本地静态资源。每个 ZIP 都会在导入前校验 SHA-256;文件只进入当前页面的 Worker 内存,不会上传。
轻量热身
下面的实验不装载 VVE,可用于熟悉编辑、诊断和视窗:
把 slime_block 改成一个不存在的方块,编辑器会给出诊断;输入命令或资源位置的一部分可触发补全。按 Ctrl/⌘ + Enter 等同于 Run。
控件含义
| 控件 | 做什么 | 是否改变世界 |
|---|---|---|
| Run | 执行当前编辑器中的多行命令 | 是 |
| Render | 用软件渲染器输出一张 PNG | 否 |
| Play / Pause | 以 20 TPS 开始/暂停模拟 | 是 |
| Step | 暂停后推进一个 tick | 是 |
| Reset sandbox | 新建世界,保留你编辑后的源码 | 是,重建 |
| Restore example | 恢复本站原始源码并新建世界 | 是,重建 |
| Save point / Return | 保存或恢复完整建模状态 | 是 |
| Add frame / Export GIF | 记录软件 RGBA 帧并编码 GIF | 否 |
键鼠相机
- 点击 canvas 获取 pointer lock,移动鼠标观察;
- WASD 水平飞行;
- Space 上升,Shift 下降;
- 滚轮调整移动速度;
- Esc 释放鼠标;
- Reset view 恢复根据场景边界计算的自动取景。
输入事件会记录给默认玩家 Steve,但不会隐式模拟原版玩家碰撞、AI、红石或完整客户端物理。VVE 示例的运动来自数据包函数,不来自视窗相机控制。
WebGL 与质量导出的边界
实时视窗面向 30–60 FPS 交互:相机只更新 uniform,display entity 在相邻 20 TPS 状态之间插值。PNG 与 GIF 面向确定性输出,使用 JVM/Web 共用的软件光栅器。两条路径共享场景与相机语义,但允许 GPU 光栅细节不同。
若 WebGL2 不可用或 context lost:
- 实时播放会暂停;
- 视窗显示可恢复提示;
- context 恢复后重新上传 GPU 资源;
- Render 与 GIF 仍可继续使用。
隐私与限制
依赖 ZIP 和你导入的文件只保留在页面会话内存中,不上传、不写入 IndexedDB/OPFS。默认单会话有命令数、输出、导入体积、检查点和 GIF 帧预算;VVE 实验提高了命令预算与超时,但仍会拒绝无限递归或失控输出。
建模边界
本教程运行的是编译后的真实 VVE 函数栈,并覆盖骰子的初始化、投掷、碰撞、旋转、调度和稳定状态;但 Datapack Sandbox 仍不是原版服务器。未建模的客户端物理、实体 AI、红石和渲染后处理不会被隐式补齐,最终发版前仍应在目标 Minecraft 版本验收。