下一章 上一章 目录 设置
22、第22章 贲•文饰 被看见的数学 可视化软件 ...
-
软件上线的日子定在八月的第三个星期二。没有发布会,没有媒体通告,墨子只是在项目的GitHub页面上把仓库从"private"切换成了"public",然后把链接发到了几个数学和编程相关的论坛上。悦儿坐在他旁边,看着他在终端里敲了一行命令,屏幕上滚动了几行绿色的确认信息,然后网页刷新,原本显示"Private"的标签变成了"Public"。
"好了。"墨子说。
"好了。"悦儿重复了一遍。
他们等了大概二十分钟。最初的访问量很小——十几个程序员点进了链接,运行了程序,在论坛上留了几条短评。有人说"界面很干净",有人说"管道旋转的惯性阻尼做得好",有人说"我打开了最小尺度,电脑风扇开始转了"。悦儿看着那些评论,没有回复。她打开程序自己又运行了一遍,从最大尺度滑到最小尺度,再从最小尺度的深处一层一层向外退出来。那个过程她做了很多次了,但每一次都还是能看到一些新的细节——某个尺度上管道的交错方式跟前一天看的时候略有不同,某个视角下重叠指数在颜色映射中的呈现比上一版更平滑。墨子在她旁边的椅子上坐着,也在看自己的屏幕。两个屏幕的光在暗下来的房间里交叠成一个浅蓝色的区域。
第三天,访问量开始上升。一些数学教育类的账号转发了链接,配的标题是"三维挂谷猜想可视化——菲尔兹奖得主的数学在你的浏览器里运行"。第四天,访问量跳到了三万。第五天,十万。论坛上的评论从技术讨论延伸到了普通用户——有人说"我拉滑块的时候,那些管子变密变稀的样子像呼吸",有人说"最小尺度那个密集的区域让我想起了分形",有人问"为什么所有方向都被覆盖了但体积看起来还是很小的感觉我讲不清楚,但我能感觉到"。悦儿看到那条"能感觉到"的评论时,停了一下。
"能感觉到。"她念出了那三个字。
墨子从旁边的椅子上倾过身来看她的屏幕。"哪条?"
"这条。他说他能感觉到体积小但方向全的矛盾感。"
墨子看完了那条评论,靠回椅背。"这说明可视化起作用了。他看不懂公式,但他看到了那个矛盾被图像呈现出来了。"
悦儿关闭了评论页面,重新打开了程序。她把视角固定在一个特定的角度,让管道网络保持静止。在那个角度下,整个结构呈现出一种对称性——从中心向外辐射的管道束在每一层尺度上都以相似的角度分布在三维空间中,像一朵被冻住的蒲公英。体积是趋近于零的,但它占据了所有方向。她伸出手指在屏幕上沿着一条管道的路径走了一遍,那根管道从中心出发,穿过十几个尺度层级,最终抵达边缘,跨度从微观到宏观。它在每一个尺度上都存在,长度一样,方向一样。
"我想起一件事。"悦儿说。
墨子等着她说。
"在三维证明里,有一组管道被称为'逃逸路径'。它们在坏管分类中最难处理。但在视觉里,那组管道看起来比别的管道更亮——因为重叠指数低,颜色映射把它们标成了浅色。你看。"她把鼠标悬停在其中一根浅色的管道上,信息面板弹出了它的方向和尺度编号。"这根管道在数学上是最麻烦的。但在视觉上,它是最好认的。"
墨子凑近屏幕看了看那根管道。"它看起来像一根单独走的路。其他管道都挤在一起,只有它自己绕了个圈子。"
"对。它在逃逸。但它逃不出去。因为所有的逃逸路径最终都会在无穷小的尺度上重新聚拢。我只是在视觉里,这根管道看起来是亮的,但它绕的圈子是有边界的。"
"你能在视觉里也加上那个边界吗?"
悦儿想了想。"我要把那组逃逸路径的外包络画出来。一条半透明的边界线,套在所有浅色管道的外面,显示它们逃逸的空间范围有限。"
墨子打开代码,在管道渲染的顶层加了一个新的图层——一组极细的、半透明的金线,勾勒出了所有逃逸路径的最大可延伸边界。那些金线在三维空间中形成了一个不规则的球壳,把浅色的管道包在里面。重新渲染之后,悦儿看着那个被金线包裹的管道网络,看到了一条很清晰的故事线:中心深红,向外渐蓝,最外沿被一层金线锁定。整体结构稳定、完整、有限。
"这就是挂谷猜想想说的东西。"她说,"方向可以无限多,集合可以无限小,但那个集合的维数永远是三。金线画出了它的边界。它看起来可以无限延伸,但它出不去。"
墨子保存了这一版。然后他在发布页面上加了一个新截图,截图里管道网络被金线包裹着,标题是"逃逸路径的外包络——视觉中的极限"。那张截图在接下来的几天内被转发了上千次。有人评论"原来数学里的'无限'长这样",有人评论"我拉滑块的时候感觉自己在穿透一层一层的边界",有人评论"金线包住的那部分让我想起细胞膜"。
悦儿没有逐一去看那些评论。但她注意到了一种变化——在论坛上,在社交媒体上,在数学教育相关的讨论里,人们开始用"那团管道"来指代挂谷猜想。他们没有说"挂谷猜想的证明",他们说"那团管道"。那团东西的图像比那篇论文的标题更容易被记住。它出现在各种语境里——有人用它做桌面壁纸,有人把它截成动图发在短视频平台上,有人用那团管道来比喻"在有限中容纳无限"的哲学命题。
八月末的一天晚上,悦儿在书桌前翻看一篇新收到的邮件。邮件来自一个她完全不认识的人,自称是高中教师,说他在课堂上用了挂谷猜想的可视化程序,让学生们用滑动条从最大尺度推到最小尺度,然后让他们用一句话描述他们看到了什么。"有一个学生写'方向是管道的灵魂,但空间是管道的身体',"那位老师在邮件里写道,"我想让您知道,那些学生以前觉得数学是死的。现在他们觉得数学是活的。"
悦儿把那段话读了两遍。她把手机拿起来拍了张邮件的截图,发给墨子。配文:"一个高中老师。他的学生说方向是灵魂,空间是身体。"
墨子过了几分钟回了一句:"那个学生以后可能会学数学。"
悦儿看着那行回复,把手机放到桌上。窗外八月的夜色里,那棵树的叶子已经长满了,浓密的树冠在路灯下投出一大片深色的阴影,阴影的边缘微微颤动着,像在呼吸。她看了那棵树一会儿,然后回到书桌前翻开第六十三页。
第六十三页上她写了一半的四维推导——关于方向空间体积下界的构造。她握着笔,在那半页推导的下面画了一条横线,然后写了几个字的批注:"如果四维也做出来了,我也要给它做一组可视化。从三维到四维,管道要变成超管道。视觉上也许做不到,但可以做一个四维到三维的投影版本。"
她给墨子发了一条消息:"四维的可视化有思路吗?"
墨子回得很快:"三维的管道是线,四维的管道是面。需要一种方法把面投影到三维空间中还能保持可读性。可以试一下用透明度来表现第四维的厚度。"
悦儿看着"透明度来表现第四维厚度"这行字,在第六十三页的批注下面又加了一行:"四维可视化方案初案:用透明度映射第四维。可试。"然后她合上草稿本,站起来走到窗前。窗台上绿萝的藤蔓已经长到了窗框的边缘,末端卷曲着朝窗玻璃方向伸展,像在试探一个它看不到但能感觉到的出口。
她忽然想起一件事。软件上线到现在,她还没有正式对墨子说过一次"谢谢"。不是因为不感谢,是因为在持续的协作中,感谢被稀释成了每次改动、每次修正、每次微调中那些无声的确认信号。但此刻她站在窗前,看到手机屏幕上那条"透明度来表现第四维厚度"的消息时,她意识到那种"稀释"本身就是一种更深的形式。它不需要被单独拎出来说了。
她打了几个字,然后删掉。又打了几个字,又删掉。最后她只发了三个字:"看到了。"
墨子回了一个句号。他们的对话又回到了那种简省模式,一个句号意味着"我收到了你的确认"。但她站在窗前,看着窗外夜色中那棵树的剪影,觉得那个句号里装的内容比以前多了。它不光是一个确认信号,也是一个"继续"的信号。路还在延伸,程序还在迭代,方向还在扩展。那些被几百万人看到过的彩色管道,只是这条路上一个已经完成的标记点。后面的路还在黑着灯,但有一小段正在被她的笔尖和代码一点一点地照亮。
贲。亨,柔来而文刚。刚硬的数学结构被一层柔软的视觉效果包裹起来,让原本只有少数人能理解的东西被更多人看见了。但那个"看见"本身并没有削弱它的硬度——那团管道的边界线是精确的,每个尺度上的密度分布是有严格证明的,那些金线勾勒出的逃逸路径范围是由不等式控制的。文饰没有改变底层的刚体结构,它只是让那个结构能够被更广泛的目光所触及。
悦儿拉上了窗帘。窗台上绿萝的藤蔓在最后的夜风中轻轻摆动了一下,然后安静了下来。她走回书桌前坐下,翻开第六十四页,开始写下一段推导。那些管道在屏幕上是彩色的,在代码里是数据结构,在数学里是符号和不等式。同一个东西在三个不同的系统里呈现着三种不同的面貌。那些面貌各不相同,但它们在最底层共享着同一种结构——所有方向都能被覆盖,所有方向都在一个有限的空间里各安其位。
她写完第六十四页的第一行,停了下来。她低头看着自己写下的那行符号,然后又抬头看了一眼窗外路灯下的树冠剪影。树叶在风里翻动着,成千上万的叶片各有各的方向,但所有的方向都指向同一个秋天的到来。
她在那行符号的末尾点了一个句号。然后她合上草稿本,关了灯。房间暗下来之后,窗外的路灯从窗帘缝隙渗进来一道窄窄的光线,落在桌面上那盆绿萝的叶片上,把其中一片叶子的轮廓照得发亮。那片叶子朝上伸展着,边缘被光勾出了一条清晰的线。像一根被点亮的管道,正在一个极小的尺度上安静地指向某个方向。