跳转到正文

把 101 个名字变成一片星空:群星志发布

群星志 Constella 把名字放进可缩放的时间星图,按时代、专业与地区浏览,也能导入自己的 JSON 数据集。

麦极客
把 101 个名字变成一片星空:群星志发布

那天运行 Codex 时,我偶然发现其中一个 Worker 的名字是 Confucius。在一串英文名字里突然看到孔子,既熟悉又有点意外。我很好奇:Codex 到底准备了多少个 Agent 名称?其中又有多少位中国人?

顺着源码找下去,我发现 Codex 的仓库里有一份 agent_names.txt,一共收录了 101 个名字。Euclid、Newton、Turing、Curie、Arendt……大部分是来自西欧的科学家与思想家。

而来自中国的名字,只有两个:孔子和孟子。

101 个名字放在文本文件里,很难直观看出他们来自哪里、生活在哪个年代,又集中在哪些领域。于是我开始给每个人补上年代、地区和专业,再把他们放到一张可以缩放、筛选的前端星图里。

这就是 群星志 Constella 的起点。

Confucius

或许,这就是西方人对于我们的印象,我们虽然有灿烂的文化,但近代科学贡献并没有被广泛认可。但随着中国科技水平不断提高,会有越来越多中国科学家、工程师与思想者被大家所熟知,成为未来这些名单里的名字。

名单里还藏着一个很有意思的彩蛋:第 101 个名字是 Jason。他不是科学家,只是一个再普通不过的人名。这是 Codex 团队在一百位群星之后,悄悄留下的小彩蛋。

把重要的人,放进一张会发光的时间星图。


群星志是什么

群星志是一个可缩放、可筛选、可以导入自己数据的人物时间星图。

页面中的每个人都是一颗星。横向位置代表出生年代,纵向轨道代表专业,星星的颜色代表地区。你可以搜索一个名字,也可以从数学、物理与天文、哲学、生命与医学等专业中筛选人物。

点击一颗星,右侧会显示人物的年代、地区、专业和一句话介绍。打开「随机介绍」,星图还会每隔几秒自动选中一位人物,像在夜空中随机认出一颗星。

目前的内置数据集收录了 Codex 名单中的全部 101 个名字,从孔子、欧几里得,到图灵、费曼与阿伦特,也包括最后的小彩蛋 Jason。它不是一份完整的人类名人录,更像是一次从 Codex 名单出发的可视化实验。

两种观看历史的方式

群星志目前有两种视图。

编年史是默认视图。它把时间放在横轴,把专业分成多条纵向轨道,适合观察一个时代里有哪些人,以及某个专业在哪一段时间突然变得密集。

三维投影视图则把时代、专业和地区三个维度放进一张等距投影图。它不是真的 3D,也不需要 WebGL,但能用一个不同的角度观察同一份数据。

同一批人物,换一种坐标系,关系也会跟着变化。时间轴更像编年史,三维视图则更像一张知识地图。

为了让它不像一张静止的统计图,我还加了几个很小的细节:

  • 每颗星有独立的呼吸周期,筛选或重绘后,动画仍会保持连续
  • 页面会定期随机显示几个人名,新出现的名字才会淡入
  • 选中的人物会出现光环与星芒,随机导览时也能一眼找到它
  • 地区使用不同颜色,但人物信息同时以文字显示,不需要只靠颜色判断

这些效果都不复杂,却让一张「人物散点图」开始有了一点星空的感觉。


真正想做的,不只是展示 101 个人

做到这里,群星志还只是一个好看的 Demo。

真正让我觉得它可以成为产品的,是数据导入

点击页面右上角的「导入数据」,上传一份符合规范的 JSON 文件,内置人物就会被完全替换。星图会根据新数据自动生成专业轨道、地区筛选和颜色,不需要修改任何代码。

这意味着群星志不只可以放科学家和哲学家。你也可以用它整理:

  • 一个领域的重要研究者与技术演进
  • 喜欢的作家、导演、音乐人与作品年代
  • 一段家族史或组织成员史
  • 游戏、小说里的角色与世界观时间线
  • 任何「人物 + 年代 + 分类」的数据集

仓库里提供了 JSON Schema、最小示例和一份写给 AI 的数据生成指南。你可以把规范交给 Claude、ChatGPT、Gemini 或其他 AI,告诉它想整理什么人物,再把生成的 JSON 上传到群星志。

AI 在这里不是替人物写一段华丽评语,而是把散落的资料整理成结构化数据。整理完成之后,真正负责讲故事的,是时间、位置和人与人之间的距离。

导入过程完全在浏览器前端完成,不需要注册,也不会把文件上传到服务器。刷新页面,就会回到内置的 101 人数据集。


技术上,还是能简则简

群星志使用的技术很朴素:

部分实现
页面HTML + CSS + Vanilla JavaScript
可视化SVG
内置数据JSON
数据规范JSON Schema Draft 2020-12
构建一个 Node.js 脚本
运行时依赖0

项目没有前端框架,也没有运行时依赖。构建脚本只负责把人物 JSON 内联到 HTML,最后得到一个可以直接双击打开的单文件页面。

我很喜欢这种「构建时可以有工具,运行时尽量什么都没有」的方式。对于一个数据量不大、交互边界明确的可视化原型,框架不一定会让事情更简单。一个 HTML 文件意味着它容易部署、容易保存,也容易被别人改造成自己的版本。

当然,纯前端也意味着当前版本没有账号、云端人物库和数据持久化。群星志现在仍然是一个原型,但它已经完整地验证了核心体验:人物数据确实可以被放进一张有探索感的时间星图。


现在就去看看

在线体验:constella.maigic.top

开源仓库:github.com/Maigic-AI/constella

项目采用 MIT License。你可以直接下载、修改,也可以准备一份自己的 JSON 数据,让另一群重要的人出现在这片星空里。

每一个名字,都是时间中的一颗星。

本文经chatgpt润色。