服务运行中 开放模式 样本对照测试 📖 操作手册
任务中心
转换任务队列 · 状态机:排队 → 解析 → 转换 → 压缩 → 编码 → 完成
任务列表
任务号源文件输出目标状态耗时创建时间完成时间操作
连接服务中…
新建转换
输入源 → 输出目标 → 参数 → 预估 → 提交
① 输入源
浏览器直传或服务器路径 · 支持 RVM / STEP / FBX / OBJ / STL / IFC / DXF / glb / glTF
拖入模型文件夹,或点击多选模型、材质和贴图
OBJ 建议选择整个文件夹,保留 MTL 和贴图子目录 · 每次合计上限 8GB
浏览器只能读取您选择的文件。单选 OBJ 时不能自动读取旁边的 MTL 或贴图;请选择文件夹或同时多选附件。
服务器样本源:
② 输出目标
多选 · 各目标独立编码,共享同一次中间表示(实测导出链 <10% 总耗时)
.dpepack
DPE 编辑器
原生格式 · 实例化 + 4 档 LOD + 列式属性 · 编辑器内一键置入
.glb
glTF 2.0 通用
EXT_mesh_gpu_instancing 实例化保留 · 孪大师客户端及通用三维软件直接导入
3D Tiles
大场景流式
OGC 1.1 · 扇区→tile、LOD→geometricError 阶梯 · 孪大师大场景 / GIS 生态
.fbx
FBX 通用交换
Binary 7.4 · 独立构件、材质颜色、UV 与内嵌贴图 · 静态三角网格
③ 转换参数
灰色项为规划中参数,当前不参与提交
LOD 档位
4 档(默认)仅 lod0
按构件简化;默认保留全部构件
LOD 架构
proto(推荐)sector
推荐按原型生成 LOD,保留重复构件实例
几何压缩
几何压缩;实际体积以转换结果为准
缺失材质处理
OBJ 缺少材质或贴图时允许降级;任务会标记外观待核验
STEP 几何精度
STEP 曲面离散化精度;数值越小,通常生成更多三角面
源单位制
这是额外的尺寸缩放;STEP、IFC 和 GIM 已自动换算为米,通常保持默认
动画模型:GLB 输入可完整保留动作、骨骼蒙皮和形变,输出请选择 GLB / dpepack。自动采用无损压缩并保留源坐标,不执行静态减面。FBX 动画直转及 FBX / 3D Tiles 动画导出尚未开放。
坐标轴约定
额外旋转模型;GIM、IFC 已自动调整朝向,请保持默认
3D Tiles 定位
默认本地坐标;地图定位请填写实际经纬度与椭球高
经度 / 纬度 / 高度
GIM 转换范围
仅对 GIM 生效。电气专项便于核对设备;需要完整全站时选择全专业
LOD 误差目标
允许误差越小,通常保留更多几何;实际体积以转换结果为准
网格焊接容差
W89:重复顶点/微缝合并粒度——哈希量化步长(全格式生效)
小构件过滤
W2-①:removeSmallParts——三角数小于阈值的构件整体丢弃(LOD 前清理)
简化质量预设
控制允许的几何偏差,与上方误差目标共同生效
边界保留
保留网格边界,减少装配接缝处的简化变形
LOD 目标比例
LOD1/2/3 的目标面数比例;受误差限制时会保留更多面
量化精度
P1
坐标轴约定
P1
实例化归并
M4 rot-merge
④ 预估
服务端经验系数 · 提交后以任务实测为准
选择输入源与输出目标后显示预估
提交后进入任务队列 · 可通过 API / MCP 跟踪状态
产物仓库
已完成任务的输出产物 · 体积对比与交付
产物列表
产物来源任务体积对比(原始 → 产物)创建时间操作
连接服务中…
体积对比取任务实测值;导出链在构建完成后独立执行(「一次构建、多目标导出」)。glb 产物经编码器内建读回验证(三角 / 实例守恒)。
模型视口
轻量化 glb 产物在线预览 · 实例化 + meshopt 压缩原生支持
(未加载模型) 从任务中心 / 产物仓库点击「预览」查看 glb 模型
🌐
模型视口
在「任务中心」或「产物仓库」点击产物的「预览」按钮
glb:实例化 + meshopt · dpepack:原生 + LOD 0-3 · 3dtiles:流式 SSE LOD
左键旋转 · 右键/双指平移 · 滚轮缩放 · 双击构件聚焦 · Esc 退出框选 / 测量 / 行走 / 对比 / 巡游
对接管理
消费端连接 · 交付协议 · 凭据
DPE 编辑器
交付通道已通
消费端
DPE 编辑器(BS 架构 · 本机或局域网)
交付协议
REST POST /api/v1/tasks/{id}/deliverpicimos-deliver-v1 产物清单
拉取方式
glb 单文件直链;dpepack / 3dtiles 目录深路径(manifest.json / tileset.json)
装载校验
编辑器内置加载器运行时对账(三角 / 实例零偏差)
降级行为
编辑器离线时任务照常执行,产物转入仓库待领取
联调状态
双头鉴权联调闭环;「从平台导入」通道已实测(dpepack / 3dtiles 置入 + 属性回读 + 批量回写)
最近交付
任务消费端交付物时间
暂无交付记录 · 产物仓库中点击「置入 DPE 编辑器」发起首次交付
孪大师客户端
标准格式输出 · 无专有协议
常规导入
.glb(实例化保留)—「导入 glb」直接消费
大场景
3D Tiles 1.1 — 大场景模式流式加载(SSE 驱动 LOD)
导出预设
glb · Y-up · 单位米 · 纹理嵌入(可修改)
API 凭据
私有化 / 云端形态启用
名称Key作用域状态
dpe-editorplw_7f3a…c21etasks:read artifacts:read deliver活跃
mcp-gatewayplw_92bd…08aftasks:write artifacts:read活跃
ci-pipelineplw_e550…9d3ctasks:write未使用 30 天
本地形态回环绑定免鉴权(当前);凭据体系随私有化部署启用(P1)。
变更审计
业务属性回写台账 · 谁在何时改了哪个构件的什么
回写记录
按时间倒序 · 最近 12 条
任务消费端构件变更键时间
暂无回写记录 · 在 DPE 编辑器属性卡双击业务属性值,或通过 PATCH 端点发起首次回写
回写协议PATCH /api/v1/tasks/{id}/artifacts/dpepack/attributes/biz/rows/{cid}(单构件)· PATCH …/biz/bulk(批量:多构件 × 多键原子应用,任一构件不存在整体拒绝)。 契约:键集不可变(仅允许改已有键的值)+ 类型强约束(schema 推导)+ 改后 schema 自动重算(消费端分组口径保持一致)。 台账随任务持久化(重启不丢,上限 100 条滚动);产物文件是唯一事实源,台账为审计辅助。
API · SDK · MCP
/api/v1 · 本地服务免鉴权(回环绑定)· 全响应 CORS 开放
REST 端点
以下端点均为本服务真实实现
POST/api/v1/tasks提交转换(sourcePath + targets + options)· v2.3 参数:linearDeflection / sourceUnit / upAxis / lodErrorScale / weldTolerance
GET/api/v1/tasks · /{id}任务列表 / 详情(v2.3:列表支持 ?search=&status=&format= 三参过滤
DEL/api/v1/tasks/{id}v2.3 新增:删除任务(取消运行 worker + 清产物目录 + 保留源文件)
GET/api/v1/tasks/{id}/artifacts产物清单(格式 / 体积 / 三角 / 验证标记)
GET/api/v1/tasks/{id}/artifacts/{a}[/*]产物下载(目录产物支持深路径)
POST/api/v1/tasks/{id}/deliver交付协议 picimos-deliver-v1(一键置入)
POST/api/v1/estimate体积 / 耗时预估(服务端经验系数)
GET/api/v1/sources服务器样本源清单(输入源数据)
GET/api/v1/formats输出目标支持矩阵
GET/api/v1/health · /stats健康检查 / 队列与吞吐统计
MCP 工具集
AI 大模型接入通道(M4+ 规划)
工具语义
submit_conversion提交:源 + 输出目标 + 参数
get_task · list_tasks状态查询与跟踪
list_artifacts · download_artifact产物检索与获取
estimate_source体积 / 耗时预估
list_formats能力矩阵查询
自然语言示例:「把服务器上的装置模型转成孪大师能用的格式」→ submit_conversion(targets=["glb"]) → get_task 轮询 → download_artifact。
调用示例
SDK:@picimos/lightweight-sdk(JS/TS 同构)· M4+ 规划,当前用原生 fetch / curl
# 提交转换并等待完成
curl -X POST http://localhost:8800/api/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "sourcePath": "/data/big120.glb",
    "targets": ["dpepack", "glb", "3dtiles"],
    "options": { "compress": true, "lodArch": "proto" }
  }'

# 交付协议(一键置入——DPE 编辑器消费)
curl -X POST http://localhost:8800/api/v1/tasks/<id>/deliver \
  -H "Content-Type: application/json" \
  -d '{"consumer": "dpe-editor"}'
// 原生 fetch(控制台同款调用,浏览器 / Node 同构)
const base = "http://localhost:8800";

const task = await fetch(base + "/api/v1/tasks", {
  method: "POST", headers: { "content-type": "application/json" },
  body: JSON.stringify({
    sourcePath: "/data/big120.glb",
    targets: ["dpepack", "glb"],
    options: { compress: true, lodArch: "proto" }
  })
}).then(r => r.json());

// 轮询至完成 → 拉产物清单
const done = await (async () => {
  for (;;) {
    const t = await fetch(base + "/api/v1/tasks/" + task.id)
      .then(r => r.json());
    if (t.status !== "running" && t.status !== "queued") return t;
    await new Promise(r => setTimeout(r, 2000));
  }
})();

console.log(done.artifacts.map(a => a.name));
// → ["big120.dpepack", "big120.glb"]
系统状态
服务 · 队列 · 存储 · 引擎能力
服务
运行中
队列深度
任务
累计转换
任务
产物输出
输入累计
运行时
平台版本
—(引擎 m2-pack)
运行时长
并发 Worker
执行隔离
worker_threads(build 链独立线程)
任务持久化
tasks-index.json · 重启恢复 completed
鉴权
引擎能力(实测)
数据源:Pilot 实现报告实测数据
实例去重
244.9×(120 副本 · 604 原型)
几何压缩
6.11×(EXT_meshopt_compression)
LOD 收敛
29.9% / 7.8% / 1.9%(原型级 · 4 档)
转换吞吐
400 MB 输入全链路 28.3s
导出矩阵
glb 122.7× · 3D Tiles 86.2×(big120 实测)
质量校验
三角 / 属性对账零偏差 · glTF 规范校验零违规
访问鉴权

该平台已启用 Bearer token 鉴权。请输入访问令牌(由平台管理员在服务端 PLW_TOKENS 配置)——令牌仅保存在本浏览器,随请求以 Authorization 头发送。