陆鸣盯着屏幕上的分子模拟进度条,已经三个小时了。99%。还差最后一步,他就能证明自己的算法是对的——但陈维远不会给他这个机会。
深夜十一点的瑞宁生物研发中心,只有他这一层的灯还亮着。窗外是这座城市连绵的雨夜,雨水顺着玻璃滑下来,把远处的霓虹灯切割成模糊的光斑。最后那1%像一道看不见的门,他的算法在门前徘徊了无数次,始终推不开。
他揉了揉太阳穴,端起早已凉透的咖啡喝了一口。办公室里很安静,只有服务器散热风扇的低鸣声。
脚步声从走廊尽头传来,由远及近。不是一个人,是三四个人,皮鞋踩在地砖上发出清脆的回响。
陆鸣没有回头。他以为是值夜的保安。
门被推开了。
“陆鸣。”
那个声音他很熟悉,熟悉到不需要回头就知道是谁。陈维远,瑞宁生物首席技术官,他的导师,也是把他招进这家公司的人。
陆鸣转过头。
陈维远站在门口,身后跟着三个穿黑色西装的保安。他的表情很平静,像是在处理一件例行公事。他手里拿着一份文件,薄薄的几张纸,边缘被捏得有些发皱。
“把工牌交出来。”陈维远说。
陆鸣没有动。他看了一眼屏幕——99.3%。
“陈总,这个模拟——”
“我说了,把工牌交出来。”陈维远提高了声音,打断了陆鸣的话。他把手里的文件扔在陆鸣面前的桌子上,“这是解雇通知。签字。”
陆鸣低头看着那份文件。纸张因为用力过猛而在桌面上滑了一段距离,停在他的键盘旁边。他看到了几个关键词:“违反公司保密制度”“擅自复制核心数据”“即日起解除劳动关系”。
他花了三秒钟读完那几行字,然后抬起头,看着陈维远。
“我没有复制过任何数据。”
陈维远没有接话。他身后的保安往前迈了一步。
陆鸣明白了。这不是误会,不是调查后的结论,这是一场事先安排好的驱逐。陈维远不需要他承认什么,只需要他签字。七个月的日夜颠倒,七个月的呕心沥血,换来的是三页打印纸和一扇敞开的门。
他看了一眼屏幕——99.7%。
“我需要保存一下我的工作成果。”陆鸣说。他的声音很平静,平静得连他自己都有些意外。
陈维远皱了皱眉,但还是点了点头:“一分钟。”
陆鸣转过身,面对屏幕。他的右手握住鼠标,左手在键盘上快速敲击了几下。他没有保存模拟结果——那个结果已经注定不属于他了。他在做另一件事:打开一个隐藏的文件夹,选中一个名为“ORIGIN-0”的文件,点击发送。
目标地址:他的私人邮箱。
文件不大,只有几百兆。在公司的内部网络里,这样的传输只需要几秒钟。他保存的不是模拟结果——那个已经不属于他了。他保存的是他自己写的东西,三年前在学校宿舍里一行一行敲出来的。那是他唯一真正拥有的东西,谁也夺不走。
进度条走完的那一刻,屏幕右下角弹出一行小字:“发送成功。”
与此同时,分子模拟的进度条也走到了终点。
100%。
屏幕上弹出了一个三维结构图,一个完美的蛋白质折叠模型。那是陆鸣花了七个月时间,用自己设计的算法跑出来的结果。如果一切顺利,这个模型将为瑞宁生物开辟一条全新的药物研发管线,价值数以亿计。
陆鸣看着那个结构图,看了两秒钟。然后他关掉了显示器。
他摘下工牌,放在桌子上。手指在“研发部”三个字上停了一秒——这是他戴了七个月的东西,现在要还回去了。然后他拿起笔,在那份解雇通知上签了字。字迹很稳,一笔一划,像是在签一份无关紧要的收据。
陈维远拿起签好字的文件,检查了一下,点了点头。他没有再看陆鸣一眼,转身走出了办公室。保安跟在后面,皮鞋声渐渐远去。
陆鸣站在原地,听着那些声音消失在走廊尽头。办公室里重新安静下来,只剩下服务器散热风扇的低鸣声。他收拾好自己的东西。一个背包,一台笔记本电脑,一个充电器,一本翻烂了的《蛋白质结构预测导论》。他在这个工位上坐了七个月,七百多个小时,无数个通宵。最后能带走的,只有这些。
他走出办公室的时候,外面的雨还在下。
瑞宁生物的大楼在雨中显得格外高大,玻璃幕墙反射着路灯昏黄的光。陆鸣站在门口的台阶上,雨水顺着屋檐滴下来,在他脚边溅起细小的水花。
他回头看了一眼那栋楼。他在里面工作了七个月,无数个通宵。现在他站在门外,就像他从来不曾属于那里一样。
他走下台阶。
身后的保安追了上来:“等一下!陈总说你的东西需要检查!”
保安不由分说地抢过他手里的背包,拉开拉链,把里面的东西一股脑倒了出来。笔记本电脑、充电器、那本书,全部摔在地上,溅起泥水。
保安蹲下来翻了翻那堆东西,没有找到任何可疑的物品。他站起来,把空背包扔还给陆鸣,啐了一口:“天才?呸。”
陆鸣没有说话。他蹲下身,把笔记本电脑捡起来,用袖子擦了擦上面的泥水。然后是充电器,然后是那本书。他把所有东西装回背包里,拉上拉链,站起来,没有回头。
他走进了雨里。
城中村的出租屋很小,大概十来平米,一张床、一张桌子、一个衣柜,就把所有的空间占满了。墙上贴着几张发黄的便签纸,上面写着一些零碎的公式和备忘。窗户对着隔壁楼的墙壁,即使是在白天,也照不进多少阳光。
陆鸣坐在床边,浑身湿透。他没有开灯,黑暗中只有笔记本电脑屏幕的光照亮他的脸。
他把那个名为“ORIGIN-0”的文件从邮箱里下载下来。这是一个他大学时期写的分子动力学模拟框架,那时候他还在读研究生,闲着没事写了一个开源项目,放在GitHub上,几乎没有人关注。毕业后他去了瑞宁生物,这个框架就被搁置了,一直躺在他的旧硬盘里。
他从来没有在公司用过这个框架。他用的都是公司购买的正版软件。但陈维远不在乎这些——他需要一个理由解雇陆鸣,然后名正言顺地占有那七个月的成果。
陆鸣双击运行那个文件。
电脑蓝屏了。
他等了几秒钟,重启。再次运行,再次蓝屏。
第三次重启后,他打开任务管理器,发现CPU占用率在程序启动的瞬间飙升到100%,然后迅速回落。紧接着,屏幕上弹出了一个他从未见过的窗口——一个极简的命令行界面,黑底白字,光标在左上角闪烁。
光标跳动了一下,然后一行代码自动浮现出来:
“ORIGIN-0 loaded.“
又是一行:
“Detecting environment...“
光标停顿了几秒。然后——屏幕突然黑了。陆鸣以为电脑又蓝屏了,正要重启,屏幕中央却亮起了一个光点。光点迅速扩散,化作一张复杂的网络图——那是他三年前写的每一行代码,被重新组织、重新连接,形成了一个他从未见过的结构。网络图只显示了不到一秒就消失了,屏幕恢复正常,只剩下那行字:
“System initialized. Awaiting instruction.“
陆鸣盯着那行字,沉默了很久。
他不知道这个框架发生了什么变化。他记得自己写过的每一个函数、每一行逻辑,但那都是三年前的事了。眼前这个东西,看起来像是他写的,但又不太一样——它更快,更简洁,像是被什么人优化过无数次之后的最终版本。
他可以用这个框架接众包单,赚点生活费。也可以用它来分析瑞宁的专利,找陈维远的漏洞。他甚至可以用它来做点别的——他不知道这个框架现在的能力边界在哪里,但他知道,它比他想象的更强大。
他可以选择沉默,拿着这个框架 quietly赚钱,重新开始生活。也可以选择反击,让陈维远知道他不是一个可以随便踩的人。前者安全,后者危险。前者能让他活下去,后者可能会让他死得很难看。
他想了很久。
然后他深吸一口气,在键盘上敲下了一行指令:
“analyze: patent CN2023XXXXXX.5“
那是陈维远不久前申请的一项核心专利,也是瑞宁生物目前最有价值的资产之一。陆鸣参与了这项专利的前期研究工作,但最终的专利申请文件上,他的名字被删掉了。
他选择了第二条路。
屏幕上开始滚动大量的数据——专利全文、引用文献、相关案例分析。速度很快,但陆鸣能感觉到,这个框架在分析的过程中,似乎在做一些他并没有明确指示的事情。它在自己寻找关联,自己建立模型,自己得出结论。
几分钟后,结果出来了。
屏幕上显示出一行红色的文字:
“Claim scope ambiguity detected. Probability of validity challenge: moderate-high.“
陆鸣盯着那行字,瞳孔微微收缩。
这个框架——或者说,这个曾经被他称为“ORIGIN-0”的东西——刚刚告诉他,陈维远的核心专利,存在保护范围描述上的模糊之处,有被挑战成功的可能。
他沉默了很久,然后慢慢地,嘴角浮起一丝笑意。
窗外的雨还在下。但在这个潮湿、昏暗、狭小的出租屋里,有什么东西,正在悄然苏醒。

