跳到正文
dopejs
← 全部项目

dope-canvas

设计阶段

面向海量 AI 生成 Web 产物的无限画布运行时。

几百个活跃 iframe 无法规模化,而把页面全部拍平成图片又会丢失选区与事件定位。dope-canvas 以"保留式产物"建模 —— 源码、持久状态、交互树、绘制缓存与可选的活跃运行时 —— 让 Figma 式的选择与激活得以保留。仓库当前处于开发前基线:只有架构、交付计划与安全模型,尚无可运行的画布。

概览

每个 iframe 都保留着浏览上下文、DOM/CSS 状态、脚本 realm、资源与渲染状态,因此让几百个生成页面同时存活的代价极高。这里的设计回答是"保留式产物"模型 —— `产物 = 源码 + 持久状态 + 交互树 + 绘制缓存 + 可选的活跃运行时` —— 其中快照仅仅是绘制缓存,文档与交互模型始终可用,从而支持选择、事件路由、激活与版本安全的恢复。

画布本身掌管相机移动、空间虚拟化、活跃/快照生命周期、交互元数据、资源预算与渲染合成;产物则提供 HTML、CSS 与受控 JavaScript。包的拆分沿着这些边界展开 —— protocol、spatial、core、artifact、security、runtime、renderer、editor —— 所有包均为 private 且版本为 0.0.0,没有任何一个被视为稳定的公开契约。

有两条限制是仓库主动写明的:M0 的浏览器证据门禁尚未通过,因此对实验性 HTML-in-Canvas API 的支持只是"能力"而非"承诺";以及尚未选择 license,在维护者补充之前,仓库内容不以开源协议提供。

它做了什么

  • 保留式产物模型:快照只是绘制缓存,因此选区与事件定位不会丢失。
  • 画布掌管相机、空间虚拟化、活跃/快照生命周期、资源预算与合成。
  • 包边界与设计一致:protocol、spatial、core、artifact、security、runtime、renderer、editor。
  • 安全是一等公民包 —— sanitizer、URL 策略、配额与能力控制 —— 而不是后期加固。
  • 前置文档齐备:技术设计、交付计划、安全模型、兼容性策略、基准测试协议与开放问题。

开始使用

环境要求: Node.js 22.12+ 与 pnpm 10.33.2。