Читать книгу: «Холодный разум»
Глава
Глава 1
Новогодняя ночь 2147 года в мегаполисе Нео Сити не просто наступила — она обрушилась на город, как дата-вирус, перегружающий серверные фермы. Воздух, который ещё утром имел привкус озона и переработанной канализации, к полуночи превратился в коктейль из дешёвых синте-феромонов и искусственного счастья. Небоскребы, эти бетонные иглы, пронзающие смоговое небо, переливались цветами, которых не существовало в природе старушки Земли. Рекламные голограммы висели над улицами, как призрачные горные цепи: гигантская женщина лила из кувшина «Кока-Колу» прямо в толпу, проходя сквозь их тела; логотип «Tenko Electronics» пульсировал в такт сердцебиению случайных прохожих (импланты считывали биометрию — мелкий шрифт в пользовательском соглашении, который никто не читал); а где-то на высоте трёхсот метров лазерные проекторы выводили обратный отсчёт, и каждая секунда падала вниз искрящимся конфетти.
В элитном клубе «Генезис», занимавшем сто пятидесятый этаж небоскрёба «Омега», было тесно, как в переполненном контейнере для хранения серверов, только вместо гула вентиляторов здесь стоял гул голосов. Дроны-официанты — блестящие сферы размером с кулак — жужжали между гостями, удерживая на магнитных подушках подносы с шипучей жидкостью. Их машинные голоса вежливо пищали: «С новым годом! Ваш баланс уменьшен на 15 кредитов». Лазерное шоу резало глаза: сотни зелёных лучей чертили в дыму сложные геометрические фигуры, которые складывались в многомерные кубы, а затем взрывались розовыми пикселями. В центре зала парила виртуальная диджей-платформа — голограмма женщины с лицом, составленным из бегущих строк биржевых котировок, и её голос, пропущенный через нейросетевые фильтры, ласкал уши, подстраивая ритм под коллективное настроение зала: когда кто-то чихал, бит замедлялся на долю секунды.
В воздухе пахло тремя вещами: синте-апельсинами (их аромат распыляли климат-контроли), дешёвым синте-шампанским (его запах напоминал спирт, смешанный с сахарозаменителем) и страхом — едва уловимым, химическим запахом потных ладоней людей, которые на год влезли в долги, чтобы купить билет в этот клуб.
У барной стойки из переработанного пластика, которая светилась изнутри мутным красным, стоял парень. Один. Ссутулившись, будто нёс на плечах невидимый груз из неудачных коммитов в репозиторий. Его звали Кай Сёдергрен. Друзья называли его «Проводник» — за то, что он мог заставить летать даже разбитых дронов и взламывал почти всё, что имело чип и питание.
Кай был высоким — метр девяносто три, — но худоба делала его похожим на согнутую вешалку. Светлые волосы, вечно взлохмаченные, торчали в разные стороны, как солома, которую пытались уложить, но плюнули. Они не были чисто-белыми — в искусственном свете клуба они отдавали грязно-жёлтым, с двумя тёмными прядями у висков, которые он принципиально не красил. Серые глаза, глубоко посаженные, смотрели на мир не как на череду праздничных огней и улыбающихся лиц, а как на строки кода: они быстро бегали по деталям — сканировали угол обзора камеры безопасности, оценивали частоту мерцания проектора, вычисляли, где слабое место в защите локальной сети клуба.
Кожа у него была бледная, почти синеватая под глазами — следствие вечной работы по ночам и питания синте-лапшой, которая состояла из целлюлозы, ароматизатора «говядина» и тридцати двух витаминов, о которых производители врали. На левой щеке, чуть ниже скулы, виднелся тонкий шрам — белая ниточка, оставшаяся после того, как в детстве он попытался перерезать кабель питания голыми руками, не выключив дрон из розетки.
Он был одет в дешёвый киберпанковский костюм, купленный в автомате на станции метро «Аист-7». Куртка из синтекожи, чёрная, с голографическими вставками на рукавах, которые должны были переливаться зелёным и синим, но вместо этого то и дело выдавали пиксельные артефакты: мертвые зоны, серые квадраты, которые мигали, как сигнал бедствия. Штаны были слишком широкими, с подтяжками, на которых значилось название какой-то китайской корпорации, обанкротившейся ещё в 2090-м. На ногах — стоптанные ботинки с налипшей на подошву жвачкой. В одном ухе висел старенький нейро-переходник — пластиковая фиговина, которую он сам перепаял три раза, и теперь он торчал под неестественным углом, как сломанное антенное радио.
На фоне других гостей — девушек с мерцающими имплантами на висках, которые меняли цвет радужки каждые десять секунд, парней в дизайнерских комбинезонах от «Yamamoto Synth», с идеально ровными причёсками, обработанными нано-лаками, — Кай выглядел чужаком. Бомжом с окраины, который каким-то чудом прошёл фейс-контроль. Он и сам не знал, как это случилось. Наверное, охранник принял мерцающие артефакты на его куртке за дорогой дизайнерский глюк.
— Проводник, — толчок в бок вырвал его из размышлений о том, как можно было бы оптимизировать систему вентиляции в этом клубе, чтобы она жужжала на полтона тише. — Сколько можно стоять столбом? Ты же не сервер, в конце концов!
Это был Макс. Старый друг. Ну как «старый» — знакомы они были года три, с тех пор как Макс попросил Кая восстановить данные с разбитого планшета, на котором были фотографии его умершей собаки. Макс был менеджером по продажам в корпорации «Нексус-Дата» — огромной доильной машине, которая сосала персональные данные пользователей и продавала их рекламщикам. Он носил идеально отглаженный пиджак с живым, не синтетическим, а настоящим шёлковым платком в кармане — это был его маленький бунт против мира синтетики. Круглолицый, с живыми карими глазами и вечной улыбкой, Макс был из тех людей, кто мог продать лёд эскимосу, а потом убедить эскимоса, что тот сам этого хотел.
Кай усмехнулся краем губ. Уголки губ у него опускались вниз даже когда он улыбался — привычка, выработанная годами одиночества за монитором.
— Расслабление, Макс, — сказал он, и голос его звучал сухо, как старый жёсткий диск, — это когда компилятор не выдаёт ошибок на третьем часу отладки. А не когда вокруг орут сто пятьдесят человек и дрон проливает шампанское тебе на ботинки.
— О, извините, мистер Совершенство! — Макс театрально закатил глаза. — Ты хоть понимаешь, где мы? Это же «Генезис»! Сюда полгода очередь записываться! Тут сам Игорь Гвозденко — знаешь, тот миллиардер, который купил Луну? — в прошлом году отмечал свой день рождения!
— Купил Луну? — Кай приподнял бровь. — Её нельзя купить. Она — общественное достояние по договору 2067 года. Он купил права на добычу гелия-три на её поверхности. Это совсем другое.
— Вот поэтому у тебя нет девушки, — вздохнул Макс и сунул ему в руку бокал с шипучей жидкостью. — Ну хоть это выпей. Говорят, в этом синте-шампанском есть настоящие пузырьки углекислого газа. Почти как в старину. Не синтезированные, а настоящие, из газового баллона!
Кай поднял бокал к свету — к тому красному сиянию, которое сочилось из барной стойки. Жидкость была неестественно золотистой, слишком яркой, как моча после курса витаминов. Пузырьки действительно были — они поднимались со дна редкими, ленивыми цепочками.
— Настоящие пузырьки, — повторил Кай задумчиво. — Знаешь, чем настоящие пузырьки отличаются от синтезированных? Формой. Синтезированные — идеально круглые. Настоящие — чуть приплюснутые, потому что реальная физика не любит совершенства.
— Ты сейчас серьёзно? — Макс выглядел обиженным. — Мы стоим в лучшем клубе Нео Сити, через двадцать минут запустят фейерверк, который видно с орбиты, а ты мне лекцию по гидродинамике читаешь?
— Я не читаю лекцию. Я констатирую факт.
— Тогда выпей и констатируй, что ты счастлив.
Кай сделал глоток. Жидкость обожгла горло — не холодом, а химической теплотой, которая бывает, когда пьёшь растворитель. Вкус был слишком «настоящим» — слишком фруктовым, слишком сладким, с привкусом ванили и ещё чего-то, что напоминало пластмассу. Он поморщился, как ребёнок, которому дали горькое лекарство, и поставил бокал обратно на стойку. Бокал оставил мокрый круг на пластике — круг, который начал медленно испаряться, оставляя белый налёт.
— Синте-шампанское, — сказал Кай, вытирая губы тыльной стороной ладони. — Даже искусственная газировка в двадцатом веке была вкуснее. Знаешь, я как-то нашёл на свалке старую банку «Спрайта» — 2023 год, представляешь? У неё вкус был... настоящим. Сахар, лимонная кислота, отдушки. А это... это просто этиловый спирт, смешанный с сахарозаменителем Е-954 и ароматизатором «шампанское». Номер 417.
— Ты жуткий зануда, Проводник, — сказал Макс, но беззлобно. Он отпил из своего бокала, и его лицо на секунду стало блаженным — он не чувствовал разницы. Или делал вид. — Знаешь, что я люблю в тебе? Ты единственный человек, который не пытается продать мне что-нибудь. Ни кредит, ни страховку, ни подписку на облачный хостинг. Ты просто... существуешь. Как баг в системе. Но приятный баг.
— Спасибо, — Кай криво улыбнулся. — Я польщён.
В этот момент к ним подвалил Лео. Лео был художником-визуализатором — он создавал голограммы для рекламных кампаний. Носил очки с постоянно бегущей строкой по линзам (никакой функциональной нагрузки, просто для понта), и его пальцы всегда были в чёрной краске — настоящей, масляной, которую он воровал из музея, где подрабатывал ночным сторожем. Низенький, коренастый, с вечно взъерошенной бородкой, он напоминал гнома, который выпил слишком много кофеина.
— О, смотрите! — Лео указал на барную стойку, где только что развернулась яркая голограмма. — Весёлые ребята из «Криосон»!
Голограмма парила в воздухе, мерцая так, что было видно каждый пиксель. На ней улыбалась виртуальная девушка — идеальное лицо с большими глазами цвета искусственной лазури, длинными ресницами и губами, накрашенными в кислотно-розовый. На ней был футуристический халат, который переливался серебром, а на груди светился логотип — снежинка, вписанная в песочные часы. Её голос был приторно-сладким, как тот самый сахарозаменитель:
*«Устал от серых будней? Мечтаешь увидеть будущее, которое обещали нам в голо-фильмах? Проснись через 300 лет супергероем! Криосон — это не просто сон. Это билет в новую жизнь. Заморозка тела, сохранение сознания, пробуждение в мире, где рак побеждён, голод искоренён, а налоги отменили! Первый месяц заморозки — бесплатно! Подпишись сейчас — получи скидку на разморозку 20 %!»*
Голограмма улыбнулась шире, и её зубы сверкнули, как полированные чипы.
Лео толкнул Кая локтем в рёбра. Тот самый локоть, который был в чёрной краске — на куртке Кая осталось жирное пятно.
— Эй, Проводник! — голос Лео был звонким, с хрипотцой. — Слышал? Бессмертие за пару кликов! Давай, подпиши! Через триста лет проснёшься красавчиком — с нормальной причёской, без этих вечных мешков под глазами.
Компания дружно загоготала. Макс чуть не поперхнулся шампанским. Подошёл ещё один знакомый — Свен, инженер по техобслуживанию дронов, высокий парень с бритой головой и имплантом в шее, который иногда издавал щелчки, когда Свен глотал. Он положил тяжёлую руку на плечо Кая.
— Да, Проводник, — прогудел Свен. — Ты ж вечно жалуешься, что время летит слишком быстро. Так вот тебе решение — останови его. Буквально.
Кай закатил глаза. Он сделал это медленно, с удовольствием — так, что его серые радужки почти полностью скрылись под веками.
— Бессмертие? — повторил он, и в его голосе прозвучало столько иронии, что её можно было бы намазать на хлеб. — Вы серьёзно? Я и так живу как последний подросток из дешёвого ситкома: снимаю кладовку под серверную, потому что на нормальную квартиру нет денег. Питаюсь синте-лапшой со вкусом «чеддер», которая на самом деле пахнет картоном. Не плачу налоги, потому что налоговая забыла, что я существую — или я им должен три тысячи кредитов, не помню уже. Что ещё нужно для счастья? Могила с подогревом?
— Ну, — Лео не унимался, он уже влез на барный стул и теперь сидел на нём, как ворона на заборе, — но подумай! Просыпаешься через триста лет. А там — рай! Все проблемы решили без нас: глобальное потепление остановили, войны запретили, деньги, может, вообще отменили. ИИ наконец-то научился делать нормальный кофе. Не этот синте-суррогат из желудей, а настоящий, арабика, с пенкой!
— ИИ делает кофе уже сейчас, — сказал Кай. — Моя кофеварка управляется нейросетью. И знаешь что? Она всё равно переваривает зерна. Потому что нейросеть, Лео, не понимает, что такое «вкус». Она понимает только температуру, давление и время экстракции. А кофе — это магия. Этого алгоритмом не опишешь.
— Да ну тебя, — отмахнулся Лео. — Ты просто пессимист.
— Я реалист, — поправил Кай. — Реалист, который читал пользовательские соглашения.
— О, началось, — простонал Макс, закрывая лицо рукой. — Сейчас начнёт про мелкий шрифт.
— А ты прочитай, — Кай повернулся к нему. — Серьёзно. Просто ради интереса. Найди договор «Криосона» и прочитай раздел «Форс-мажор». Там написано: «Компания не несёт ответственности за деградацию нейронных связей в процессе заморозки. В случае технического сбоя или банкротства компании, биоматериал клиента подлежит утилизации согласно нормам утилизации биоматериалов класса Б». Класс Б, Макс! Это значит — переработать на удобрения!
— Ты преувеличиваешь, — сказал Свен, но голос его звучал уже не так уверенно.
— Ни на йоту, — Кай покачал головой. — Триста лет — это огромный срок. За это время компания может обанкротиться двадцать раз. Технологии могут устареть. Или, что ещё веселее, — он понизил голос, — тебя разморозят, но не потому, что наступило светлое будущее, а потому что твой крио-куб понадобился под склад запчастей. Ты просыпаешься, открываешь глаза — а вокруг коробки с пропеллерами. Привет, супергерой.
Друзья засмеялись, но смех был уже не таким весёлым. Кай видел это. Он всегда видел, когда люди начинали сомневаться — это читалось в микродвижениях, в том, как они отводили взгляд.
— Но, — Лео спрыгнул со стула и подошёл к терминалу, который стоял рядом с баром — старому пластиковому ящику, который моргал рекламой, — тут же просто! Смотри!
Терминал был древним, из тех, что ставили ещё в 2130-х. Его экран был весь в царапинах — кто-то, видимо, пытался его вскрыть отвёрткой, — а голографический интерфейс сбоил: вместо иконок иногда показывались разноцветные квадраты, которые складывались в бессмыслицу. Поверх экрана бежала рекламная строка, написанная ярко-зелёными буквами: «Бессмертие — это весело! Подпишись сейчас!»
Лео ткнул пальцем в экран, и терминал чирикнул, как рассерженная птица.
— Смотри, Проводник, всего три шага. Сканер сетчатки, отпечаток пальца, галочка в поле «Согласен». Три секунды — и ты в очереди на вечную жизнь!
Кай подошёл ближе. Пластик терминала был тёплым — внутри что-то гудело, какой-то вентилятор, который давно пора было чистить. Экран замигал, и голограмма виртуальной девушки из «Криосон» появилась снова, но уже в миниатюре, в углу.
«Дорогой Кай Сёдергрен! — пропел синтезированный голос, прочитавший его имя с того, как он подошёл достаточно близко — камеры следили за каждым. — Мы видим, вы интересуетесь бессмертием! Это мудрое решение! Всего одна подпись отделяет вас от трёхсот лет счастья!»
— Даже имя моё знают, — пробормотал Кай. — Конечно. Продали базу данных из клуба. Или взломали. Или я сам подписал согласие на обработку, когда покупал билет.
— Не будь параноиком, — сказал Макс, но в его голосе было что-то — какая-то дрожь, любопытство.
Кай посмотрел на экран. Процедура действительно была до смешного простой. Сканер сетчатки — дешёвенький, наверняка поддельный, — щёлкнул, обдав глаз слабым красным лучом. Отпечаток пальца — пластина, испачканная чужим потом, — окрасилась зелёным, означая «считано». А затем на экране появилось знакомое поле: длинный текст, свёрнутый в гармошку, и внизу — большая зелёная кнопка: «Я согласен с условиями».
Кай знал, что скрывается за этой кнопкой. Он сам писал такие соглашения для своих заказчиков — только для программ, а не для тел. Он знал, что там есть пункт о том, что данные могут быть переданы третьим лицам. Что отказ от претензий — это стандарт. Что «Криосон» имеет право изменить условия в любой момент без уведомления.
И всё же. Было что-то в этой ночи. В этом гуле голосов, в этом синте-шампанском, которое всё ещё горчило во рту. В усталости — не физической, а той, глубокой, которая накапливается годами, когда ты делаешь одно и то же: код, взлом, код, взлом, синте-лапша, сон, код. Может, он действительно устал. Может, ему хотелось верить, что где-то, через триста лет, есть что-то большее. Или просто алкоголь — этот дешёвый, химический этанол — слегка затуманил ту часть мозга, которая отвечала за самосохранение.
— Ну, — сказал Кай, поворачиваясь к друзьям. Он улыбнулся — по-настоящему, уголки губ наконец поползли вверх. — Теперь довольны?
Он ткнул пальцем в зелёную кнопку.
Терминал чирикнул женским голосом, на этот раз громко, так что несколько человек у бара обернулись:
— Поздравляем, Кай Сёдергрен! Вы успешно подписали договор на криоконсервацию! Ваш номер в очереди на обработку документов — 4 702 891. Ожидаемая дата заморозки: В момент констатации смерти. Просыпайтесь с улыбкой!
— Ничего себе, — выдохнул Лео. — Он реально это сделал.
— Ты реально идиот, — сказал Макс, но хлопнул Кая по спине. — Ладно, через триста лет увидимся. Если меня тоже не заморозят в удобрения к тому времени.
Кай засмеялся. Смех вышел хриплым, неестественным — он редко смеялся.
— Да бросьте, — махнул он рукой. — Что может пойти не так? Это просто шутка. Новогоднее приключение. Завтра я проснусь с похмелья, закажу лапшу, и «Криосон» будет слать мне спам до конца жизни.
— Ты даже мелкий шрифт не прочитал, — заметил Свен.
— А смысл? — Кай пожал плечами. — Это всегда одно и то же. Стандартные отмазки: «компания не несёт ответственности за побочные эффекты», «пробуждение не гарантировано», «в случае форс-мажора тело будет утилизировано согласно нормам утилизации биоматериала». Ничего нового. Я сам такие тексты писал для корпораций. Это просто страховка от дураков.
Он взял со стойки чужой, забытый кем-то бокал и осушил его залпом. Жидкость была тёплой и горькой — похоже, кто-то заказал виски. Виски обжёг горло, и Кай почувствовал, как тепло разливается по груди, снимая напряжение, которое накапливалось месяцами.
— Ну, за бессмертие! — крикнул Лео, поднимая свой бокал.
— За бессмертие! — подхватили остальные.
И они пили — Кай, Макс, Лео, Свен и ещё много людей в этом клубе — под лазерным дождём и вой синтезированных сирен, которые изображали полночь. Они не знали, что Кай Сёдергрен только что подписал себе смертный приговор. И что мелкий шрифт, который он не прочитал, скрывал не стандартные отмазки.
Неделю спустя.
Кай сидел в своей кладовке. Это было помещение на пятом этаже заброшенного склада в районе «Мёртвые провода» — так называли окраину Нио Сити, где интернет ловился через раз, а вместо канализации под землёй текли отходы трёх химических заводов. Кладовка была два на три метра. В ней помещались: лежак — тонкий матрас на алюминиевых ножках, кухонный блок (микроволновка, мини-холодильник, синтезатор лапши), три серверные стойки, которые гудели как потревоженный улей, и Кай.
Кай сидел в кресле без подлокотников, которое он одолжил у соседа, и смотрел на три монитора. Левый показывал лог ошибок автопилота для магнитной трассы — последний проект для крупной транспортной корпорации. Средний — код программы, написанной на языке «Сигма-нейро», который он ненавидел, потому что в нём не было вменяемой обработки исключений. Правый — моргающее сообщение от заказчика: «Проводник, подтверди готовность на 100%».
Проект был скучным. Автопилот для магнитной трассы — таких программ было написано уже несколько сотен. Крупные корпорации использовали «Магнус-драйв», систему, которая стоила миллионы кредитов в год. Но этот заказчик — скромная контора «Транс-Магистраль Север» — решил сэкономить. Они нашли Кая на теневой бирже фрилансеров и предложили гонорар: двадцать тысяч кредитов за полную версию. Двадцать тысяч — это были огромные деньги для Кая (он мог питаться синте-лапшой три года), но для транспортной компании это была капля.
Они хотят получить права, — думал Кай, глядя на мигающий код. — Всю интеллектуальную собственность. Чтобы не платить «Магнусу» за использование их алгоритмов. Я пишу им дешёвый аналог, они получают вечную лицензию, и все счастливы.
Энтузиазм пропал на девяностом проценте. Работа оказалась рутинной: тысяча однотипных функций, миллион проверок граничных условий, согласование с протоколами безопасности, которые менялись каждый раз, когда он думал, что закончил. На девяноста процентах Кай остановился. Он посмотрел на оставшиеся десять — это была тонкая настройка системы экстренного торможения, обработка редких сценариев (например, выход состава на трассу при обрыве контакта с диспетчерской). Без этого автопилот будет работать в девяноста девяти процентах случаев. А на сотый — кто знает?
— К чёрту, — сказал Кай вслух. Голос в пустой кладовке прозвучал глухо.
Он написал пару «костылей» — так на сленге программистов назывались временные решения, которые должны были работать, но не обязательно правильно. Он добавил функцию «аварийный режим», которая при любой ошибке просто останавливала состав. Безопасно? Да. Эффективно? Нет. Состав просто замрёт посреди трассы, и его придётся эвакуировать краном. Но формально — система не убьёт никого.
Кай отправил заказчику отчёт: «Проект завершён на 100 %. Все функции протестированы в симуляции. Код сдан, права переданы. Жду оплату».
Он даже не перепроверил симуляцию. Запустил один тест — тот, что был прописан в задании, зелёная полоска до 100%, — и закрыл вкладку.
Корпорация «Транс-Магистраль Север» приняла работу на следующий день. Их техотдел прогнал автопилот через свои стандартные симуляции — все они были созданы для идеальных условий, без учёта редких сценариев. Тесты показали зелёный свет. Программа была залита в управляющие чипы трёх составов, которые курсировали по магнитной трассе «Нио Сити — Полярный Узел» — самой длинной в Северном полушарии, три тысячи километров через вечную мерзлоту.
Кай получил деньги. Двадцать тысяч кредитов упали на его счёт в 3:47 ночи. Он посмотрел на цифры, потратил три тысячи на новый модуль памяти для дрона, тысячу на синте-лапшу и виски, а остальное положил под матрас — потому что не доверял банкам.
Он не знал, и не мог тогда предположить, что через месяц этот недописанный автопилот убьёт его.
Глава 2
Раннее утро на магнитной трассе «Нио Сити — Полярный Узел» выдалось таким туманным, будто сама смерть выдохнула в лицо планете. Густая пелена — не белая, а грязно-молочная, с редкими прожилками химической дымки от заводов, — окутала эстакаду, размывая контуры дорожных знаков до состояния акварельных пятен. Голографические указатели, которые днём ярко сверкали зелёным и синим, сейчас едва мерцали сквозь взвесь микроскопических капель, превращаясь в призрачные силуэты. Видимость была метров семьдесят — восемьдесят. Для магнитной трассы, где разрешённая скорость достигала четырёхсот километров в час, это было как идти по канату над пропастью с завязанными глазами.
Кай Сёдергрен нёсся на своей подержанной машине 2139 года выпуска со скоростью триста двадцать — на двадцать больше разрешённой, потому что он спешил. Куда? Да никуда, честно говоря. Просто ему нравилось чувство, когда старый автомобиль, весь в царапинах и с плохо притёртой дверью со стороны пассажира, вибрировал на высоких скоростях, будто живое существо, которое вот-вот сдастся, но всё ещё держится. Машина была его гордостью и позором: куплена на чёрном рынке за восемь тысяч кредитов, перепаяна наполовину своими руками, с автопилотом, который Кай сам перепрошил, убрав ограничитель скорости и добавив пару «левых» режимов, о которых завод-изготовитель даже не догадывался.
Трасса была почти пустой. Почти — потому что в радиусе десяти километров датчики Кая показывали всего три машины: одну позади, километрах в двух, и две на встречной полосе. Туман съедал пространство, превращая мир в узкий туннель серой ваты, разрываемой только собственными фарами — старыми, ксеноновыми, которые светили уже не так ярко, как в день покупки, но всё ещё терпимо.
Кай откинулся на сиденье. Сиденье скрипнуло — пружины внутри давно проржавели, и каждое движение сопровождалось мелодией, похожей на жалобу. Он одной рукой держал руль — кожаная оплётка облезла, и под пальцами чувствовался холодный пластик, — другой рукой провёл по голографическому сенсору на приборной панели. Дисплей вспыхнул, засветившись голубым, и вывел на прозрачную поверхность лобового стекла интерфейс.
*«Доброе утро, Кай! — написала система приветствия, которую он сам же и настраивал. — Ваш баланс: 11 420 кредитов. Скорость: 321 км/ч. Расход синтетического топлива: 14.2 л/100 км. Уведомлений: 1».*
Кай моргнул, и уведомление развернулось. На стекле появилась яркая анимация: взрывающиеся логотипы, бегущие строки, кричащие цвета.
«Выход новой игры „Код бесконечности“ — уже сегодня! Погрузись в мир, где реальность — это код, а код — это реальность! Собери свой идеальный алгоритм, взломай матрицу, стань богом симуляции! Только в этом месяце — скидка 30% на первый уровень!»
— О, — сказал Кай вслух. Голос в салоне прозвучал глухо, поглощённый шумом ветра и гулом магнитной подвески. — А я думал, она через неделю.
Он убрал палец с руля. Совсем. Автопилот машины — его собственный, переписанный, с добавленными функциями адаптивного круиз-контроля, — автоматически включился, как только скорость превысила порог в двести километров. Кай чувствовал, как руль слегка вибрирует — это система делала микро-корректировки, удерживая машину в полосе. Он потянулся к голографическому дисплею, чтобы открыть полное описание игры, посмотреть трейлер, почитать отзывы бета-тестеров.
Его пальцы забегали по виртуальным кнопкам, которые парили в воздухе перед лицом. Он открыл страницу магазина, пролистал скриншоты — красиво, очень красиво, киберпанк в квадрате, — начал читать описание.
«„Код бесконечности“ — это симулятор, где каждый игрок становится программистом реальности. Ты можешь переписывать законы физики, создавать объекты из ничего, взламывать сознания NPC...»
Кай усмехнулся. Звучит как моя работа, только веселее.
Он не заметил грузовика.
Грузовик — сорокатонный «Магнус-Логистик Т-900», с тремя прицепами, длиной под тридцать метров — двигался по встречной полосе на автопилоте. На той самой системе, которую Кай не дописал до конца.
Система называлась «Северный Путь 3.7». Внутри неё, глубоко в недрах кода, в функции расчета безопасной дистанции при экстренном торможении, была одна ошибка. Банальная. Стыдная. Ошибка округления.
Вот как это работало на человеческом языке: система считывала показания лидаров — лазерных дальномеров, которые каждую миллисекунду отправляли в пространство миллионы импульсов. В условиях тумана лидары «Магнуса» были не самой новой модели — они давали погрешность в семь-восемь сантиметров при нормальной видимости, а в тумане погрешность росла до пятнадцати. Но это было допустимо. Проблема была не в лидарах.
Проблема была в том, как «Северный Путь 3.7» обрабатывал данные.
В коде, который Кай написал на девяноста процентах, была одна функция. Она принимала три параметра: видимость в метрах (с плавающей точкой), скорость в км/ч и коэффициент сцепления с поверхностью. Возвращала — тормозной путь в метрах, тоже с плавающей точкой.
Всё было правильно, кроме одной строчки.
Кай, когда дописывал «костыли», добавил в конце функции не точное значение.
Он округлил результат до целого числа. Просто так. По привычке. Потому что в его ранних проектах заказчики требовали целые числа для совместимости со старыми интерфейсами. Здесь это было не нужно. Здесь это было смертельно.
В идеальных условиях — ясная погода, сухая трасса — ошибка в несколько сантиметров ничего не меняла. Грузовик тормозил за, скажем, 85 метров вместо 85,4. Разница в сорок сантиметров — это меньше длины человеческой ступни. Никто бы не заметил.
Но в тумане, когда видимость упала до семидесяти метров, а магнитная подвеска работала на пределе из-за повышенной влажности, эти сантиметры стали метрами. Алгоритм, получая данные о препятствии — в данном случае, о резко затормозившей перед грузовиком легковой машине, — рассчитывал тормозной путь в 67,3 метра. Округлял до 67. Но настоящий тормозной путь с учётом погрешности лидаров, влажности и микронеровностей полотна составлял 68,1 метра.
Разница — чуть больше метра.
Метр, который Кай потерял, когда нажал «Согласен» на сдаче проекта.
Метр, который стоил ему жизни.
Кай отвлёкся на описание игры на три секунды. Три секунды на скорости триста двадцать километров в час — это двести шестьдесят шесть метров, которые он проехал, почти не глядя на дорогу. Его автопилот, его собственная перепрошитая система, держала ровно в полосе, но не могла предвидеть того, что сейчас произойдёт.
Грузовик вылетел на встречную полосу.
Это произошло не из-за ошибки водителя — водителя в кабине не было. «Магнус-Логистик Т-900» был полностью беспилотным, сертифицирован для перевозки опасных грузов класса «Б». Причиной стало то самое округление.
За три километра до места аварии на трассе произошло микро-смещение магнитной полосы — старая эстакада, построенная ещё в 2115 году, просела на два сантиметра из-за сезонного оттаивания вечной мерзлоты. «Северный Путь 3.7» зафиксировал отклонение, пересчитал траекторию и дал команду рулевым сервоприводам скорректировать курс. Коррекция прошла нормально. Но через два километра — ещё одно смещение, на сантиметр. А через километр — третье.
Система начала накапливать микро-ошибки. Она пыталась их компенсировать, но из-за ошибки округления в другом модуле — в модуле оценки стабильности платформы — каждое новое смещение прибавляло к погрешности не 1 сантиметр, а 0, потому что округлялось до целого. Ноль.
