Initial commit

This commit is contained in:
admin
2025-12-09 10:20:28 +08:00
parent c83d5ded36
commit 40f085e928
2 changed files with 73 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
.venv/
__pycache__/
*.pyc
.trae/
.vscode/
.idea/
*.log
create_repo.py

65
README.md Normal file
View File

@@ -0,0 +1,65 @@
# 交互式 3D 粒子系统 (Interactive 3D Particle System)
这是一个基于 Web 的交互式 3D 粒子特效展示项目。它利用 Three.js 进行 3D 渲染,并通过 MediaPipe Hands 实现手势交互,允许用户通过手势控制粒子的运动。
## ✨ 特性 (Features)
* **多种粒子模型**:内置多种粒子形态,包括:
* ❤️ **爱心 (Heart)**:浪漫的 3D 爱心形状。
* 🌸 **花朵 (Flower)**:基于玫瑰线的 3D 花朵。
* 🪐 **土星 (Saturn)**:带有光环的行星模型。
* 🎆 **烟花 (Fireworks)**:绚丽的球形爆炸效果。
* ⛰️ **山水 (Mountain)**:动态波浪地形。
* 🔢 **数字倒数 (Countdown)**:粒子组成的倒计时动画。
* **手势交互 (Hand Interaction)**
* 集成 MediaPipe Hands通过摄像头实时捕捉手部动作。
* 根据手掌的开合程度 (Openness) 动态影响粒子的散布和运动。
* **实时控制面板 (Control Panel)**
* 使用 `lil-gui` 提供浮动控制面板。
* 支持切换模型、调整粒子颜色、大小、混合模式及手势影响强度。
* **响应式设计**:支持全屏显示,并自适应窗口大小。
## 🛠️ 技术栈 (Tech Stack)
* **[Three.js](https://threejs.org/)**: 核心 3D 渲染引擎。
* **[MediaPipe Hands](https://google.github.io/mediapipe/solutions/hands)**: 谷歌开源的机器学习手部追踪库。
* **[Tween.js](https://github.com/tweenjs/tween.js/)**: 平滑动画过渡库。
* **[lil-gui](https://lil-gui.georgealways.com/)**: 轻量级 Web 界面控制器。
## 🚀 快速开始 (Getting Started)
### 前置要求
* 现代浏览器(推荐 Chrome, Edge, Firefox
* 摄像头(用于手势交互功能)。
### 运行项目
1. **克隆或下载**本项目到本地。
2. **启动服务**由于浏览器的安全策略CORS以及摄像头权限限制直接双击 `index.html` 可能无法正常加载模型或调用摄像头。建议使用本地服务器运行:
* **VS Code Live Server**: 在 VS Code 中安装 "Live Server" 插件,右键 `index.html` 选择 "Open with Live Server"。
* **Python**: 在项目根目录下运行 `python -m http.server`,然后访问 `http://localhost:8000`
* **Node.js**: 使用 `http-server``vite` 等工具。
3. **授权摄像头**:浏览器弹出摄像头请求时,请点击“允许”。
## 📂 文件结构 (File Structure)
```
├── index.html # 项目入口文件,包含 HTML 结构和库引用
├── main.js # 核心逻辑Three.js 场景、粒子系统、手势识别
├── style.css # 全局样式全屏布局、UI 样式
├── create_repo.py # (工具脚本) 用于自动创建远程仓库
└── README.md # 项目说明文档
```
## 🎮 操作指南 (Controls)
* **模型选择**:在右上角面板的 "模型选择" 下拉框中切换不同效果。
* **参数调整**
* **粒子颜色**:自定义粒子基础颜色。
* **粒子大小**:调整单个粒子的大小。
* **手势强度**:控制手势对粒子干扰的范围和力度。
* **全屏模式**:点击左上角的 "全屏显示" 按钮进入沉浸式体验。
## 📝 注意事项
* 请确保在光线充足的环境下使用摄像头,以获得最佳的手势识别效果。
* 初次加载 MediaPipe 模型可能需要几秒钟,请耐心等待。