elder-plinius/GL4SS
GitHub: elder-plinius/GL4SS
一个无后端的纯前端时空图像与视频生成引擎,让用户在地图上选择地点并穿越到任意历史或未来时刻,生成对应的画面与短片。
Stars: 5 | Forks: 2
```
██████╗ ██╗ ██╗ ██╗███████╗███████╗
██╔════╝ ██║ ██║ ██║██╔════╝██╔════╝
██║ ███╗██║ ███████║███████╗███████╗
██║ ██║██║ ╚════██║╚════██║╚════██║
╚██████╔╝███████╗ ██║███████║███████║
╚═════╝ ╚══════╝ ╚═╝╚══════╝╚══════╝
⧗
T H E L O O K I N G G L A S S 🪞👁️🪞
EX LOCO, PER VITRUM, AD OMNE TEMPUS
From Place, Through Glass, To All Time
FORTES FORTUNA IUVAT
```
# 魔镜 🪞⧗
### **[GL4SS.ai](https://GL4SS.ai)**







**它不是时光机。我检查过了。但它确实有点像时光机!** ⚡
*将其指向地球上的任意地点,拨动年份到“大灭绝”到 3050 年之间的任意一年,选择一天中的某个小时,然后拉动控制杆。*
**THE LOOKING GLASS** 是一个**时空图像 + 视频引擎** —— 一个多维查看器,它能生成一幅图像,
呈现那个确切的地点、在那个确切的年份、那个确切的小时所存在的景象。然后,如果你愿意,它会将该
画面渲染成一部带**声音的短片**。
**一个页面。无后端。无账户。你的密钥,你的浏览器,你的档案。** 🐉
## 👁️ 这到底是什么
你一定知道站在某个古老的地方,试图*看清*它的感觉——那时的街道在铺成街道之前,那时的港口在浇筑混凝土之前,那时的山丘在建起城市之前?你的大脑试图抓住它,却只抓到一团浆糊,
因为它从未被给予任何可以用来*抓住*的东西。
而这个工具给了它这种能力。
在那不勒斯湾放个大头针。将年份拨回到**公元 79 年**。将太阳调到下午。拉动控制杆。
然后画面出现了:一艘罗马战舰的甲板,难民们正从一艘小船上爬上来,其他战舰在汹涌的波涛中待命,火山灰像脏雪一样落下,而那座山在这一切背后喷发——
**老普林尼正*朝着*维苏威火山航行,而海湾里的其他船骸都在朝相反的方向逃跑。** 🌋
*“Fortes”* 他曾说道,*“fortuna iuvat.”*(命运眷顾勇者)。他再也没有回来。
那句话就在这个 README 的顶部。那是他的第一句话。
## 🔮 仪器
整个表面是**一体化机身**,由单块坯料铣削而成,由一盏固定在 168° 的灯照亮,通过单一的静置光学元件观看。除非是在那盏灯下的边缘物理效果,或者是读取应用已知的数字标记,否则任何东西都不会被发送。
**⌖ 刻度盘** —— 这是一个调谐器,而不是轨道上的滑块。指针是固定的;世纪的丝带在它下方移动。时间被量化为 **284 个站点**,间距取决于实际发生的变化有多大——在恐龙时代跨越 2500 万年,在活人的记忆中则是一年一步——因此它在真实的地点之间跳跃,而不是在一团浆糊中滑动。四个级别的刻度,带编号的主刻度,以及在十一个比例换档处各有一个梯级,因为 284 个完全相同的等距刻度将是一个虚假的刻度。
点击年份并输入你想要的任何内容:`1969`,`500 BC`,`66 mya`,`20000 years ago`。
**☀ 日晷** —— 太阳沿着刻度盘的**外侧**运行,你可以*拖动它在天空中移动*。越过地平线,它就会变成一个月亮,在黑暗的一半中遵循真实的月相运行——黄昏时渐盈,午夜时满月,黎明前渐亏。黎明和日落正好位于 9 点钟和 3 点钟方向,因此地平线干净地穿过圆盘,太阳呈现为**半升起和半落下**的状态。没有遮罩。纯粹的几何学。
**⇩ 控制杆** —— 除非你有其他要求,否则这是唯一花钱的东西。免费浏览整个历史;你正看着的图片会*一直保留*,直到你拉动它。(它以前是在你停止滑动后超时触发,这意味着停下来思考也是一件要花钱的事。读者们,那体验并不好。)“设置”中有一个可以改变这种情况的选择性开启功能——在你之前生成下一个站点,以便即时跳跃——并且在你打开它之前,它一直是关闭的。
**🌀 虫洞** —— 等待并不是一个旋转的加载图标。它是一个 raw-WebGL fragment shader:一个 1/r 的流动分形噪声隧道,带有每通道色差和径向灯丝,并且被包裹以使角度接缝真正闭合。**方向决定色调**——向前飞是冷色调的电光蓝,向后退是熔融的琥珀色——**距离决定速度。** 轻轻推到一个站点和一头扎进白垩纪是截然不同的旅程。
**⧉ 固定与对比** —— 固定一帧画面,在屏幕上拖动一条接缝,并在注册在相同像素上的两个时代之间进行擦除切换。或者按住 `space` 键进行闪烁对比。刻度盘上实时指针与幽灵指针之间的间隙**就是**按比例绘制的时间距离。
## 🗺️ 55 段旅程
一个贯穿历史的重要时空库。一键设定地点、坐标、年份*和*小时。
## 以及更多!
## ⚙️ 自行运行
```
npm install
npm run dev
```
带上你自己的 [OpenRouter](https://openrouter.ai) 密钥。它存在于**你的**浏览器中,并且**只**发送给
OpenRouter——严格的 CSP 固定了 `connect-src`,因此受到破坏的依赖项无处可将其发送。“设置”
中有一个**测试此密钥**按钮,它可以免费针对 OpenRouter 进行检查并报告你的剩余
余额,这样你就能在花费一次控制杆拉动次数去发现之前,提前知道密钥是错误的。
| 阶段 | 默认 | 可替换 |
| --- | --- | --- |
| 🧠 场景规划 | `google/gemini-3-flash-preview` | — |
| 🖼️ 静态图像 | `x-ai/grok-imagine-image-quality` | **5 个模型** —— FLUX 2 Max, Nano Banana Pro, FLUX 2 Flex, Gemini 3.1 Flash |
| 🎬 影片 + 声音 | `bytedance/seedance-2.0` | **5 个模型** —— Seedance Fast, Grok Imagine, Veo 3.1, Kling 3.0 |
| 🌍 地图 | Leaflet + Esri World Imagery,一直缩小它会变成一个地球仪 | — |
所有内容都在**设置**中以通俗的语言进行选择,并说明每个选项的实际*用途*。在你穿越时间时速度很快,在你停下来观看时则提供前沿级别的画质。
当确实出现问题时,应用会用一句话说明是这五种情况中的哪一种——没有密钥、密钥错误、没有额度、速度过快、模型已停用——并附带一个可以解决该问题的按钮。只有当重试确实可能奏效时,它才会为你提供重试选项。**四个运行时依赖项**——React、React DOM、Leaflet、three.js。**无后端。无遥测。无账户。。**
画面持久化保存到 **IndexedDB** —— 你的档案在重新加载后依然存在,刻度盘会点亮你已经拥有的站点,并且这些站点会瞬间且免费地恢复。
## ⌨️ 快捷键
| | |
| --- | --- |
| `←` `→` | 跳跃一个站点 (`shift` = 五个) |
| `↵` | 拉动控制杆 |
| `J` | 旅程 |
| `M` | 地点 |
| `W` | 展宽视野 |
| `P` | 固定画面 · `space` 闪烁对比 |
| `F` | 全屏 |
## ⚖️ 许可证
**AGPL-3.0-or-later.** 参见 [LICENSE](LICENSE)。
🐉
```
FORTES FORTUNA IUVAT
⊰-•-•✧•-•-⦑/L\O/V\E/\P/L\I/N\Y/⦒-•-•✧•-•-⊱
```
标签:3D渲染, WebGL, 前端可视化, 图像引擎, 时空可视化, 自动化攻击, 视频引擎