[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-96092":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},96092,"RhineLabUI","LBEILC\u002FRhineLabUI","LBEILC","Rhine Lab archive interface built with TypeScript and Three.js",null,"TypeScript",409,54,102,1,0,304,55.22,"MIT License",false,"main",[],"2026-09-20 04:01:32","# RHINE LAB · ANALYSIS OS\n\n**把莱茵生命的终端，做成可以操作的三维界面。**\n\n**[在线体验 → rhine.lubeiluchen.cc](https:\u002F\u002Frhine.lubeiluchen.cc\u002F)**\n\niPhone 可用 Safari 打开在线版，通过“分享 → 添加到主屏幕”安装；从主屏幕图标进入可使用独立窗口。首次联网后，设置中显示“离线资源已就绪”即可离线浏览档案和模型。支持桌面不同比例、手机横竖屏和触摸操作。[安装与更新说明](docs\u002FPWA.md)\n\n![莱茵生命终端：由透明档案盒构成的三维阵列](docs\u002Fmedia\u002Farchive.jpg)\n\n这是对《明日方舟》特别映像「莱茵生命：访问」终端界面的非官方复刻。从白底开场进入五列循环档案阵列，抽取一份档案，等待玻璃与正文解密，再进入独立查看器观察内部结构。\n\n项目以原 PV 的 **5–40 秒**为主要视觉与动效参考，实际开场从 **6.76 秒的白色画面**开始；内部结构另参考约 **41 秒及 46–51 秒**的正面与多角度画面。检索、收藏、正文阅读、结构拆解与声音设置是可操作的扩展功能。\n\n代码由 GPT-6 Astra 协助完成，模型通过 Blender MCP 制作。界面采用 **TypeScript + Three.js + Vite**，运行时实时渲染三维模型，开场由 DOM \u002F SVG 与场景时间轴驱动。\n\n[快速运行](#快速运行) · [界面与动效](#界面与动效) · [操作说明](#操作说明) · [源码与 Blender 工程下载](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F762d9ee9dfc3) · [参考原 PV](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rr4y1b7sz\u002F)\n\n## 新版效果\n\n- **模型与正文同步解密**：对角解密线合拢、保持并收束，盖板自上而下由磨砂变清晰；右侧文档的遮挡条随之退开，露出标题、资料字段与正文。\n- **可看清的双环内构**：双环、连接带与白色／橙色部件封装在盖板与基板之间。顶边黄色方块、两处螺丝和盖板后的刻线补全了外壳细节。\n- **清晰／磨砂切换**：独立查看器可以随时改变玻璃状态，保留当前视角和拆解位置；支持平滑缩放、平移及复位。\n- **滚动文字与编号**：档案标题、分类、权限标签及编号连续滚动，快速输入衔接最新选择。\n- **重新校准的开场**：逐字输入、圆环绕行、连续 Logo 笔画、身份验证和欢迎转场，按原片逐帧修订轨迹与节奏。\n- **声音与画质设置**：玻璃交互音、系统电子音与三轨循环配乐；音效和音乐可独立开关、调节音量。画质提供四档预设及精细设置。\n\n## 界面与动效\n\n以下截图与动图于 **2026-09-09** 重新采集，均来自当前版本的实际浏览器运行。截图为 **1600 × 900**，GIF 为 **8–12 fps**、原速播放；压缩后的帧率与颜色不代表实时渲染质量。采集版本与复现步骤见 [素材说明](docs\u002Fmedia\u002FREADME.md)。\n\n### 抽取、解密与阅读\n\n档案竖直升起，镜头靠近并转向详情构图。解密时玻璃与文档一起揭示；完成后可阅读概述、研究记录及访问日志，也可以收藏或导出 UTF-8 文本。\n\n![档案抽取与同步解密：对角线收束，玻璃从上向下变清晰，正文遮挡退开](docs\u002Fmedia\u002Fdecryption.gif)\n\n| 解密完成 · 清晰内构与档案概述 | 研究记录 · 正文阅读 |\n| --- | --- |\n| [![解密后的档案：左侧可见双环内构，右侧显示机构资料](docs\u002Fmedia\u002Fdetail.jpg)](docs\u002Fmedia\u002Fdetail.jpg) | [![档案研究记录页签](docs\u002Fmedia\u002Fresearch.jpg)](docs\u002Fmedia\u002Fresearch.jpg) |\n\n### 清晰内构与磨砂玻璃\n\n在 360° 查看器中比较两种玻璃状态。切换不会重置镜头或拆解状态，返回详情后仍保留已解密状态。\n\n| 清晰 · 双环与连接带 | 磨砂 · 轻柔折射 |\n| --- | --- |\n| [![清晰玻璃下的档案内部结构](docs\u002Fmedia\u002Fviewer-clear.jpg)](docs\u002Fmedia\u002Fviewer-clear.jpg) | [![相同视角下的磨砂玻璃](docs\u002Fmedia\u002Fviewer-frosted.jpg)](docs\u002Fmedia\u002Fviewer-frosted.jpg) |\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>查看动图：清晰／磨砂连续切换\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n![玻璃由清晰过渡到磨砂，再恢复清晰](docs\u002Fmedia\u002Fglass-motion.gif)\n\n\u003C\u002Fdetails>\n\n### 360° 旋转、拆解与重组\n\n紧固件、透明盖板、折射环组、光学核心、信息基板、背板与框架按六组展开。拆解后仍可旋转、平移和缩放，观察部件之间的关系，再一键重组。\n\n[![新版档案模型：六组结构分层展开](docs\u002Fmedia\u002Fassembly.jpg)](docs\u002Fmedia\u002Fassembly.jpg)\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>查看动图：模型拆解、旋转与重组\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n![操作动图：档案盒从完整状态拆开，旋转观察后连续重组](docs\u002Fmedia\u002Fassembly-motion.gif)\n\n\u003C\u002Fdetails>\n\n### 循环阵列与滚动标题\n\n五类、每类八份，共 **40 份档案**。上下翻阅、左右切列均可持续循环；切回某列时保留上次选择。选中抬起与阵列波浪同时开始，标题和编号跟随输入滚动；返回阵列时，档案先转正再下降。\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>查看动图：切列、翻阅与连续文字滚动\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n![循环切换档案，标题、编号、分类及刻度同步更新](docs\u002Fmedia\u002Fbrowse.gif)\n\n\u003C\u002Fdetails>\n\n### 白底开场\n\n从终端逐字输入到圆环、Logo 绘制，再进入身份接入与权限验证。可以重播，也可以跳过开场直接进入阵列。\n\n[![白底开场中的莱茵生命标志与身份接入文字](docs\u002Fmedia\u002Fboot.jpg)](docs\u002Fmedia\u002Fboot.jpg)\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>查看动图：新版开场片段\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n![新版白底开场：逐字输入、圆环和连续标志绘制、身份验证与欢迎转场](docs\u002Fmedia\u002Fboot-motion.gif)\n\n\u003C\u002Fdetails>\n\n### 检索、声音与画质\n\n检索支持编号、标题、英文名、科室、相关人物与分类筛选。收藏和设置保存在当前浏览器中。音效区分档案的玻璃碰触与系统操作的电子反馈，背景配乐随开场、阵列、详情和查看器调整三轨比例。\n\n| 档案索引 · 关键词与分类筛选 | 系统设置 · 声音与画质 |\n| --- | --- |\n| [![输入莱茵关键词后的档案检索结果](docs\u002Fmedia\u002Fsearch.jpg)](docs\u002Fmedia\u002Fsearch.jpg) | [![独立音效和音乐音量、减少动态效果与画质预设](docs\u002Fmedia\u002Fsettings.jpg)](docs\u002Fmedia\u002Fsettings.jpg) |\n\nGIF 不含声音。可单独[试听原创配乐「观测室」](public\u002Faudio\u002Fobservatory-preview.mp3)，完整声音效果请启动应用体验。浏览器可能需要一次点击或按键才允许播放音频。\n\n## 快速运行\n\n需要 **Node.js 22.12 或更高版本**（可使用 Node.js 24），以及支持 WebGL 2 的现代桌面浏览器。首次安装依赖需要网络；应用不需要 API Key，也不需要启动后端服务。\n\n### 获取项目\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002FLBEILC\u002FRhineLabUI.git\ncd RhineLabUI\n```\n\n也可以从 GitHub 的 **Code → Download ZIP** 下载当前源码，或获取[夸克项目包](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F762d9ee9dfc3)。夸克包是 **2026-09-08 的打包快照**，包含源码、运行模型与 Blender 源工程；后续更新以本仓库为准。\n\n### 安装并启动\n\n```sh\nnpm ci\nnpm run dev\n```\n\n打开终端显示的地址，通常为 `http:\u002F\u002F127.0.0.1:5173\u002F`。如果端口被占用，以终端实际输出为准。\n\nWindows 用户安装 Node.js 并解压项目后，也可以双击 [`启动终端.cmd`](启动终端.cmd)：首次运行会安装依赖，然后启动本地服务并打开浏览器。\n\n### 构建与预览\n\n```sh\nnpm run build\nnpm run preview\n```\n\n生产文件输出到 `dist\u002F`，可以交给静态 HTTP 服务托管。请通过服务地址访问，不要直接双击 `dist\u002Findex.html`。\n\n## 操作说明\n\n### 终端与档案\n\n| 操作 | 效果 |\n| --- | --- |\n| 开场中按 `Enter` \u002F `Esc`，或点击 `ENTER SYSTEM` | 资源就绪后进入交互阵列 |\n| `←` \u002F `→` | 切换档案类别，首尾循环 |\n| `↑` \u002F `↓` | 翻阅同类档案，首尾循环 |\n| `Enter`、`ACCESS FILE` 或文件编号 | 读取当前档案 |\n| 在详情模型上拖动 | 档案获得净空后，旋转观察 |\n| `\u002F` 或 `ARCHIVE INDEX` | 打开检索，可搜索编号、标题、英文名、科室、负责人和分类 |\n| `SAVE ARCHIVE` \u002F `SAVED` | 收藏当前档案 \u002F 查看收藏 |\n| `EXPORT` | 下载当前档案的文本文件 |\n| `Esc` | 关闭当前弹窗，或从详情返回阵列 |\n\n### 独立模型查看器\n\n在详情页点击 **「360° 查看文档模型」** 进入。\n\n| 操作 | 效果 |\n| --- | --- |\n| 鼠标拖动 | 环绕旋转模型 |\n| 滚轮、`+` \u002F `−` | 平滑缩放 |\n| 方向键 | 平移观察位置 |\n| 「复位视角」或 `Home` | 平滑恢复初始观察位置 |\n| 「清晰」 \u002F 「磨砂」 | 切换玻璃状态，保留视角和拆解位置 |\n| 「拆解档案」 \u002F 「一键重组」 | 展开六组部件 \u002F 连续收回 |\n| `Esc` 或「返回档案」 | 关闭查看器，返回原档案 |\n\n### 显示与偏好\n\n布局以 **1920 × 1080** 为基准等比例适应窗口，主要面向桌面与横向屏幕。设置页提供音效与背景音乐的独立开关、独立音量，以及减少动态效果、画质、全屏和重新播放开场。收藏和偏好保存在当前浏览器中。\n\n首次载入需要加载字体与 GLB 模型。项目保留了四份官方 MiSans WOFF2，合计约 19.7 MB，按实际使用加载。画质预设为**性能、原始、高、极高**，默认使用原始；精细设置可调整渲染比例、像素密度、抗锯齿、纹理过滤、透明材质分辨率、阴影、环境遮蔽及景深。运行不够流畅时可选性能档；需要简化镜头、文字与揭示动画时，可启用减少动态效果。\n\n## 工程结构\n\n| 目录或文件 | 内容 |\n| --- | --- |\n| [`src\u002Fmain.ts`](src\u002Fmain.ts) | 页面状态、档案阅读、检索、收藏与快捷键 |\n| [`src\u002Fboot.ts`](src\u002Fboot.ts)、[`src\u002Fboot-motion.ts`](src\u002Fboot-motion.ts) | 开场界面与逐帧时间轴 |\n| [`src\u002Fscene.ts`](src\u002Fscene.ts)、[`src\u002Farchive-loop.ts`](src\u002Farchive-loop.ts) | Three.js 场景、循环阵列、抽取与归位 |\n| [`src\u002Fmodel-viewer.ts`](src\u002Fmodel-viewer.ts) | 独立模型查看器与拆解动画 |\n| [`src\u002Fdecryption.ts`](src\u002Fdecryption.ts)、[`src\u002Fdocument-decryption.ts`](src\u002Fdocument-decryption.ts) | 模型解密轨迹与正文同步揭示 |\n| [`src\u002Faudio.ts`](src\u002Faudio.ts)、[`public\u002Faudio\u002F`](public\u002Faudio\u002F) | 交互音效、三轨配乐与音源记录 |\n| [`src\u002Frender-quality.ts`](src\u002Frender-quality.ts)、[`src\u002Fquality-renderer.ts`](src\u002Fquality-renderer.ts) | 画质预设与渲染管线 |\n| [`content\u002Farchives.json`](content\u002Farchives.json) | 页面与下载共用的五类、40 份档案数据 |\n| [`src\u002Fdata.ts`](src\u002Fdata.ts) | 档案类型与阵列位置映射 |\n| [`public\u002Fassets\u002F`](public\u002Fassets\u002F) | 运行所需的 GLB 模型 |\n| [`public\u002Farchives\u002F`](public\u002Farchives\u002F) | 导出的档案文本；启动和构建前自动生成 |\n| [`art\u002F`](art\u002F) | Blender 源文件、建模与审阅脚本 |\n| [`scripts\u002F`](scripts\u002F) | 档案导出与行为检查 |\n| [`reference\u002F`](reference\u002F)、[`verification\u002F`](verification\u002F) | 开发对照工具与分阶段验证记录 |\n| [`docs\u002Fmedia\u002F`](docs\u002Fmedia\u002F) | README 截图与动图 |\n| [`DESIGN.md`](DESIGN.md) | 视觉、相机、材质与运动约束 |\n\n原片时间轴使用 160 个阵列位置；交互模式使用固定的可见窗口与外围卡片补位，让有限的档案内容可以持续循环。\n\n### 修改与复核\n\n修改档案内容从 [`content\u002Farchives.json`](content\u002Farchives.json) 入手，字段与操作步骤见 [档案修改说明](content\u002FREADME.md)。`npm run dev` 与 `npm run build` 会先校验数据，再更新 `public\u002Farchives\u002F` 中的文本导出；开发过程中修改数据后，可执行 `npm run export:archives` 同步下载文件。`npm run check:content` 检查数据规则与导出一致性。\n\n```sh\nnode scripts\u002Fcheck-motion.mjs\nnode scripts\u002Fcheck-loop.mjs\nnode scripts\u002Fcheck-appearance.mjs\nnode scripts\u002Fcheck-assembly.mjs\nnode scripts\u002Fcheck-decryption.mjs\nnode scripts\u002Fcheck-shell.mjs\nnode scripts\u002Fcheck-internal-optics.mjs\nnode scripts\u002Fcheck-quality.mjs\n```\n\n这些脚本检查运动、循环位置、外观、装配结构、解密轨迹、外壳、内构与画质参数。视觉效果仍需在浏览器中实际查看，尤其是快速切换、模型归位、文档揭示及查看器进出过渡。\n\n| 本地调试路径 | 用途 |\n| --- | --- |\n| `\u002F?scene=archive` | 直接进入档案阵列 |\n| `\u002F?scene=detail` | 直接进入档案详情 |\n| `\u002F?time=28&freeze=1` | 固定在参考时间轴的指定时刻 |\n| `\u002Freference\u002Freview.html`、`\u002Freference\u002Fboot-review.html` | 原片与复刻对照工具 |\n| `\u002Freference\u002Fdecryption-review.html` | 玻璃解密逐帧对照 |\n| `\u002Freference\u002Fdocument-decryption-check.html` | 正文同步解密与布局检查 |\n| `\u002Freference\u002Fboot-audio.html` | 完整开场声音试听 |\n\n原 PV 不随仓库分发。使用视频对照工具时，需要自行准备对应参考视频；正常运行应用不依赖它。\n\n### Blender 源工程\n\n| 文件 | 用途 |\n| --- | --- |\n| [`art\u002Frhine-archive.blend`](art\u002Frhine-archive.blend) | 档案盒基础模型与审阅灯光 |\n| [`art\u002Farchive-assembly.blend`](art\u002Farchive-assembly.blend) | 可按六组结构拆解的模型 |\n| [`art\u002Fbuild_archive.py`](art\u002Fbuild_archive.py) | 生成基础模型与 GLB |\n| [`art\u002Fbuild_assembly.py`](art\u002Fbuild_assembly.py) | 生成拆解模型与 GLB |\n| [`art\u002Finternal_architecture.py`](art\u002Finternal_architecture.py) | 当前双环内构与连接带 |\n| [`art\u002Fshell_reference_details.py`](art\u002Fshell_reference_details.py) | 顶边方块、螺丝及盖板后刻线 |\n| [`art\u002Fsetup_studio.py`](art\u002Fsetup_studio.py) | 配置资产审阅灯光与相机 |\n\n普通运行直接使用现有 GLB 即可，无需安装 Blender。重新建模时，可在 Blender 的脚本环境中通过 `runpy.run_path()` 执行对应脚本，或通过 Blender MCP 调用。脚本根据自身位置确定项目目录，重新生成会更新对应模型输出。\n\n## 参考与资源说明\n\n参考作品为《明日方舟》特别映像「莱茵生命：访问」：[BV1rr4y1b7sz](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rr4y1b7sz\u002F)。本项目与官方制作方无隶属关系，原 PV、相关名称、标志与设定的权利归各自权利人所有。原片未展示的档案摘要、日期、研究记录等属于本项目的扩展演示内容。\n\n模型为重新制作；实时折射、景深、灯光与局部细节和原 PV 仍有差异。身份验证画面是演示状态机，不连接真实身份或业务服务。\n\n- **MiSans**：使用小米官方字体文件，保留[字体许可](public\u002Ffonts\u002FMiSans-license.pdf)及字体目录内的版权说明，设置页也提供署名与许可入口。\n- **Rolling Number**：用于编号和文字滚动，许可见 [`public\u002Flicenses\u002Frolling-number.txt`](public\u002Flicenses\u002Frolling-number.txt)。\n- **声音**：三轨配乐为本项目程序编配；逐字输入使用原 PV 的三个 38ms 短音，来源与处理记录见 [音频说明](public\u002Faudio\u002FREADME.md)。原片短音及其衍生片段不纳入原创配乐的 MIT 授权声明。\n- **其他依赖**：各自遵循其原有许可。源码公开不改变第三方资源的权利。\n\n源码包包含运行代码、模型、Blender 工程、说明与验证脚本，不包含依赖目录、本机缓存、原 PV 或完整录制素材。\n\n## 开源许可\n\n本项目自行编写且有权授权的程序代码、建模脚本及配套技术文档采用 [MIT License](LICENSE)，版权署名为 **Copyright (c) 2026 LBEILC**。你可以使用、修改、分发这些内容，也可以将其用于商业或闭源项目；分发代码或其重要部分时，须保留版权声明和许可证。软件按原样提供，不作担保，具体以许可证全文为准。\n\nMIT 授权不覆盖第三方权利或自动覆盖仓库内全部素材：\n\n- 《明日方舟》及莱茵生命相关名称、标志、设定、原 PV 和原作视觉设计，以及它们在模型、界面、截图或演示文本中的呈现，不因本项目公开而获得额外授权。本项目无法代替相应权利人授予这些权利。\n- Blender \u002F GLB 模型、图像、动图等非代码资产未另行声明为 MIT；建模脚本采用 MIT 不表示脚本生成的原作相关视觉内容也已获授权。\n- MiSans、Rolling Number 及其他第三方依赖继续遵循各自的许可证和版权声明，见上方「参考与资源说明」。\n\n复用代码时，请根据用途处理涉及的第三方素材与标志。GitHub 当前源码包已包含本许可证；上方夸克链接为早期打包快照，未包含本次新增的项目许可证文件，最新许可说明以本仓库为准。\n","RhineLabUI 是一个基于《明日方舟》「莱茵生命：访问」PV 的三维交互式档案界面复刻项目。它使用 TypeScript 和 Three.js 构建，支持实时渲染、360° 旋转、分层拆解、玻璃状态切换（清晰\u002F磨砂）、同步解密动效、离线 PWA 运行及多端自适应（桌面、iOS Safari）。核心功能包括循环档案阵列浏览、关键词检索、收藏管理、结构化正文阅读与三轨背景音效控制。适用于二次元IP粉丝体验、三维UI设计参考、PWA应用实践及游戏衍生内容交互展示场景。",2,"2026-09-09 02:30:12","CREATED_QUERY"]