[{"data":1,"prerenderedAt":269},["ShallowReactive",2],{"work-scene-toolchain":3,"works-order":214},{"id":4,"title":5,"attribution":6,"body":7,"caseOrder":152,"cover":153,"demo":157,"description":142,"evidenceStatus":158,"extension":159,"family":160,"featured":161,"flagship":161,"highlights":162,"links":166,"media":6,"meta":184,"metrics":185,"navigation":161,"order":152,"path":192,"period":193,"projectType":194,"projects":195,"role":199,"roleScope":200,"seo":201,"stack":202,"status":170,"stem":210,"summary":211,"topic":212,"track":194,"__hash__":213},"works\u002Fworks\u002Fscene-toolchain.md","Scene 离线三维创作与发布工具链",null,{"type":8,"value":9,"toc":141},"minimark",[10,14,18,21,43,46,49,58,61,92,95,107,110,121,124],[11,12,13],"h2",{"id":13},"背景问题",[15,16,17],"p",{},"云端编辑器依赖后端与登录态，客户场景数据与发布流程难以完全离线。目标是：创作、编译、查看三个环节都能在本地完成，并且产物格式稳定、可被独立查看器直接消费。",[11,19,20],{"id":20},"约束",[22,23,24,37,40],"ul",{},[25,26,27,28,32,33,36],"li",{},"三个仓库的引擎与转换库版本必须一致，否则坐标与数据格式会出现隐性漂移，因此锁定 ",[29,30,31],"code",{},"playcanvas@2.23.1","、",[29,34,35],{},"splat-transform@3.10.0","，禁止浮动版本号。",[25,38,39],{},"查看器不 Fork 官方 Viewer，升级只能通过公开 API。",[25,41,42],{},"浏览器端无服务端，离线目录打开需要解决资源路径问题。",[11,44,45],{"id":45},"架构",[47,48],"scene-architecture",{},[15,50,51,52,57],{},"上游训练与重建部分见",[53,54,56],"a",{"href":55},"\u002Fworks\u002Fgaussian-training","高斯泼溅重建与训练管线","，两篇分别覆盖\"训练侧\"与\"创作\u002F发布侧\"，不重复展开。",[11,59,60],{"id":60},"关键决策与取舍",[22,62,63,70,80,86],{},[25,64,65,69],{},[66,67,68],"strong",{},"编辑器脱离宿主","：移除上传、鉴权与任务轮询，改用 File System Access API 与 Zip 流式打包实现本地保存与打开。",[25,71,72,75,76,79],{},[66,73,74],{},"发布态预合并","：导出时把所有可见高斯合并为单 Splat，并写入 ",[29,77,78],{},"coordinateConvention: file-rotation-included","，把文件旋转惯例显式写进数据，下游不再猜测。",[25,81,82,85],{},[66,83,84],{},"管线全程程序化","：不 spawn 外部 CLI，直接调用 splat-transform 的 API，统一 IO 抽象，避免多次解码。",[25,87,88,91],{},[66,89,90],{},"端到端断言","：管线附带 e2e 脚本，动态合成非对称三维尖塔场景，跑全流程后执行 16 项断言，其中包含坐标朝向回归。",[11,93,94],{"id":94},"结果",[22,96,97,104],{},[25,98,99,100,103],{},"同一份 ",[29,101,102],{},".sscene"," 可以在编辑器中编辑、在管线中编译、在查看器中离线打开，三段契约由版本基线与断言共同约束。",[25,105,106],{},"查看器保持极薄壳（Vanilla TS），升级官方 Viewer 时通过 API 面审计脚本对照类型声明回归。",[11,108,109],{"id":109},"局限与后续优化",[22,111,112,115,118],{},[25,113,114],{},"编辑器本地保存依赖 File System Access API，Safari \u002F Firefox 下只能降级为导出文件流，不能保留工程引用。",[25,116,117],{},"发布态为单 Splat 预合并，适合成品展示；多级 LOD 分块流式发布尚未纳入本管线。",[25,119,120],{},"碰撞体素化在 GPU 上执行，低端设备按 CPU 回退时耗时明显上升，暂无量化口径。",[11,122,123],{"id":123},"我的职责",[22,125,126,132,135,138],{},[25,127,128,129,131],{},"三仓架构设计与数据契约定义（",[29,130,102],{}," 工程包、产物目录格式）。",[25,133,134],{},"scene-studio 的本地文件系统层与发布流程。",[25,136,137],{},"scene-pipeline 的编排、碰撞与 LOD 阶段，以及 e2e 断言。",[25,139,140],{},"scene-viewer 的离线 URL 桥与加载体验。",{"title":142,"searchDepth":143,"depth":143,"links":144},"",2,[145,146,147,148,149,150,151],{"id":13,"depth":143,"text":13},{"id":20,"depth":143,"text":20},{"id":45,"depth":143,"text":45},{"id":60,"depth":143,"text":60},{"id":94,"depth":143,"text":94},{"id":109,"depth":143,"text":109},{"id":123,"depth":143,"text":123},1,{"src":154,"alt":155,"caption":156},"\u002Fimages\u002Fportfolio\u002Fscene-toolchain-cover.svg","Scene 工具链架构示意：训练到网站承载的五段流程","工具链结构示意（自绘封面，非运行截图）","\u002F","项目资料与演示","md","Scene 离线三维工具链",true,[163,164,165],"本地工程包 .sscene 读写，不依赖云端与宿主","发布态预合并为单 Splat，显式声明坐标约定，消除下游二次翻轴","查看器零侵入消费官方 Viewer，支持 HTTP 与浏览器离线目录两种模式",[167,172,177,181],{"label":168,"url":169,"kind":170,"note":171},"编辑器演示","\u002Fdemos\u002Fstudio\u002Fcn?demo","demo","预载合成示例场景；编辑器仅支持 PC 端",{"label":173,"url":174,"kind":175,"note":176},"LOD 可视化实验","\u002Flab\u002Flod-heatmap","lab","查看器同族运行时渲染 Streamed SOG",{"label":178,"url":179,"kind":175,"note":180},"三引擎对比实验","\u002Flab\u002Fengines","同一场景 PlayCanvas \u002F three.js+Spark \u002F Babylon.js",{"label":182,"url":183,"kind":175},"碰撞漫游实验","\u002Flab\u002Fwalk-collision",{},[186,189],{"value":187,"label":188},"3","仓库闭环（studio \u002F pipeline \u002F viewer）",{"value":190,"label":191},"16","端到端自动断言（scene-pipeline e2e）","\u002Fworks\u002Fscene-toolchain","项目阶段记录","personal",[196,197,198],"scene-studio","scene-pipeline","scene-viewer","独立设计与开发（编辑器、编译管线、查看器）","编辑器、编译管线、查看器三段工具链的个人实现",{"title":5,"description":142},[203,204,205,206,207,208,209],"Vue 3.5","Vite 8","PlayCanvas 2.23.1","@playcanvas\u002Fsupersplat-viewer 1.37.0","splat-transform 3.10.0","Node.js 22","Dawn WebGPU","works\u002Fscene-toolchain","从本地场景编辑、离线编译到独立查看，三个仓库以精确锁定的引擎基线闭环，产物可直接离线打开。","spatial","8Zh1wsGll8SJnWOqnq9-7cr08g5ug9WsizqtmFrI7AQ",[215,216,217,221,225,229,233,237,241,245,249,253,257,261,265],{"path":192,"title":5,"order":152},{"path":55,"title":56,"order":143},{"path":218,"title":219,"order":220},"\u002Fworks\u002Fmindcloudx-gen1","MindCloudX AI 一代 3DGS 平台",3,{"path":222,"title":223,"order":224},"\u002Fworks\u002Fexplorer-sdk","Explorer 多引擎渲染 SDK 与沉浸式浏览",4,{"path":226,"title":227,"order":228},"\u002Fworks\u002Ftorchcloud-gen2","TorchCloud 二代平台与混合场景编辑器",5,{"path":230,"title":231,"order":232},"\u002Fworks\u002Fdata-pipeline","3DGS 与 Mesh 数据转换管线",6,{"path":234,"title":235,"order":236},"\u002Fworks\u002Fmesh-pointcloud","大规模 Mesh 与点云可视化",7,{"path":238,"title":239,"order":240},"\u002Fworks\u002Fhunter-game","Hunter World：3DGS 真实场景多人寻宝竞速",8,{"path":242,"title":243,"order":244},"\u002Fworks\u002Fsitepulse-agent","智慧工地：空间可视化与 Agent 业务集成",9,{"path":246,"title":247,"order":248},"\u002Fworks\u002Fdrone-platform","无人机 GCS 与数据大屏交付",10,{"path":250,"title":251,"order":252},"\u002Fworks\u002Fcar-configurator","汽车 3D 配置器",11,{"path":254,"title":255,"order":256},"\u002Fworks\u002Fphotography-interaction","摄影器材 3D 交互展示页",12,{"path":258,"title":259,"order":260},"\u002Fworks\u002Fcloud-lims","Cloud LIMS 实验信息管理（Demo）",13,{"path":262,"title":263,"order":264},"\u002Fworks\u002Fcampus-platform","校园业务小程序与管理后台",14,{"path":266,"title":267,"order":268},"\u002Fworks\u002Fvisual-design","商业三维渲染与平面视觉设计",15,1792474477996]