DOM-FIRST WEBGL / 托管运行时
Viselora DOM WebGL
让网页保留自己的结构,也拥有空间与运动。
阅读完整案例 ↓面向 React 与浏览器应用的 DOM-first WebGL 运行时。保留网页的布局和交互语义,以公开声明连接文字、媒体和三维对象,统一管理渲染、资源、输入与生命周期。
当网页内容进入三维画面
文字、图片、链接和阅读顺序原本由网页组织。当它们进入 WebGL 画面,布局、坐标、鼠标命中、滚动响应和资源释放也需要相互配合。每一种视觉效果单独维护这些关系,会让后续组合与修改越来越困难。
Viselora 从 DOM 出发:网页保留内容、布局与可访问性的基础,运行时把需要视觉表现的目标连接到 WebGL。应用描述想呈现的对象与效果,底层统一处理渲染和资源生命周期。
从网页内容到空间表达
- 组织 DOM由语义元素保留内容、链接、布局与阅读顺序。
- 声明视觉目标通过公开声明提供文字、媒体、网格或模型。
- 测量与投影运行时连接 DOM 几何与场景坐标。
- 接入共同输入以滚动进度、时间线与指针状态驱动效果。
- 渲染画面在托管效果与通道中表达材质、灯光和运动。
- 管理生命周期协调可见性、加载、缓存与资源清理。
用声明连接内容与视觉
DOM 文字、图片、视频、序列帧和模型可以成为运行时管理的视觉来源。应用通过目标声明提供来源与效果;需要程序化几何或场景原生模型时,则使用相应的网格与模型声明。
这让视觉表达有了清楚的入口:网页内容由语义元素承载,效果描述变换、材质或运动意图。更复杂的画面可以声明场景、相机、灯光和渲染通道,并通过受控接口更新对象。应用代码始终使用公开接口,底层对象的创建和销毁由运行时负责。
把生命周期放在同一处
每个运行时拥有一个透明画布和渲染循环,并集中处理 DOM 测量、场景投影、资源加载与缓存、离屏策略和清理。效果离开页面或组件卸载时,对应资源也有明确的释放路径。
对于依附 DOM 的目标,加载、错误和离屏状态还要与原内容的显示策略配合。这个设计的价值,在于让文字、图片、视频和三维效果能够组合在同一页面中,并保持可理解的资源与状态关系。
让滚动和交互成为共同输入
Viselora 提供进度信号、时间线与滚动适配能力,可以连接原生滚动,也可以接入 Lenis、GSAP 和 ScrollTrigger。多个视觉对象能够使用一致的进度来源,表达靠近、旋转、展开、阅读和退回等阶段。
指针输入同样进入运行时管理。应用通过目标或场景对象的指针状态设计反馈,无需自行维护另一套底层拾取工具。逐帧视觉变化在效果逻辑中完成,让组件继续承担声明与界面组织。
从运行时走到一个实际网站
这个个人网站是 Viselora 的实际应用之一。四面体随滚动靠近,面上的内容逐渐与屏幕对齐,再交给可阅读、可交互的正文;人物模型、文章纸卡和项目空间继续使用同一套公开运行时能力。
网页布局、链接与移动端阅读由站点负责,三维投影、材质和运动通过运行时表达。站点作为独立项目安装已发布的 npm 包,也让公共接口接受真实使用场景的检验。
将具体效果整理成可复用示例
示例项目进一步把纸卡阅读、项目空间、模型叙事、面投影转场、指针预览和透视时间线整理为可复用模块。它们使用中立内容和公开接口,开发者可以阅读模块说明、替换数据,再组合进自己的应用。
这些模块属于应用层示例,视觉与内容由调用方组织;运行时包继续承担通用能力。接口文档、能力状态说明和面向 Agent 的使用指引,帮助使用者区分公开入口、实际证据与应用自己的责任。
当前阶段与适用范围
项目处于预发布阶段,核心运行时与滚动适配器分别通过 npm 提供。当前实现覆盖 DOM 与媒体目标、托管场景、网格、模型、交互、灯光、受控材质扩展和后期处理,具体能力的验证成熟度并不完全相同。
使用这一结构需要接受运行时对渲染和资源生命周期的管理。场景原生模型与网格需要应用自行安排语义说明和回退内容,物理能力也只覆盖有限范围。真实设备表现、复杂场景性能和最终视觉效果,仍需要在具体产品中验证。