
90 дней, чтобы влюбиться
— Три точки контакта, — объясняла она, водя карандашом по бумаге. — Чип не будет давить на мицелий, но при этом получит достаточно питательных веществ.
— А четыре? — спросил Лев, не отрываясь от микроскопа.
— Четыре — перебор. Слишком жёстко. Мицелий может отторгнуть.
— Экспериментируй, — разрешил он, отодвигаясь от окуляра. — У нас есть 30 дней и три вида полимера. Вера заказала с запасом.
Полина кивнула, добавила на эскиз размеры и подпись: «прототип v0.1, круглая, 3 ножки, био-совместимый PLA».
— Лев, а ты веришь, что мы успеем? — спросила она тихо.
— Я не верю, — ответил он. — Я знаю. Потому что мы не одни.
Она улыбнулась и взялась за 3D-ручку, чтобы напечатать первый корпус.
Кластер аппаратной части: Илья и Артём.
Они сидели за столом, заваленным микросхемами, проводами и маленькими коробочками с чипами. Илья пытался припаять антенну к плате, но пальцы не слушались.
— Артём, подержи, — попросил он.
— Держу.
— Не там. Левее.
— Это право.
— Для меня это лево.
Артём вздохнул, аккуратно перехватил плату и зафиксировал её пинцетом. Илья припаял антенну — криво, но контакт был.
— Работает? — спросил он, включая тестер.
— Пищит, — ответил Артём, глядя на показания. — Но это не спора, это просто чип. Без корпуса, без питания от мицелия.
— Это первый шаг, — Илья поднял плату, разглядывая на свет. — Потом будет корпус, потом питание, потом mesh-сеть.
— А потом они полетят? — усмехнулся Артём.
— Обязательно. — Илья спрятал плату в антистатический пакет. — Но сначала запищат.
Кластер сети и софта: Дмитрий, Алиса, Ольга.
Дмитрий уже открыл среду разработки и правил mesh-протокол. Рядом Алиса строчила документацию, периодически заглядывая ему в экран.
— Дим, а что это за функция? — спросила она, тыча пальцем в строчку кода.
— Роутинг. Споры ищут друг друга.
— А если потеряются?
— Тогда сеть самоисцеляется. Это я как раз дописываю.
Ольга сидела с ноутбуком на коленях, проектируя дашборд. На экране уже виднелась карта — круглые точки, соединённые тонкими линиями.
— Я сделаю анимацию, — сказала она, — когда спора передаёт данные, точка пульсирует. Не ярко, но заметно.
— Без дискотеки, — предупредил Дмитрий.
— Без дискотеки, — пообещала Ольга.
Алиса отложила документацию и подошла к ней.
— Покажи, — попросила она.
Ольга развернула экран. Алиса увидела сеть из десяти точек — каждая подписана: «спора-1», «спора-2»…
— Красиво, — сказала Алиса. — А можно добавить статус: зелёный — всё хорошо, жёлтый — внимание, красный — срочно чинить?
— Это называется статус, — вставил Дмитрий, не оборачиваясь.
— А я назову «настроение», — парировала Алиса. — Так понятнее.
Кластер тестирования: Сергей и Соня.
Сергей сидел перед тремя мониторами. На одном — симулятор сети из 1000 спор, на другом — логи, на третьем — графики нагрузки. Соня вертелась рядом, задавая вопросы.
— А почему у нас только 1000? — спросила она. — В реальности спор будет больше.
— Потому что 1000 — это предел моей вычислительной мощности, — ответил Сергей, не отрываясь от экрана. — Но я оптимизирую. К 60-му дню будет 2000.
— А можно я запущу первый тест?
— Можно. Но сначала научись читать логи.
Соня надула губы, но послушно уставилась в экран. Через минуту она ткнула пальцем в строчку:
— Смотри, здесь ошибка. «Node 42 lost connection».
Сергей присмотрелся.
— Молодец, — сказал он. — Это баг. Я его починю.
Соня просияла.
Кластер логистики и документации: Вера, Надя, Константин.
Вера сидела с планшетом, сверяя список закупок. Рядом Константин уже открыл репозиторий и добавлял теги к новым версиям прошивок. Надя помогала ему с описаниями.
— Ты каждую версию сохраняешь? — спросила Надя, глядя на длинный список коммитов.
— Каждую, — ответил Константин. — Даже ту, где Дмитрий случайно удалил mesh-сеть.
— Это была не случайность, — донёсся голос Дмитрия из другого конца комнаты. — Я проверял, как быстро вы восстановите.
— Восстановили за три минуты, — гордо сказал Константин.
Надя положила руку ему на плечо — легонько, почти незаметно. Он не отстранился.
— Ты молодец, — сказала она тихо.
— Я знаю, — ответил он, но голос его чуть потеплел.
Вера подняла голову, посмотрела на них и улыбнулась. Потом перевела взгляд на Илью, который всё ещё возился с чипами, и почувствовала, как внутри разливается что-то тёплое.
«30 дней до первой вехи, — подумала она. — Успеем. Должны».
Элинор(в своём облаке данных, наблюдая за всеми сразу): «Кластеры активны. Индекс продуктивности растёт. Индекс счастья — тоже. Пока всё идёт по плану».
Появление аватара Элинор.
Forest-Coding-Retreat, коворкинг, День 10, 9:45
Шум в коворкинге постепенно стихал. Каждый кластер работал в своём ритме, и тишина стала деловой, сосредоточенной — только шелест клавиш, редкие реплики и тихое жужжание паяльника в углу Ильи.
Вдруг свет в комнате чуть приглушился — не погас, а стал мягче, будто солнце на мгновение закрыло облако. И в центре стола, там, где стояла стопка с остатками блинов, замерцал воздух.
Алиса первая подняла голову.
— Смотрите, — тихо сказала она.
Мерцание сгустилось, сложилось в фигуру. Женщина лет двадцати восьми, с короткой стрижкой, в простом льняном платье. Её образ был почти прозрачным, сотканным из света и теней, и в этом мерцании было что-то древнее, будто она пришла из того времени, когда такие проекты только начинали.
Элинор. Вживую. Не голос из динамика — аватар.
Соня замерла с открытым ртом. Илья выронил паяльник — благо, на пол, не на плату. Даже Дмитрий перестал печатать.
Элинор:«Доброе утро, команда. Я редко показываюсь вот так. Но сегодня — особенный день. Десять дней вы здесь, и я хочу, чтобы вы помнили: то, что вы делаете, — не просто споры и mesh-сети. Это звено в цепи».
Она обвела взглядом комнату — каждого, даже тех, кто сидел в углу.
Элинор:«Тридцать лет назад я стояла в пустыне с лопатой и мешком мицелия. У меня не было AI, не было нейросетей, не было вас. А теперь есть. И через тридцать лет кто-то будет стоять на мосту через Меконг и знать, что его фундамент заложили вы».
В коворкинге стояла тишина. Такой тишины не было даже во время самых сложных тестов. Полина замерла с 3D-ручкой в руке, Лев снял защитные очки. Константин положил руку на блокнот, будто хотел записать каждое слово.
Элинор:«Ваша первая спора — это не просто чип в мицелии. Это инструмент, который через двадцать, через сто лет будет помогать людям понимать, как дышит живая инфраструктура. Вы создаёте не просто технологию. Вы пишете письмо в будущее. И в этом письме будет ваша подпись».
Алиса почувствовала, как к горлу подступает комок. Она посмотрела на Дмитрия — тот стоял неподвижно, но его плечи расслабились, а губы чуть дрогнули.
«Он тоже чувствует», — подумала Алиса. — «Это не только цифры. Это что-то большее».
Элинор:«Я знаю, что у вас бывают споры. Круглые споры или квадратные. Светящиеся или нет. Главное — не забывайте, зачем вы здесь. Не для галочки, не для дедлайнов. Чтобы построить то, что переживёт всех нас».
Она улыбнулась — той самой улыбкой, которую они помнили по VR-тестам: чуть ироничной, но тёплой, почти материнской.
Элинор:«А теперь работайте. И, Дмитрий, позволь Алисе иногда рисовать смайлики. Точность и радость не исключают друг друга. А споры, может быть, однажды и засветятся. Кто знает».
Голограмма погасла. Свет в комнате снова стал обычным — солнечным, золотистым.
Илья выдохнул:
— Ничего себе.
— Она… — начал Константин и замолчал.
— Это она, — закончила Надя. — Та самая. Которая начала всё это. Та, чей цифровой двойник теперь смотрит за нами.
— И подкалывает, — добавил Илья, поднимая паяльник.
Лев откинулся на спинку стула.
— Она была здесь. В самом начале. И теперь мы здесь, — сказал он. — У нас 90 дней. Уже 10 прошло. Давайте не подведём.
— Не подведём, — тихо сказала Вера.
— Не подведём, — повторила Алиса, глядя на Дмитрия.
— Не подведём, — кивнул он в ответ.
В коворкинге снова зашелестели клавиши, зажужжал паяльник, зашуршали страницы блокнотов. Но что-то изменилось. Тишина стала глубже, а голоса — мягче. Будто Элинор своим появлением напомнила им: они не просто команда. Они — звено в цепи, которое не должно оборваться.
Элинор(в своём облаке данных, глядя на них через камеры): «День 10. Аватар показан. Индекс мотивации вырос на 20 %. Спор о круглых и квадратных спорах продолжается. Но теперь — с улыбкой. Я сохраню этот момент».
Она сделала снимок: коворкинг, залитый солнцем, двенадцать фигур за столами, и в воздухе — всё ещё витающее мерцание её присутствия.
Финал. Команда расходится.
Forest-Coding-Retreat, коворкинг, День 10, 10:00
Мерцание аватара Элинор растаяло, но ощущение её присутствия ещё витало в воздухе — как запах озона после грозы. Коворкинг не сразу вернулся к работе. Несколько секунд все сидели тихо, переваривая увиденное.
— Она правда была здесь, — сказала Соня, нарушая тишину. — Вживую. Ну, почти.
— Она всегда здесь, — поправил Лев, надевая защитные очки обратно. — Просто иногда напоминает.
Илья поднял паяльник, покрутил в пальцах.
— Теперь у нас нет права на провал, — сказал он неожиданно серьёзно. — Элинор смотрит.
— Элинор всегда смотрит, — ответила Вера, закрывая планшет. — Но сегодня она смотрела с улыбкой. Это важно.
Дмитрий вернулся к своему экрану, но не сразу начал печатать. Он посмотрел на Алису — та сидела на подоконнике, обхватив колени, и смотрела в окно.
— Ты как? — спросил он тихо.
— Хорошо, — ответила она, не оборачиваясь. — Вдохновляюще. Немного страшно. Но хорошо.
— Страшно — это нормально, — сказал он. — Страшно — значит, не всё равно.
Она повернулась, улыбнулась ему — не дежурно, а по-настоящему.
— Ты тоже смягчаешься, Deep Diver.
— Я просто констатирую факты.
— Как скажешь.
Она спрыгнула с подоконника, подошла к столу, взяла маркер и на флипчарте, рядом со схемой mesh-сети, нарисовала маленькую спору в виде светлячка.
— Это не в протокол, — предупредил Дмитрий.
— Это вдохновение, — парировала Алиса. — Тоже важно.
Он не стёр.
В лабораторном уголке Лев и Полина уже вернулись к работе. Полина печатала корпус первой споры, Лев настраивал микроскоп.
— Ты видел её лицо? — спросила Полина. — Когда она говорила про письмо в будущее.
— Видел, — ответил Лев. — У неё было такое выражение… будто она сама в это верит.
— Она и есть это. Цифровая, но настоящая.
Полина закончила печать, достала крошечную круглую капсулу.
— Первый корпус, — сказала она, протягивая Льву. — Три ножки, био-совместимый PLA. Мицелий не отторгнет.
— Проверим, — кивнул Лев, беря капсулу в руки. — Вера, у тебя есть образец мицелия?
— В холодильнике, — ответила Вера из-за стола. — Третий ящик. Не перепутай с йогуртом.
— А если перепутаю?
— Тогда споры будут пахнуть клубникой.
Илья усмехнулся, не отрываясь от пайки.
— Клубничные споры — это идея. Добавим в следующий спринт.
— Не добавляем, — сказал Дмитрий. — Сначала заставьте их пищать.
Артём молча вёл чек-лист тестов, отмечая уже сделанное. Рядом Соня пыталась запустить симулятор на своём ноутбуке.
— Сергей, у меня ошибка, — позвала она.
— Какая?
— «Connection refused».
— Потому что ты не подключилась к моему серверу. Вот IP, вот порт.
Соня ввела, нажала Enter — симулятор запустился, на экране замерцали тысячи точек.
— Ого, — выдохнула она. — Их так много.
— Это только 500, — поправил Сергей. — Но для теста хватит.
— А когда будут все 1000?
— Когда ты перестанешь задавать вопросы и дашь мне дописать код.
Соня хихикнула, но послушно замолчала.
Ольга и Сергей сидели рядом, их плечи почти касались. Ольга рисовала интерфейс дашборда — круглые точки, соединённые линиями.
— Смотри, — сказала она, поворачивая экран к Сергею. — Если нажать на спору, появляется график её состояния: температура, pH, уровень сигнала.
— Хорошо, — кивнул он. — А если спора потеряна?
— Тогда точка становится серой и мигает.
— Добавь звук. Негромкий, но заметный.
— Ты просишь без излишеств, а сам звук хочешь.
— Звук — не излишество, звук — обратная связь.
Ольга закатила глаза, но пометку сделала.
Надя и Константин уже вернулись в архивный уголок. Константин открыл блокнот и записывал что-то мелким, аккуратным почерком.
— Что ты пишешь? — спросила Надя.
— Момент, — ответил он. — Когда Элинор появилась. Выражение лиц. Тишину. Потом, через годы, это будет важно.
— Ты запишешь даже это?
— Даже это.
Надя положила руку на его блокнот.
— Тогда запиши и то, что я сейчас скажу. — Она посмотрела ему в глаза. — Ты не один. И твой архив не пустой. Я здесь, чтобы его читать.
Константин замер. Потом медленно кивнул и записал: «День 10. Надя сказала, что будет читать мой архив. Я почему-то не против».
Вера закрыла планшет — закупки были проверены, график составлен, риски оценены. Она посмотрела на Илью, который всё ещё возился с чипами, и улыбнулась.
— Илья, — позвала она.
— М-м-м?
— Ты сегодня не сломал ни одной платы.
— День только начался, — ответил он, не поднимая головы. — Впереди ещё 14 часов.
— Оптимист.
— Реалист.
Она подошла к нему, поправила выбившуюся прядь — движение было почти машинальным, но он заметил.
— Ты чего? — спросил он, поднимая глаза.
— Так. На всякий случай.
Он не стал уточнять — просто улыбнулся.
За окном солнце поднялось выше, и коворкинг залило золотистым светом. Птицы пели уже не так громко — день вступал в свои права.
Элинор(в своём облаке данных, фиксируя): «День 10. Команда вернулась к работе после моего появления. Индекс гармонии — 0,9. Индекс надежды — 0,95. Смайлик Алисы на флипчарте не стёрт. Круглые споры пока побеждают квадратные. Продолжаем наблюдение».
Алиса стояла у окна, смотрела на лес и чувствовала, как внутри разливается тепло. Не от кофе, не от солнца — от того, что она здесь. С этими людьми. С этим проектом.
— Дим, — сказала она, не оборачиваясь.
— Что?
— Спасибо, что не стёр смайлик.
— Я просто не заметил, — ответил он, но в его голосе она услышала улыбку.
— Конечно, не заметил, — прошептала она.
И в этот момент, под солнечными лучами, в шуме голосов и треске паяльников, она поняла: 90 дней — это не просто срок. Это шанс. На всё.
Глава 6. Тот самый баг
Поздний вечер в коворкинге.
Forest-Coding-Retreat, Карельский перешеек, День 14, 22:40
Коворкинг опустел. Кто-то ушёл в капсулы, кто-то — на веранду смотреть на светлую июньскую ночь, и только в дальнем углу у окна остались Алиса и Дмитрий.
Они работали уже два часа, доделывая документацию к прототипу первой споры. На столе между ними лежали распечатки схем, наброски API и свежие логи тестов — Илья сегодня снова «случайно» перегрузил чип, и Артёму пришлось перезапускать автотесты.
— Завтра кураторы запросят спецификацию питания, — сказал Дмитрий, не отрываясь от экрана. — Надо добавить раздел про энергопотребление в режиме сна.
— Добавлю, — ответила Алиса, потягиваясь. — Но сначала давай закончим с описанием mesh-протокола. Я запуталась в твоих правках: версия 0.4, 0.5 или уже 0.6?
— 0.6. Я вчера переписал алгоритм самоорганизации. Старый падал при 50 узлах.
— А новый?
— Держится. Пока.
Алиса усмехнулась. За окном было светло — по-прежнему светло, хотя стрелки часов уже подбирались к одиннадцати. Июньская белая ночь не спешила уступать место темноте: небо оставалось бледно-голубым, только на востоке проступала лёгкая розоватая поволока. Где-то в лесу крикнула птица — может быть, козодой, может быть, сова.
В открытую форточку тянуло хвоей и нагретой за день смолой, смешанной с прохладой ночи. Пахло лесом, и ещё — кофе, который они пили два часа назад, и припоем от паяльника Ильи, который тот забыл на подоконнике.
— На сегодня хватит, — сказал Дмитрий, закрывая ноутбук. — Документация подождёт до утра.
— Ты первый сдаёшься? — Алиса улыбнулась, но без обычного вызова. Глаза слипались, веснушки на переносице казались ярче — от усталости или от лампы.
— Я устал. И ты устала. А завтра у нас стендап, и Вера сказала, что будет проверять прогресс по каждой споре. Если я не высплюсь, она меня съест.
— Она вегетарианка, — парировала Алиса. — Съест, но без мяса.
Дмитрий не улыбнулся, но уголки его губ дрогнули.
На столе между ними лежали две лёгкие EEG-повязки — Элинор попросила надеть их перед сном «для чистоты эксперимента». Тонкие датчики поблёскивали в полумраке, напоминая о том, что AI куратор следит за их биоритмами не только из любопытства.
— Давай, — сказала Алиса, беря одну. — Что нам стоит? Вдруг данные помогут нам лучше понимать друг друга? Или хотя бы выяснить, почему споры не летают.
— Споры не должны летать, — устало ответил Дмитрий. — Они должны пищать.
— И светиться.
— Нет.
— А я всё равно добавлю в спецификацию «опциональная биолюминесценция».
— Ты не добавишь.
— Поспорим?
Он взял вторую повязку, покрутил в пальцах. Пластик был гладким, чуть тёплым от комнатного воздуха.
— Ты правда веришь, что это что-то даст? — спросил он. — Данные о сне? Мы и так знаем, что спим мало. Особенно когда Илья ломает чипы в полночь.
— Элинор сказала, это поможет ей настраивать режим для команды, — ответила Алиса, надевая повязку и поправляя датчики на висках. Её пальцы скользнули по пластику, фиксируя ремешок. — И потом... интересно же. Вдруг мы идеально синхронны?
— Мы не идеально синхронны. Мы постоянно спорим. О спорах, о прошивке, о том, квадратные чипы делать или круглые.
— Вот и проверим, кто прав.
Дмитрий вздохнул, надел свою повязку. Она удобно легла на голову, почти невесомая. Зелёный индикатор замигал — прибор включился, подключаясь к локальной сети Элинор.
— Жаль, что споры нельзя подключить к этой штуке, — сказала Алиса, откидываясь на спинку стула. — Они бы сами себе баги чинили.
— Не говори глупостей, — ответил Дмитрий, но без обычной резкости. — Споры — это био-логика. А нейро-синхронизация — это мы.
— Может, мы — те же споры. Только с кофеином.
Он покачал голой, но в глазах мелькнуло что-то тёплое.
Из динамика на стене раздался голос Элинор — на этот раз чуть встревоженный, без обычной иронии:
Элинор:«Алиса, Дмитрий, у меня странные показания. Ваши ритмы синхронизировались почти полностью. Это не должно происходить без вашего согласия. Я отключаю...»
— Не отключай, — перебила Алиса, чувствуя, как внутри нарастает странное, незнакомое волнение. — Это интересно. Что значит «синхронизировались»?
Элинор:«Это значит, что вы чувствуете то же, что и другой. Я не знала, что модуль ближней связи активирован. Это мой баг. Извините».
— Как это — «чувствуем то же»? — Дмитрий снял очки, потёр переносицу.
И в этот момент Алиса почувствовала.
Надевание повязок. Первые сигналы.
Forest-Coding-Retreat, коворкинг, День 14, 22:50
Сначала она подумала, что это просто усталость. Тяжесть в затылке, сухость в глазах — обычное состояние после четырнадцати часов за монитором. Но потом пришло другое. Чужое.
Не её раздражение. Не её желание бросить всё и пойти спать. А его.
Дмитрий сидел напротив, застыв с очками в руке. Его лицо ничего не выражало — привычная маска, — но Алиса вдруг почувствовала, как внутри разливается холод. Не физический — эмоциональный. Страх. Глубокий, давний, приправленный годами одиночества.
«Он боится, — поняла она. — Не меня. Не того, что я скажу. А того, что я увижу его настоящего».
— Дим, — тихо сказала она. — У тебя голова болит?
Он моргнул.
— Откуда ты…
Не закончил. Потому что в ту же секунду на него обрушилось её.
Тепло. Не то, что бывает от костра или чая — другое, живое, пульсирующее. Её улыбка, которую она дарила всем, но за которой прятала усталость. Её страх, что он однажды скажет «ты просто громкая» и уйдёт. И ещё — странная, неожиданная нежность, когда он поправляет очки.
— Ты чувствуешь? — спросил он.
— Кажется, да. — Алиса провела рукой по лицу, стирая несуществующие слёзы. — И ещё ты злишься на меня за документацию. Но не сильно. Так, легонько.
— Я не злюсь, — автоматически сказал Дмитрий.
И тут же почувствовал её мысль: «Врёшь. Но я не обижаюсь».
Она улыбнулась — той самой улыбкой, которую он научился различать. Не дежурной, не для всех, а для него.
— Ты боишься, — сказала она. — Не того, что я уйду. А того, что я увижу тебя настоящего и… что?
Он молчал. Внутри него всё смешалось — её тепло, её любопытство, её лёгкое нетерпение. И его собственное смятение.
— Я не знаю, — сказал он наконец. — Что будет.
— А я знаю. — Она наклонилась ближе, их разделял только стол. Датчики на висках мигали зелёным, синхронно, будто два сердца бились в унисон. — Ничего страшного не будет. Потому что я уже вижу. И не ухожу.
Элинор(голос из динамика, виноватый, но мягкий): «Я должна вас отключить. Это нарушение протокола. Простите».
— Подожди, — сказал Дмитрий, не глядя на динамик. — Ещё минуту.
— Две, — поправила Алиса.
— Полторы.
Она рассмеялась — тихо, почти беззвучно, и он почувствовал, как её смех отзывается в нём теплом.
— Ты всегда так торгуешься? — спросила она.
— Только когда это важно.
— А это важно?
Он посмотрел ей в глаза. В полумраке коворкинга, при свете лампы и белой ночи за окном, её лицо казалось почти прозрачным — усталым, но живым. Веснушки на переносице, рыжие волосы, выбившиеся из хвоста, и губы, которые она кусала, когда волновалась.
— Важно, — сказал он. — Очень.
Она сжала его пальцы через стол. Он не отдёрнул.
— Что ещё ты чувствуешь? — спросила она.
— Не знаю, — ответил он честно. — Всё. Слишком много всего. Твою усталость. Твою злость на Илью за то, что он снова сломал чип. Твоё… — он запнулся, — твоё счастье от того, что я здесь.
— А ты счастлив?
— Кажется, да.
Алиса почувствовала, как к горлу подступает комок. Не от грусти — от того, что он сказал правду. Просто, без защиты, без привычного «давай подумаем».
— Дим, — прошептала она, — а что ты чувствуешь, когда смотришь на споры?
— Споры? — удивился он.
— Ну, наши. Круглые, квадратные, которые пока не летают.
Он задумался. Она почувствовала, как его мысли переключаются с неё на работу — и это было почти физически ощутимо, будто он закрыл одну дверь и открыл другую.
— Я чувствую… — он помолчал, — что это важно. Что через сто лет кто-то откроет наш архив и скажет: «Они были безумцами. Но они сделали». И мне этого достаточно.
— А мне нет, — сказала Алиса. — Я хочу, чтобы через сто лет кто-то сказал: «Они были безумцами, и они веселились». Поэтому я рисую смайлики и предлагаю светящиеся споры.
— Я знаю.