TresJS
架在 Three.js 之上的声明式 3D 开发层,把场景、相机、灯光和模型映射成 Vue 组件,用模板与响应式状态控制画面,支持 WebGL 与 WebGPU,适合 Vue / Nuxt 开发者在现有项目里加一段产品预览或网页小游戏。

TresJS 是架在 Three.js 之上的一层声明式封装,让 Vue 开发者用组件的方式写 3D 场景。Three.js 本身要手动创建对象、管理生命周期,而 TresJS 把这些交给 Vue 的响应式和组件系统:场景、相机、灯光、模型都写成标签,状态变了画面跟着变。它面向已经熟悉 Vue 的人,想加 3D 展示、产品预览或小游戏,又不想从头啃原生 Three.js 的 API。
主要功能
核心是把 Three.js 的对象映射成 Vue 组件,用模板描述场景结构,用 ref 和 props 控制位置、材质等属性。页面标注支持 WebGL 和 WebGPU 两种渲染后端。生态里有 cientos 提供常用几何体、模型加载等现成组件,postprocessing 负责后期特效,官方还提到与 Rapier 物理引擎的整合示例。上手可以直接跑 npx create-tres@latest 建项目,官网也提供在线 Playground 试写。
适合谁
Vue 和 Nuxt 技术栈的前端开发者是主要人群。官网引用了 Nuxt 核心团队 Daniel Roe、Astro 社区工程师 Elian、Vue 作者 Evan You 等人的评价,其中提到在 Nuxt 和 Astro 里接入比较顺。做创意编程、数据可视化、网页小游戏的人也能用,但前提是接受 Vue 的写法。
费用与限制
项目以 MIT 协议开源,代码托管在 GitHub,文档和示例都在官网上。它不是独立渲染引擎,底层仍是 Three.js,遇到复杂效果最终要回到 Three.js 的 API;WebGPU 支持情况取决于浏览器。官网没有给出具体版本号和更新日期。