这是什么
33,458 位诗人、970,319 首诗,我把中国全历史的诗歌放进了一片三维星系。灵感来自刘慈欣的短篇《诗云》—— 那本书讲述了一个想用穷举写尽所有诗的超级文明,我做的这个也叫「诗云」。
每位诗人是一颗星,每首诗都有自己的空间坐标,可以缩放、漫游整片星空,随手点开一颗星就是一首诗,还能看到诗人之间的关系网络。从《诗经》到近现代,三千年的诗都在这一片宇宙里。李白是很亮的一颗星,但更多的是那些你从没听过名字的人,也各自占着一个坐标。
而星与星之间的虚空,藏着比这更大的东西 —— 它是「一切可能的近体诗」。点一下空处,就从噪声里 unrank 出一首诗,并显示它在「全集目录」里那个长达 82–229 位的编号:地址几乎和诗本身一样长(目录即图书馆)。诗不被储存,给一个编号就能算出它是第几首诗,反之亦然 —— 杰作只是噪声海里的零测度亮点。
🖥 PC 端体验最完整。 移动端可用(触控漫游 + 自适应画质),但飞行、拾取与关系网在大屏鼠标下最舒服。
截图
 随手点开一颗星,就是一首诗 —— 连同它在「全集目录」里那个长长的唯一地址。 |
 赠诗网络 —— 解析诗题与字号别名连出 5,165 条赠答弧线,选中一位即勾出其往来。 |
 探诗 —— 填字成诗实时算出编号,或凭一串编号反查回唯一的那首诗。 |
 每位诗人都是一个小星系 —— 作品越多,星系越大;点定位即可飞到任意一首。 |
它能做什么
| 能力 |
说明 |
| 全朝代 + 新诗 |
先秦 → 当代,15 个朝代同心壳,可按朝代筛选;并收入现代新诗(徐志摩《再别康桥》、海子、北岛、顾城、戴望舒…,自由体归入「其它」)。 |
| 五种诗体 |
五绝 / 七绝 / 五律 / 七律,外加自由格式 / 词(变长断句,换行也由编号决定);格律开关让你只在「合律子目录」里漫游。 |
| 寻诗 · 逐句搜索 |
输入任意一句(不限开头)→ 它在「真实诗人」里属于谁(疑是地上霜 → 李白《静夜思》,非首句也命中),同时给出「纯随机」目录里那个被诗句锁定的半编号。 |
| 探诗 · 编号反查 |
把一个长编号 unrank 回它的诗,核对行索引与全文,告诉你这串数字是否对应一首真实存在的诗 —— 目录 ↔ 诗的闭环,全程显示未截断的完整编号,一键复制。 |
| 赠诗网络 |
解析诗题(寄 / 赠 / 和 / 次韵…)与 ~250 条字号别名(少陵 → 杜甫、子瞻 → 苏轼、香山 → 白居易…)连出 5,165 条赠答弧线,束状汇向银心,沿弧涌动柔光脉冲。 |
| 可分享的永久链接 |
#a=<诗人id> / #p=<诗体>.<编号>,诗与诗人面板均有 🔗 分享,打开即从链接重建那首诗、复位那片星空。 |
| 纯静态 |
所有索引运算与渲染都在浏览器里完成,服务器只发静态文件,永不加后端(唯一可选后端是匿名反馈收集)。 |
三种 pull 模式,感受这个项目: 纯随机「牛蝛茙漂綵」→ 格律「趰㵎憣烔岆」→ 格律+常用字「思伦要锁馆」;再加自由格式的词式变行,以及「寻诗」从一句话找回一首真实的诗。
背后的想法
诗云不存诗 —— 它存的是一个双射。每一首近体诗,都对应一个巨大的整数编号;给定编号能精确还原出诗,给定诗也能算回编号(base-N「巴别」进制 + 格律混合基数 rank/unrank,叠加可逆的 BigInt Feistel 置乱做空间散布)。索引引擎是纯 TypeScript、零依赖的,往返可逆,单元测试全绿。
于是「写出所有可能的诗」不是收藏,而是计算:星海里的每一个坐标都是一首诗,绝大多数是噪声,偶尔一颗恰好是李白。真实诗人的真实作品,则是这片噪声海里被点亮的、有名有姓的亮点。
更多细节见 docs/ARCHITECTURE.md(分层架构)、docs/ENGINE_API.md(引擎接口与不变量)、docs/DATA_CONTRACT.md(数据契约)。
🚀 快速开始
npm install
npm run dev # 开发预览(Vite)
npm test # 引擎往返 + 数据加载等单元测试
npm run build # 类型检查 + 静态构建 → dist/
Node 20+。技术栈:Vite + React 18 + TypeScript + three.js / @react-three(fiber · drei · postprocessing)+ zustand。
仓库自带轻量数据(星系、作者搜索、格律、半编号、赠诗网络都能跑);逐首诗的全文与逐句搜索索引是体量很大的衍生数据(git-ignore),需要时按 docs/PIPELINE.md 从开放语料重新生成。部署到静态主机的完整教程见 docs/DEPLOY.md(注意 poems/*.json 必须以 RAW 提供,HTTP Range 取片依赖它)。
文档
关于
诗云是一个 vibecoding 作品:由我(Cohen)设计并把关方向,主要的代码骨架与迭代由 Claude 编写处理 —— 仓库里完整保留了这段人机协作的开发日记(docs/DEVLOG.md 与 docs/devlog/)。
它在抖音 / 小红书 / 哔哩哔哩等平台全网累计播放超 1000 万、点赞超 150 万,也是我一系列非商业、源码公开项目中的一个。代码以 PolyForm Noncommercial 1.0.0 许可发布,欢迎学习、自建与非商业二次创作;诗歌语料(尤其现当代新诗文本)的版权属于原作者,请勿用于商业用途。
更多项目见我的主页 cohenjikan.com 与 GitHub @Cohenjikan。
开源致谢
站在这些开源工作之上:
许可
代码以 PolyForm Noncommercial 1.0.0 许可发布 —— 源码公开、仅限非商业使用;商用授权请联系作者(截至提交 0a64a5d 的旧版本仍按 MIT 授权,对那些版本继续有效)。诗云自有的整理性元数据(标注 / 索引)以 CC BY-NC 4.0 提供;诗歌语料各自保留上游许可与权利,尤其现 / 当代诗歌文本的版权归原作者所有,仅作非商业使用。详见 LICENSE 与 docs/DATA_CONTRACT.md。
从《诗经》到近现代,三千年的诗都在这一片宇宙里。
评论