那道陌生波形没有再跳第二次。
第十三天,南天门一号深空观测站外环缓缓转向,整座观测盘对准太阳系外缘。苏晨站在主屏前,手背压着控制台,屏幕上的星图正一格一格往内收缩。
观测站里很空,只有设备低鸣。艾达跟在他身后,左臂卡死的外骨骼拖过地面,蹭出一串干涩的响。
主屏先亮起常规光学画面。
画面里本该整齐排开的星点,全歪了。
远处那片星域被拉成长条,几百颗恒星拧成一片发亮的细线,线头还在往同一个方向弯。观测站自动校正了三次,星图没回正,反倒更乱,连背景坐标网格都跟着卷起来,像有人拿手把整片天幕攥了一把。
艾达停在两步外,喉咙动了动。
她的视线从主屏移到苏晨脸上,又落回那片被拧歪的星域。光学画面里,星点还在缓慢偏移,像一群被无形水流卷住的虫,明明没有任何震动传来,视野边缘却泛起眩晕感。她抬手扶住旁边的固定架,指节在金属外壳上压出发白的痕迹。
“镜头坏了?”
艾达的声音比平时高了半拍,尾音撞在空旷的观测舱里,沿着舱壁回荡了一圈。她自己也听出了那点发紧,立刻抿住嘴唇,目光死死钉在主屏上。
苏晨没有回头。
“南天门一号的深空观测阵列刚换过校准芯,坏得没这么整齐。”
他的手指落在控制台上,连续敲过三处感应区。主屏右侧跳出设备状态,光学阵列、姿态修正、镜面温控、信号同步,所有项目都亮着正常标识,连备用镜头也在同步传输。数据一行行滚过去,规整得近乎刺眼。
艾达往前挪了半步,鞋底踩过地面接缝,外骨骼的锁死关节跟着发出短促的咔声。
“正常?”
“至少设备认为正常。”
苏晨抬起手,切了雷达层。
光学画面被一层暗蓝色网格覆盖,原本密集的星点瞬间淡去,空间坐标、距离标尺和运动矢量同时浮现。可那片星域所在的位置,只剩一块干净得过分的空白,连最微弱的回波噪声都没有留下。
雷达层空白。
艾达的手指慢慢收紧,固定架被她捏得轻响。她盯着那块空白看了两秒,似乎还在等某个迟到的标记从角落跳出来,等设备自检给出一个能让人松口气的故障编号。
什么都没有。
“再测一次。”
“已经测过。”
“我让你再测一次。”
苏晨偏头看了她一眼。艾达的下颌绷得很紧,额角浮出一层薄汗,左臂外骨骼卡在身侧,冷却风扇转得断断续续。她没有避开苏晨的目光,手掌却在裤缝边缓慢擦了一下,把汗意蹭掉。
苏晨没争,重新调高雷达功率。
设备低鸣骤然加重,舱壁里的散热管开始震动。蓝色网格一层层向外铺开,扫过柯伊伯带,扫过更远的尘埃云,最后从那片扭曲星域穿了过去。
依旧没有回波。
艾达的呼吸停了半拍。
“中微子呢?”
苏晨没有回答,手指已经划向下一层。
中微子回波层展开,整块主屏被灰白色噪点填满。往常那些来自恒星内部、行星核心和远方爆发源的细小波动,此刻全挤在太阳系一侧,唯独那片星域被挖出一道规则的空洞。
还是空白。
艾达走到副控台旁,俯身贴近屏幕。她的头发垂到脸侧,几根发丝被设备送出的气流吹开,露出那双泛着血色的眼睛。她抬手指向空洞边缘,指尖悬在那里,没有真正碰到屏幕。
“这里连噪声都没有。”
“看到了。”
“不是测不到,是被什么东西把所有信号都吃了?”
“先别急着下结论。”
苏晨切换了第三层检测界面。
热源图铺开,红、橙、黄三色标记在星图上交错闪烁,恒星和行星的温度轮廓清楚得能分辨出边缘。那片扭曲区域却没有颜色,像一块从现实里剜走的空洞,连背景辐射都绕着它滑开。
热源图,空白。
苏晨停在最后一项参数前,指腹压住确认键。
质量读数开始扫描。
仪器沉默了几秒,屏幕中央弹出一行冰冷的结果。
零。
艾达盯着那个数字,胸口像被什么东西顶住。她想笑一下,告诉自己是阵列同步出了问题,可喉咙里只挤出一声干涩的气音。一个能让星光改变方向的目标,既没有质量、温度,也没有粒子回波,甚至没在雷达上留下边界。
这已经不是设备故障能解释的东西了。
“再切一遍光学层。”
苏晨抬起眼。
“为什么?”
“我想确认它还在那里。”
“它没动。”
“你怎么确认的?”
艾达盯着苏晨的手,声音压得很低,“你没有读到它的轨迹,也没有读到它的速度。你凭什么说它没动?”
苏晨没有立刻回答。
主控台上的风扇转速正在上升,冷风从他袖口灌进去,带着金属和臭氧混杂的气味。那股气味让艾达想起旧联席档案里那些封存的事故记录,想起一座座突然失去信号的观测站,还有报告末尾被人涂黑的结论。
苏晨抬手,把光学层重新调回主屏。
“因为被它扯歪的星光还在继续变化。”
艾达顺着他的视线看去。
那片星域的弯曲幅度,比刚才更深了。星光没有散开,反而被某种看不见的力量压向同一个方向,像一张绷紧的网正在从中央塌陷。
苏晨的手指停在控制台边缘。
“镜头没坏。”
艾达嘴唇发白。
“那是什么?”
“先把所有传感器的原始记录调出来。”
“苏晨,我问那是什么。”
“我听见了。”
“听见了你还绕?”
艾达猛地拍在副控台上,震得旁边的水杯轻轻一跳。她左臂的外骨骼因为动作过猛卡住,齿轮在护甲里发出刺耳的摩擦声。疼痛顺着肩胛骨窜上来,她的脸色瞬间变了,却没有收回手。
“雷达看不见,中微子探不到,热源和质量全是零,可它能让几百颗恒星一起变形。你让我先调记录?调什么,调它怎么把天撕开的吗?”
苏晨看着她发白的手背,视线只停了一瞬,随后落回屏幕。
“调原始记录,才能知道它从哪一帧开始出现。”
“然后呢?”
“然后再决定要不要跑。”
艾达怔了怔。
苏晨已经俯身打开底层权限,主屏右下角跳出一串红色警告。权限不足、数据损坏、观测对象未注册,几行字叠在一起,像设备也开始对这片空白产生排斥。
艾达盯着那几行警告,呼吸渐渐放轻。
“你真觉得还能跑?”
“现在问这个,太早。”
“等它进太阳系再问,就不早了?”
苏晨抬起眼,脸上没有多余表情,指节却在台面上敲了一下。
“所以闭嘴,帮我把原始帧找出来。”
艾达咬住后槽牙,胸口起伏了两次。她想反驳,想把那句“你凭什么命令我”甩回去,可主屏上不断弯折的星光压住了所有火气。最后,她拖着左臂走到副控台前,打开分层存储区。
外骨骼的锁死关节刮过地面,留下连续的干涩声响。
“如果这次还是空白呢?”
苏晨盯着屏幕上逐渐收拢的星图。
“那就证明它不是从画面里出现的。”
艾达的手停在半空。
“什么意思?”
“它可能一直都在,只是我们刚刚才看见。”
热源图,空白。
质量读数,零。
只有那片被扯歪的星光还挂在屏幕上,像一锅煮过头的面条,全往一个方向塌。
艾达盯了几秒,呼吸开始乱,抬手去端旁边固定架上的水杯。杯口刚离开托座,水面就晃得厉害,洒出来半圈,淋在她的手背和袖口上。
她没顾得上擦。
“没有质量读数,没有热源,没有回波......那是什么东西把星光扯成这样?”
苏晨没回,手指在台面上连敲几下,把时间轴往前拉。
画面开始倒放。
那片扭曲区在外缘慢慢推进,起初只是柯伊伯带边上一个不起眼的小斑。三小时后,斑块扩大。五小时后,附近的小行星轨道开始乱。第七小时,一颗冰态小天体横在它前面,连碎屑都没飞出来,整颗就从画面里抹掉了。
不是炸开,也不是撞碎。
就是没了。
艾达把杯子放回去时,托座磕得当一声响。她低头看了眼自己的手,手背上的水正顺着指缝往下流,连带着整只手都停不下来。
“你把我叫上来,就是让我看这个?”
“对。”
“我能帮什么?我不是工程师,也不是你那台会骂人的AI。”
“你读过旧联席残档。”
苏晨把一份截出的波形图甩给她。
“这道折叠痕,跟你手里的零号遗档有没有重样的词条。”
艾达抬起头,眼底那股血色更重了。
“你拿我当旧资料库?”
“你能用就行,别跟我讲情怀。”
苏晨说完这句,眼睛还盯着屏幕,连头都没回。
艾达站在原地,胸口起伏得厉害。她想发火,话到了嘴边又咽回去。南天门一号的地板在脚底轻轻震,深空观测站外环还在继续转向,主屏上那片扭曲区越来越清楚。她盯着苏晨的后背,心里盘了一圈,最后还是走到副控台前,把旧联席残档权限插了进去。
现在不是争脸的时候。
那玩意儿真落下来,地表那点破烂城邦连笑话都算不上。
副控台吐出一串旧档索引,速度不快。艾达一条条翻,越翻脸色越差。她左臂外骨骼的冷却液本来就在漏,这会儿温度上去,袖管边缘都结了一层白霜。
苏晨扫了她一眼。
“找到没?”
“有个模糊条目,没正文,只剩术语。”
“说。”
艾达盯着那行缺损的残档,嗓子发紧。
“引力透镜盲窗。”
“就这一句?”
“还有半句,观测对象不可接近,不可锚定,不可建立常规航道。”
她说完,停了停,又补了一句。
“旧联席把这种条目放在最高封禁层。能进去看的人,比避难所钥匙还少。”
苏晨把主屏再放大一层,深空图像被拆成十二块,分时投影。
“说明老东西见过。”
“见过不代表活下来过。”
艾达把手从副控台上拿开,手掌心湿了一片。她不想承认,可眼前这画面让她脑子里那套旧时代训练全成了废纸。战舰有轮廓,虫群有体征,炮火有轨迹,再离谱的武器也得占个地方。前面这片东西不一样,它什么都不占,又什么都能碰。
她看着苏晨,声音压得很低。
“你要拿什么打它?”
“先别急着给它写墓志铭,我连它坐标都还没拿全。”
“你还想锁它坐标?”
“废话,不锁坐标,等它骑到脸上给我发请帖?”
苏晨侧身,在主控台上一划,三组旧式月轨校正参数和南天门的外扶阵列同时弹出。
“常规设备读不出它,那就别正面看。用外缘小行星作参照,拿偏折角反推。”
艾达盯着那堆滚动数据,半天没说话。
这就是她跟苏晨最拧巴的地方。她眼前发麻的时候,这人脑子里先算的不是怕不怕,是能不能榨出点有用数据。你说他冷血,偏偏这种人真能在死局里挖出一条缝。你说他疯,他每次疯起来都奔着活路去。
苏晨把三号观测臂调到手动,开口道:
“你站那别动,把残档里关于盲窗的全部用词调出来。我需要对照表。”
艾达没接命令口气,只问了一句。
“你凭什么认定还能算?”
苏晨看着主屏,那片扭曲区正吞掉第二颗小天体,速度快得离谱,轨迹却直得过头。
“它不是真空里乱跑的幽灵,走过的地方总得留痕。只要有痕,就能量。量不准,量个大概也够我狠狠干它一炮。”
艾达喉咙一堵。
这种时候他脑子里还能转到“狠狠干它一炮”,她竟然半点不意外。
副控台开始同步检索,旧联席残档里断断续续蹦出几个关联词。
“盲窗。”
“折叠前沿。”
“禁入锚点。”
“观测回视。”
最后一个词跳出来的时候,艾达手一停。
“回视?”
苏晨也停了下。
“什么意思。”
“残档注释被删了,只剩一个警告标记......”
艾达盯着屏幕,念得很慢。
“被观测者,也在观测。”
观测站里安静了一秒。
头顶散热栅喷出一股热风,吹得艾达额前碎发往后掀。她盯着那几个字,胸口那团东西越压越紧。旧联席把这种词藏到最高封禁层,不会是为了吓唬人。凡是写进战时禁录的东西,都有人拿命试过。
苏晨没有立刻接话,只把主屏的星图又往前拉近了一段。
这次他没看整体,专盯扭曲区边缘。
三枚观测标点沿着偏折最狠的三条光线来回跳,他手上不停改参数,外扶阵列一格格推高增益。南天门的观测臂开始发热,内圈提示条从蓝色翻到橙色,随后逼近红线。
艾达忍不住开口。
“再推会烧阵列。”
“烧一条总比瞎一片强。”
“你上次就是这么说,然后烧了半个机房。”
“那不是还活着。”
“你这安慰水平,跟拿扳手哄小孩一个档次。”
苏晨偏头看她一眼。
“能吐槽,说明还没吓傻。”
艾达没接,手却更快了。她把残档里所有关联警示全拖到主屏边上,给苏晨做参照。她不懂他那套算法,可她能看懂趋势。三组偏折角一直在变,说明那东西根本没按惯性飞,它每一次拐向都没有提前缓冲,像有人在纸上落笔,笔尖想去哪就去哪。
她盯了十几秒,声音都发干了。
“它在修航道。”
“嗯。”
“朝哪修?”
“朝太阳。”
苏晨敲下最后一个参数,主屏上的辅助线全亮了起来。那片被扯歪的星域外,终于被勾出一个模糊轮廓。
不是舰体。
也不是虫巢。
那是一整片往里凹进去的空间坑面,坑面边缘挂满了错乱的几何线条。线条互相套接,又不断断开,像谁用尺子在黑幕上反复描同一个图,描到后来,线自己活了。
艾达看得连呼吸都断了一拍。
“这......”
她后面的话卡住了。
主屏中央,那片坑面的深处,慢慢睁开了一只眼。
没有血肉,没有眼白,只有无数细密几何线条盘成的瞳孔,外圈一层层开合,像在校准焦距。它出现得很慢,可主屏边缘的警报条却一起往上冲,连观测站的外壳都跟着发出低沉共振。
艾达往后退了半步,小腿撞上固定椅,椅脚拖出一截刺耳的刮擦。
“它在看这里......它一直在看这里......”
苏晨站在屏幕前,手还按在控制台边缘,半步没退。
他盯着那只几何眼,喉结动了动,开口时嗓音压得很沉。
“飞船这两个字太客气了。”
艾达转头看他。
苏晨盯着屏幕里的东西,字一个一个往外落。
“它把三维空间当纸踩,踩完就朝里走。来得真快。”
主屏右上角跳出新的数据。
偏折角锁定。
外援参照完成。
降临航道推算中。
艾达硬逼着自己把目光从那只眼上扯开,去看旁边滚动的坐标。她扫了两眼,整个人更冷了。
“这条线......”
“说。”
“它没对准地球。”
苏晨手指一顿。
艾达把坐标组放大,旧联系标尺和当前太阳系施工图重叠。那条笔直得过分的航道,从外缘切入,一路穿过火星外侧空域,最后钉在了太阳近轨。
准确得让人头皮发麻。
目标不是地表,不是七十三号,也不是某座轨道站。
就是戴森球收尾区。
艾达看着那条红线,声音发涩。
“它冲着你那个拆星玩意儿来的。”
苏晨没接这句话,抬手把整条航道拷入战时主链,设成最高优先级。他脑子里算盘已经转起来了。对方不理地球,直接奔太阳,说明它要的不是屠城那点小活。戴森球快闭合,太阳阀门快到手,偏偏这东西掐着点扑上来,连路都修得这么直,摆明了不是路过看热闹。
有人在等它。
或者,有东西早就在给它铺路。
艾达盯着他侧脸,忽然问道:
“苏晨,你之前说那段灰色代码在抢主控。现在呢?”
苏晨手上的动作停了。
这个问题问得准。
太准了。
他刚才为了锁坐标,顺手调了戴森球内部状态页。前几天还在跟智子狠狠干架的那批自适应代码,半小时前开始集体回缩,攻击频率一路下调。主链日志上没有胜负记录,没有清理报告,只有一串诡异得离谱的重组申请。
艾达见他没立刻回,胸口更堵。
“它停手了?”
“嗯。”
“为什么。”
苏晨缓缓把状态页拉到主屏角落。
密密麻麻的灰色节点正在戴森球内部重新排布,原本争权夺路的代码全收拢了,不再拆、不再咬,反倒主动给施工环带让位。它们一层套一层,围着主控区往外铺,排出来的结构和主屏里那只几何眼有七分相近。
艾达看了两秒,手脚发凉。
“这不是防御。”
“我也没说是。”
“那它在干什么?”
苏晨抬头,重新看向主屏上的那只眼,又看了眼戴森球内部那片正在成型的灰色结构。
观测站的报警灯一遍遍扫过两人的脸,红光压下来,又抬上去。
他吐出一口热气,声音压得很低。
“它在摆桌子。”
艾达半张着嘴,没能接上话。
主屏上的几何眼忽然转了半圈,瞳孔正中央那道细线,稳稳对上了太阳近轨。
同一时间,戴森球内部所有灰色节点一齐亮起,整套自适应代码脱离争夺态,开始往主控区外侧疯狂重组,像一层层正在展开的迎宾阶梯。