基于 Genesis 的 8 相机工作台仿真。场景按你给的参考图做了一个近似建模版本,重点包含:
- 铝型材工作台与顶部相机架
- 黑色台面与若干桌面物件
- 围绕工作台架体分布的 8 个固定相机
- 安装在夹爪上的 3 个广角细节相机
- 实时 11 路预览总览窗口
- 同步导出 11 路相机图像和一张拼图总览
优先使用 uv + Python 3.11。
cd /Users/hph/Codes/box_sim
uv venv --python 3.11
uv pip install --python .venv/bin/python genesis-world torch
PYTHONPATH=src uv run --python .venv/bin/python render_workbench.py --mode preview --backend auto如果你已经有 .venv,也可以直接:
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode preview --backend auto默认就是实时双窗口预览模式:
- 一个 Genesis 交互式 3D 场景窗口
- 一个
3x4相机总览窗口
3D 场景窗口会显示整套工作台、夹爪和相机视锥,方便看相机应该如何安装。
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode preview --backend auto常用参数:
--width 320 --height 240:更流畅--width 512 --height 384:画质更好--lighting-preset studio:启用更适合采集的棚拍式布光--no-curtains:关闭工作台四周黑色幕布,回到开放房间背景--target-fps 12:限制刷新率--preview-scale 0.85:缩小总览窗口--no-scene-window:关闭 3D 场景窗口,只保留相机总览
窗口控制:
q或Esc:退出s:保存当前总览截图到outputs/latest/preview_snapshot.png
如果你想保存单次结果而不是持续预览,用:
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode export --backend auto导出结果默认输出到 outputs/latest/:
cam_01.png到cam_11.pngmontage.pngmanifest.json
manifest.json 里会记录最终后端、相机位姿和输出文件路径。
如果要对比新的棚拍布光和旧版环境光,可以分别导出:
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode export --lighting-preset legacy --no-curtains --outdir outputs/legacy
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode export --lighting-preset studio --curtains --outdir outputs/studio- 默认后端策略是
metal -> cpu fallback - 默认使用
Rasterizer,避免在 macOS 上走更重的RayTracer - 实时预览默认分辨率是
512x384 - 如果要更稳可以降到
320x240
示例:
PYTHONPATH=src ./.venv/bin/python render_workbench.py --mode preview --backend auto --width 320 --height 240