Repository navigation
v0.26.0 — 画布内嵌 3D 查看器(不需要 Blender)
v0.26.0 — 画布内嵌 3D 查看器 / A 3D viewer on the canvas
不用装 Blender:新增 model 控件,把 .glb / .gltf / .obj / .stl 直接显示在画布上(也可以放进卡片,或用 ⛶ 全屏看)。
- 零依赖、离线可用:查看器是一个自写的 WebGL 页面(
viewer/viewer.html,约 44KB),由npm run embed:viewergzip 进客户端包(和框图同一套做法),跑在沙箱 iframe 里,只通过postMessage与项通信。 - 能渲染:glTF 2.0 / GLB(节点层级与 TRS/矩阵变换、索引与非索引图元、三角带/扇形、顶点法线缺失时用平面法线兜底、
baseColorFactor与内嵌baseColorTexture、doubleSided、alphaMode),以及 OBJ 与二进制/ASCII STL。 - 交互:左键环绕、中键或 Shift 拖动平移、滚轮缩放;
重置视角、线框、网格、背景;状态栏报告三角形数、网格数与包围盒尺寸。 - 怎么载入:拖文件到画布(空白处新建查看器项,已有模型项则替换)、点
打开模型…、或给控件写src(https 地址或data:内嵌)。约 450KB 以内的模型会写进画布状态(刷新/同步后仍在),更大的只在本次会话显示并标注仅本机。 - 对话也能建:
{ "op": "add", "kind": "model", "src": "https://…/x.glb" };提示词里也说明了"大模型请拖进来,不要往对话里塞 base64"。
测试:npm run verify:viewer 构造真实 glTF-binary 立方体并在无头 Chromium 中驱动查看器(载入 triangles=12, meshes=1, materials=1, size=1x1x1、指针拖动真的改变相机、线框/网格/背景、坏文件报错、清空);npm run verify:embed 把同一立方体作为控件放上画布,断言项内沙箱报告 12 三角形 · 1 网格;smoke.mjs 覆盖内嵌页面哈希/缓存、消毒往返、被拒来源、拖拽扩展名、选择器入口与提示词。
Install / 安装
dsh plugin --profile web add dsh-task-console # npm(发布后)
dsh plugin --profile web add ./dsh-task-console.tgz # 本 Release 的预构建 tarballFull changelog / 完整变更记录: CHANGELOG.md