# 星港 · 1:1 复刻包（真源码 · 分类打包）

这不是"照蓝图重搭"，而是**星港网站的真实源代码本身**，分类整理好、框架写清楚——
拿到这个文件夹（或压缩包）**丢给任何模型（含国产大模型），就能 1:1 复刻整个外壳**。
**外壳 = 100% 真站**（真 ISS 空间站 GLB + NASA 真地球贴图 + 全部 3D 场景/HUD/交互/开场动画）；
**内容 = 已换成占位样例**（作品/语录/成员/文案），你只要把占位换成自己的。

> 📡 **对照目标 · 原站照片级标杆** → https://treelin-starport.vercel.app
> 复刻时开着它对照，一切以它的实际观感为准。

---

## 一句话喂给模型

> 「这是一个单文件 HTML + 全局版 Three.js 的太空站网站的**完整真实源码**。请**原样 1:1 复刻外壳**，
> 只把 `assets/` 里标为【内容·占位】的数据文件、以及 `index.html` 里标了 `【内容·占位样例】` 注释的内联数据，
> 换成我给你的内容。**不要改** `shell / vendor` 部分，尤其不要动 3D 场景搭建、开场时间线、场景状态机。」

之后把你自己的作品/文案丢给它，让它填进"内容替换清单"里的那几处即可。

---

## 目录分类表（复刻者只需认三种颜色）

| 类别 | 是什么 | 复刻时怎么办 |
|---|---|---|
| 🟩 **SHELL 外壳** | `index.html`（2680 行：CSS + 全部 3D/场景/交互 JS）| **原样照抄，别动结构**。要改只改标了占位注释的内联数据 |
| 🟦 **VENDOR 第三方库** | `assets/lib/`（three.min.js / GLTFLoader / gsap / ScrollTrigger / pp 后处理）| **原样照抄，一个字节都别改** |
| 🟦 **ASSET 真实资产** | `assets/models/`（真 ISS 站体 `iss.glb`+`iss-glb.js`、`earth-tex`/`cloud-tex`/`moon-tex`）、`assets/tex/`（星云+大理石）、`assets/fonts/`、`assets/bgm/`、`assets/logo.css` | **原样照抄**。想换成你自己的模型/贴图 → 见下方"换成你的资产" |
| 🟨 **CONTENT 内容·占位** | `assets/works/works-lib.js`、`assets/words/words-lib.js`、`assets/words/values-lib.js`、`assets/covers-data.js` + `index.html` 里几处内联数组 | **换成你自己的**（数据契约见文件头注释 + 父目录《复刻蓝图.md》§数据契约）|

> 目录本身就是分类：`lib/`=库、`models/`+`tex/`+`fonts/`=真资产、`works/`+`words/`+`covers-data.js`=内容。

---

## ⚠️ 三条硬约束（动了就崩，务必让模型知道）

1. **真站体是 GLB 二进制真资产，不是几何硬凑。** `assets/models/iss.glb`（11MB）+ `iss-glb.js`（15MB，同款 data-URI 版，file:// 直开用）是真 ISS 模型。**别让模型"用球和圆柱拼一个空间站"**——那就是上一版翻车的原因。照片级质感全靠这个真模型 + NASA 真地球贴图。
2. **中文大字用的是子集字体（只含站里出现过的字）。** `fonts/display-cjk.woff2`=16 字、`fonts/ysh-sub.woff2`=44 字，全息大招牌就靠它们。**改招牌/标题成你自己的字**，那些字若不在子集里会自动落 PingFang（能显示、但没那个显示体质感）。要保持质感 → 用 fonttools 重新子集化一套含你新字的（recipe 见父目录《复刻蓝图.md》§资产渠道）。
3. **开场一镜到底 + 场景状态机是骨架，别重写。** 开场时间线（`autoTraverse`，单一进度 `k`）、场景机（`SCENE` 变量 + `go()` + `doBack()`）、招牌跟随空间站（挂非自转的 `station` 群、别挂自转的 `spin`——挂错就漂移）——这几处照抄，别自作主张。详见父目录《元件库/元件库.md》。

---

## 内容替换清单（你/模型要动的，就这几处）

| 换什么 | 在哪 | 契约 |
|---|---|---|
| 作品星林（分组+作品+封面）| `assets/works/works-lib.js` → `window.LIB_DATA` | 文件头注释 |
| 语录（原话星域）| `assets/words/words-lib.js` → `window.WORDS` | 文件头注释 |
| 价值观图墙 | `assets/words/values-lib.js` → `window.VALUES` | 留空也行 |
| 作品封面库 | `assets/covers-data.js` → `window.COVERS` | 留空则用内置程序化占位封面 |
| 首页彗星精选作品（9 个）| `index.html` 搜 `var WORKS=[` | 标了 `【内容·占位样例】` |
| 能力中枢六域档案 | `index.html` 搜 `var CAP_GOALS` / `CAP_FIELD` | 标了 `【内容·占位样例】` |
| 全息招牌大字 | `index.html` 搜 `fillText('星港'` 和 `TSTR=` | 见硬约束 2（字体）|
| 品牌名/标语/文案 | `index.html` 里 `示例社群 / 示例标语 / 示例主标题 / YOUR TAGLINE HERE` 等占位串 | 全局替换成你的 |
| 三个联系二维码 | `index.html` 搜 `示例二维码` | 换成你的真二维码图 |

> 其余所有可见的"示例××""SAMPLE""作者甲/乙/丙"都是占位，全局搜 `示例` / `SAMPLE` 即可定位。

---

## 换成你的资产（要照片级）

包里已是照片级（真 GLB + NASA 贴图），**直接跑就是照片级**。想换成你自己的：
- 3D 模型：Sketchfab / NASA 3D Resources 下 `.glb`，替换 `assets/models/iss.glb`（代码 `gl.load(window.ISS_GLB||'./assets/models/iss.glb')` 会自动装）。
- 地球/贴图：NASA Visible Earth（Blue Marble）、Solar System Scope、Poly Haven / ambientCG。
- 完整渠道 + data-URI 内嵌技巧 → 父目录 **《复刻蓝图.md》「★ 资产获取渠道」章**。

---

## 跑起来看

- 直接**双击 `index.html`**（file:// 就能跑，GLB/贴图都是 data-URI，无需服务器）；
- 或本地起服务：`python3 -m http.server` 后开 `http://localhost:8000/`。
- 加载屏 → 点「进入星港 · ENTER」→ 一镜入场到站 → 站体 + 地球 + 全息招牌 + HUD 全出来 = 外壳正常。

---

## 和其他文档的关系

| 文件 | 作用 |
|---|---|
| **本包（1比1复刻包/）** | 真源码，直接 1:1 复刻用 |
| 父目录 `星港架构拆解.html` | 框架图 + 搭建指引图（想先建立宏观框架、浏览器打开看）|
| 父目录 `复刻蓝图.md` | 12 阶段搭建顺序 + 数据契约 + 设计宪法 + 资产渠道 |
| 父目录 `元件库/元件库.md` | 14 个元件的可抄代码 + 每个的「自定义旋钮 / 别乱动」 |

*源站：`/Users/水猫/AI/项目/树成林IP营宣传网站/星港/index.html`（线上 treelin-starport.vercel.app）。本包 = 它的真源码去内容版，外壳逐字节一致。*
