JavaScript · 项目报告

Yousuf-developer/Viscose-carousel

A wheel of work that never quite sets. Cards fuse as they meet, and draw into threads as they part.

已完成 打开 GitHub
Y
397星标
65Fork
0Issue
NOASSERTION许可证

分析结果

项目分析

Viscose-carousel 是一个基于 Next.js、React、Three.js 和 WebGL Shader 的创意作品集轮播项目。它不是传统 DOM 卡片轮播,而是将整个卡片环、黏连效果、拉丝线程、玻璃折射边缘和鼠标标签放在一个全屏 fragment shader 中渲染,实现类似“黏性液体/纤维拉丝”的视觉交互效果。用户可以通过滚动、拖拽、滑动、悬停和点击来旋转作品环,适合用作高视觉冲击力的个人作品集、创意工作室官网首页或 WebGL 动效实验参考。

适用领域 前端开发 / WebGL / Three.js / Shader 编程 / 创意交互 / 作品集网站 / 视觉设计 / Next.js 应用 / 动效设计 / 数字艺术
配置难度 中高级。普通 React/Next.js 开发者可以完成安装和内容替换,但如果要深入修改视觉效果、shader、SDF 融合逻辑、响应式参数和性能表现,需要具备 Three.js、GLSL/WebGL、动画调试和图形学基础。
商业价值 该项目的商业价值主要体现在高端视觉展示和品牌差异化上。它适合用于设计师、创意工作室、影视/动态设计团队、艺术家和高端数字产品官网,能够快速形成强烈的第一屏记忆点。作为源码学习项目,它也有较高技术参考价值。不过直接商业化前必须替换未授权图片和字体,并补齐详情页跳转、无障碍、移动端适配、性能优化和测试保障。
01

技术亮点

  • 整个轮播主体由单个全屏 fragment shader 渲染,技术实现非常有辨识度
  • 卡片之间通过 SDF 和 smooth minimum 实现黏连、融合、拉丝效果,不是简单的 CSS 或 Canvas 动画
  • 支持滚动、拖拽、滑动、悬停、点击居中等多种交互
  • 视觉效果强,适合高端作品集、创意官网和技术展示
  • 开发环境内置 lil-gui 参数面板,便于实时调试视觉细节
  • 项目结构清晰,核心模块包括 Carousel、projects、params、atlas、meta、shader 等
  • 加载过程与入场动画结合,首张卡片优先加载,视觉体验更完整
  • README 对实现思路、资源许可、已知问题和自定义方式说明较详细
  • MIT 许可覆盖源代码,便于学习和二次开发
02

目标用户

  • 希望打造高级作品集网站的前端开发者
  • 熟悉 React/Next.js 并想学习 WebGL Shader 的开发者
  • 创意开发者、互动设计师、视觉工程师
  • 设计工作室、动画工作室、品牌官网开发团队
  • 想研究 SDF、smooth minimum、gooey effect、WebGL 单 draw call 渲染的技术人员
  • 希望复用或改造高端视觉轮播组件的独立开发者
03

配置要求

  • Node.js 版本要求:20+
  • 主要技术栈:Next.js 16、React 19、Three.js r185、GSAP、Tailwind CSS v4
  • 项目数据配置位于 components/ring/projects.js,可替换作品图片、名称、类型和年份
  • 图片资源放在 public/ 目录中,并在 projects.js 中引用
  • 视觉参数集中在 components/ring/params.js 中,包括卡片尺寸、环半径、动效、鼠标交互、玻璃效果、honey 拉丝效果等
  • 开发环境下会动态加载 lil-gui 调试面板,可实时调节约 136 个参数
  • 字体声明在 app/globals.css 中,同时在 components/ring/params.js 中按字体名引用,替换字体时两处都需要同步修改
  • 商业使用前必须替换未授权的示例图片和 PP Neue Montreal 字体
  • 修改 shader 后需要在浏览器中实际运行验证,因为 GLSL 错误可能不会在 npm run build 阶段暴露
04

适用场景

  • 个人作品集首页,用于展示设计、摄影、动态影像、品牌项目等
  • 创意工作室官网首屏交互展示
  • WebGL Shader 动效学习案例
  • Three.js 与 React/Next.js 集成示例
  • 研究如何用单个 fragment shader 渲染复杂 UI/视觉效果
  • 作为视觉特效原型,用于商业官网、艺术展览页面或品牌 Campaign 页面
  • 学习基于 signed distance fields 的卡片融合、拉丝和玻璃折射效果
05

部署与配置

  • 确保本机安装 Node.js 20 或更高版本
  • 克隆仓库:git clone https://github.com/Yousuf-developer/viscose.git
  • 进入项目目录:cd viscose
  • 安装依赖:npm install
  • 启动开发服务器:npm run dev
  • 浏览器打开:http://localhost:3000
  • 生产构建:npm run build
  • 启动生产版本:npm start
  • 代码检查:npm run lint
06

风险与注意事项

  • 仓库元数据中 license 为 NOASSERTION,但 README 声称源码为 MIT;实际使用前应确认 LICENSE 文件内容
  • public/ 中的示例图片不是作者原创,也不受 MIT 许可覆盖,不能直接用于商业项目
  • PP Neue Montreal 字体仅供本地开发和评估,不允许随项目商业使用,商业上线必须购买授权或替换字体
  • 目前点击卡片只会居中,不会跳转到详情页,业务闭环尚未完成
  • 没有 reduced-motion 支持,对晕动敏感用户和无障碍体验不友好
  • 没有键盘控制,无法通过方向键或项目列表导航
  • 移动端尤其是 500px 以下宽度适配不够稳定
  • 没有测试,主要依赖 build、lint 和浏览器运行验证
  • GLSL shader 只在运行时编译,构建通过不代表 shader 没有错误
  • 高度依赖 WebGL 和 GPU 性能,低端设备或旧浏览器可能出现性能问题
  • 视觉参数较多,深度定制需要理解 shader、坐标系统和项目响应式模型

历史记录

热榜历史快照

2026-08-22 第26名 新收录 · github_search