Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@ bfg-report/
# =========================
# 9. Sensitive / Temporary Files (临时文件)
# =========================
# repomix 自动导出文件(整个项目代码的 XML 导出,不应提交至版本库)
repomix-output.xml
repomix-output.txt
PR_BODY.md
create_pr.sh
CLAUDE.md
Expand Down
126 changes: 126 additions & 0 deletions CODE_STATISTICS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# BrainDance 项目代码统计报告

> 统计时间:2026-02-25
> 统计工具:[pygount](https://github.com/roskakori/pygount) v3.1.1
> 统计范围:排除 `.git`、`node_modules`、`__pycache__`、`weights` 目录

---

## 一、项目整体概览

### 含全部文件(包含 repomix-output.xml 自动导出文件)

| 指标 | 行数 | 占比 |
|------|-----:|-----:|
| 有效代码行数 | 441,326 | 58.3% |
| 注释行数 | 86,193 | 11.4% |
| 空行数 | 195,002 | 25.7% |
| **项目总行数** | **722,521** | **100%** |
| 文件总数 | 858 | — |

### 排除生成文件(去掉 `repomix-output.xml` 自动导出文件后的实际源代码)

> `repomix-output.xml` 是由 [repomix](https://github.com/yamadashy/repomix) 工具自动生成的整个项目代码导出文件(20MB,389,540 行),不属于实际业务代码,建议将其加入 `.gitignore`。

| 指标 | 行数 | 占比 |
|------|-----:|-----:|
| **有效代码行数** | **155,758** | **42.3%** |
| 注释行数 | 86,112 | 23.4% |
| 空行数 | 91,110 | 24.8% |
| **项目总行数** | **332,981** | **100%** |
| 文件总数 | 857 | — |

---

## 二、按模块目录统计

| 目录 | 文件数 | 有效代码行 | 注释行 | 空行 | 总行数 |
|------|-------:|-----------:|-------:|-----:|-------:|
| `ai_engine/` | 552 | 120,849 | 75,420 | 80,580 | 304,928 |
| `app/` | 167 | 33,553 | 855 | 5,297 | 40,523 |
| `supabase/` | 35 | 919 | 1,867 | 795 | 3,949 |
| `docs/` | 85 | 0 | 7,540 | 4,051 | 16,803 |
| 根目录 | 12 | 192 | 306 | 255 | 1,023 |
| `tests/` | 2 | 204 | 135 | 119 | 547 |
| `patches/` | 1 | 23 | 0 | 1 | 24 |
| `.vscode/` | 2 | 17 | 0 | 12 | 37 |
| `tmp_test/` | 1 | 1 | 0 | 0 | 1 |

> 注:`docs/` 目录全部为 Markdown 文档,pygount 将文档内容计入注释行而非代码行。

---

## 三、按编程语言统计(排除生成文件后)

| 编程语言 | 文件数 | 有效代码行 | 注释行 | 总行数 |
|----------|-------:|-----------:|-------:|-------:|
| JSON(数据/配置文件)| 47 | 78,553 | 0 | 114,832 |
| Python | 351 | 48,144 | 14,427 | 79,853 |
| JavaScript(打包产物)| 5 | 21,353 | 300 | 24,591 |
| Dart(Flutter)| 25 | 2,056 | 112 | 3,076 |
| Bash | 13 | 1,621 | 290 | 2,245 |
| YAML | 17 | 1,534 | 113 | 1,742 |
| HTML | 4 | 481 | 25 | 729 |
| C++ | 7 | 431 | 79 | 732 |
| TOML | 5 | 383 | 396 | 961 |
| SQL | 4 | 354 | 0 | 548 |
| TypeScript | 5 | 305 | 710 | 1,234 |
| Markdown | 110 | 0 | 49,360 | 114,294 |
| 其他(C/CSS/Kotlin/Swift等)| 59 | 457 | 65 | 779 |

---

## 四、核心业务代码重点分析

### `ai_engine/` —— AI 引擎模块(占有效代码 77.6%)

| 子模块 | 说明 |
|--------|------|
| `ai_engine/3dgs/` | 3D 高斯泼溅(3D Gaussian Splatting)核心算法 |
| `ai_engine/3dgs/src/` | 管线、工厂、配置等核心源码(Python) |
| `ai_engine/3dgs/src/libs/Depth-Anything-3/` | 深度估计第三方库及扩展脚本 |
| `ai_engine/demo/` | 演示脚本与 WebGL 查看器 |

### `app/` —— Flutter 前端应用(占有效代码 21.5%)

| 子模块 | 说明 |
|--------|------|
| `app/lib/` | Flutter/Dart 业务逻辑层 |
| `app/assets/` | WebGL 模型资源与构建产物 |
| `app/android/` / `app/ios/` | 移动端原生配置 |

### `supabase/` —— 后端服务(占有效代码 0.6%)

- 主要包含数据库迁移 SQL 脚本(354 行)及 Edge Function 配置

---

## 五、文件分类统计

| 分类 | 文件数 | 说明 |
|------|-------:|------|
| 实际可统计源码文件 | 656 | 包含有效代码或注释的文件 |
| 重复文件(`__duplicate__`)| 94 | 内容与其他文件相同,未重复计入 |
| 二进制文件(`__binary__`)| 49 | 图片、模型等二进制资源 |
| 未知格式(`__unknown__`)| 49 | 无法识别语言的文件 |
| 生成文件(`__generated__`)| 10 | 自动生成代码 |
| 空文件(`__empty__`)| 1 | 无内容文件 |
| **合计** | **858** | |

---

## 六、结论

| 问题 | 结论 |
|------|------|
| 项目总行数(含所有文件)| **722,521 行** |
| 项目总行数(排除自动导出文件)| **332,981 行** |
| **有效代码行数(含所有文件)** | **441,326 行**(58.3%) |
| **有效代码行数(排除自动导出文件)** | **155,758 行**(42.3%) |
| 注释行数 | 86,112 行(23.4%) |
| 空行数 | 91,110 行(24.8%) |

**主要编程语言**:Python(核心 AI 算法)、Dart(Flutter 移动端)
**项目规模**:中型项目,实际业务代码约 **15.6 万行**有效代码

> ⚠️ 建议将 `repomix-output.xml` 加入 `.gitignore` 以避免将自动生成的导出文件提交至版本库。