Галактические парсеки: как измеряют звездные расстояния
8 окт. 2026 г. · @knz75
Предыстория проекта
Эта история о том, как после госпитализации у меня появился фитнес-трекер и к чему в итоге привело это приобретение.
По роду деятельности я человек физического труда, а не программист или астроном. Тем не менее, я искренне увлекаюсь гаджетами, электроникой и технологическими новинками. Я давно присматривался к фитнес-браслетам, но из-за нелюбви к любым аксессуарам на запястье ничего у меня не приживалось: ни смарт-часы, ни трекеры. Однако после определённого возраста здоровье потребовало к себе повышенного внимания, и больничная койка стала весомым поводом наконец обзавестись полезным девайсом.
Вскоре выяснилось, что экосистема гаджетов — это настоящий хаос, где каждый производитель по-своему собирает, хранит и обрабатывает информацию. Я перепробовал множество мобильных приложений: от экосистемных гигантов до простейших утилит. Разобраться во всём этом мне помог искусственный интеллект (куда сегодня без него). Я загружал скриншоты метрик в нейросеть и получал детальный разбор. Поиграв с этим некоторое время, я оставил браслет в покое, а показатели осели в обычных таблицах на телефоне.
Но постоянное присутствие гаджета на руке не давало покоя. Банально созерцать цифры изо дня в день оказалось скучно, и я решил привнести в процесс элемент игры.
Шаги — это пройденное расстояние, а масштабы бывают самыми разными. Почему бы не конвертировать суточную активность в какие-то масштабные величины? Поскольку я неравнодушен к космической фантастике и видеоиграм, идеальным выбором показались парсеки, световые годы и прочие астрономические единицы. Так на свет появилась (звучит барабанная дробь) «Одиссея: Космос».
По сути, это очередной шагомер (коиго на рынке немало), просто я изначально не занимался их поиском, а сразу взялся за разработку. Концепция предельно проста: фиксируем ежедневные шаги, а умный алгоритм переводит их в парсеки. На этом можно было бы и закончить, но раз уж пишется статья, я поделюсь деталями.
Напомню, что я не разработчик, поэтому весь код написан при поддержке ИИ-ассистента. Без него проект бы не состоялся (нанимать сторонних специалистов было бы слишком накладно). Сформулировать задачу в стиле «сделай мне крутой сайт, где шаги конвертируются в парсеки» не вышло: пришлось самостоятельно продумывать логику, тестировать, отлаживать и переписывать код. Так что клейко «Сделано с помощью ИИ» я воспринимаю вполне позитивно.
Вот лишь часть задач, которые пришлось изучить и объединить:
-
как соотнести космические расстояния с человеческой ходьбой, чтобы этот путь реально было преодолеть;
-
какие астрономические каталоги существуют и какие из них были интегрированы;
-
как реализован поиск небесных тел и их добавление в локальную базу;
-
что на самом деле скрывается за услугами «покупки имени звезды».
Почему буквальный перевод шагов в астрономические расстояния не работает
Если конвертировать дистанцию до звезд напрямую, получатся значения, на преодоление которых не хватит всей истории существования Вселенной.
Возьмем среднюю длину шага 0,75 м и привычный темп около 8 000 шагов в сутки:
|
Объект |
Расстояние |
Шагов |
Срок ходьбы |
|---|---|---|---|
|
Луна |
384 400 км |
5,1 × 10⁸ |
около 175 лет |
|
Солнце |
149,6 млн км |
2,0 × 10¹¹ |
около 68 тысяч лет |
|
Проксима Центавра |
4,24 светового года |
5,4 × 10¹⁶ |
около 18 миллиардов лет |
Путь до Луны займет 175 лет. До ближайшей звездной системы придется идти 18 миллиардов лет при возрасте самой Вселенной в 13,8 миллиарда.
Колоссальный масштаб — лишь первая сложность. Есть и другие.
Дистанция до звезды — это расчет, а не прямое измерение. Удаленность вычисляют методом параллакса: фиксируют, насколько смещается светило на небосводе при обращении Земли вокруг Солнца. Сам термин «парсек» означает «параллакс в одну угловую секунду». Космический телескоп Gaia передает данные в миллисекундах дуги, а расстояние в парсеках рассчитывается как 1000, деленная на параллакс. Однако у удаленных и тусклых объектов погрешность измерений сопоставима с самим показателем, поэтому простое деление дает лишь приблизительную оценку. Выдавать такие цифры за абсолютную истину нельзя.
Небесная сфера — это проекция. На звездной карте объект имеет две плоские координаты, а расстояние выступает третьей величиной, причем у соседей по созвездию оно может отличаться в десятки раз. Например, Поллукс в Близнецах удален от нас на 10 парсеков, а Мекбуда — уже на 422. Линии, соединяющие их на картах — это не реальные трассы в пространстве. Соответственно, созвездие превращается в ломаную линию отдельных отрезков, каждый из которых отсчитывается от Солнца к конкретной точке.
Как мы адаптировали космические масштабы
Формула оказалась лаконичной: 20 000 шагов плюс 800 за каждый парсек, но не более 150 000 в сумме.
N = min(150000, 20000 + 800*d)
Где d — удаленность в парсеках, а N — требуемое количество шагов. У каждого параметра своя логика:
-
базовые 20 000 шагов — чтобы путь к ближайшему светилу не превращался в вечернюю прогулку (до Проксимы идти примерно 2,6 дня);
-
800 шагов за парсек (около 600 метров пешком) — чтобы более отдаленные объекты требовали больших усилий;
-
потолок в 150 000 шагов — чтобы ни один маршрут не растягивался на месяцы (при норме в 8 000 шагов в день это займет около 19 дней).
Предусмотрен и суточный лимит: в зачет идет не более 40 000 шагов за календарный день.
|
Звезда |
Расстояние |
Игровые шаги |
Дней при темпе 8 000/день |
|---|---|---|---|
|
Проксима Центавра |
1,30 пк |
21 040 |
2,6 |
|
Сириус |
2,64 пк |
22 112 |
2,8 |
|
Альдебаран |
20,4 пк |
около 36 300 |
4,5 |
|
Любой объект дальше 162,5 пк |
более 162,5 пк |
150 000 |
18,8 |
Таким образом, вместо фантастических 5,4 × 10¹⁶ шагов до Проксимы мы получаем вполне осясаемую 21 тысячу, сжав дистанцию примерно в 2,5 триллиона раз.
У такого подхода есть обратная сторона. На отметке в 162,5 парсека срабатывает лимит, и все более далекие объекты начинают стоить одинаково. В нашей базе таких насчитывается 55 672 из 91 796 объектов с известными координатами, то есть 61%. Это осознанный геймдизайнерский компромисс: физические различия между глубоким космосом здесь нивелируются.
Используемые астрономические каталоги
Ни один универсальный каталог не покрывает все потребности сразу, поэтому мы задействовали два источника: HYG для визуализации привычного неба и Gaia DR3 для глубокого сканирования.
|
Каталог |
Содержимое |
Масштаб |
Роль в проекте |
|---|---|---|---|
|
HYG (Hipparcos, Yale Bright Star, Gliese) |
яркие и близкие светила: координаты, блеск, спектральные типы, собственные именования |
около 120 тысяч записей |
интерактивная карта: задействовано 99 050 объектов ярче ~9,5 звездной величины, для 91 796 известны дистанции (до 990 пк) |
|
Gaia DR3 (ESA) |
точные координаты, параллаксы, фотометрия, температуры |
1 811 709 771 источник, параллаксы для 1 467 744 818 |
детальный сканер: поиск объектов, отсутствующих на базовой карте |
Почему не ограничиться Gaia. Космический телескоп не предназначен для регистрации самых ярких объектов: его рабочий диапазон стартует примерно с третьей звездной величины, в то время как Вега или Сириус значительно ярче. Их параметры обеспечивают каталоги Hipparcos и Gliese, интегрированные в HYG.
Почему не использовать только HYG. В нем содержится около 120 тысяч записей, тогда как Gaia оперирует 1,8 миллиарда объектов, практически не включая тусклые звезды.
Почему не загрузить всю базу Gaia единовременно. Полтора миллиарда строк не передать в браузер клиента. Поэтому визуальная карта строится на базе HYG (компактный файл весом около 5,5 МБ), а к Gaia система обращается динамически по запросу через публичный сервис VizieR (CDS, Страсбург), таблица I/355/gaiadr3.
Изначальная концепция казалась простой: взять 12 классических знаков зодиака, знакомых каждому очертаний созвездий, и проложить через них маршруты. Прошел знак — получил награду. Однако выяснилось, что астрологические знаки и реальные созвездия — далеко не одно и то же.
Знаки зодиака — это равные сегменты небесной эклиптики по 30°, используемые в астрологии. Созвездия — это реальные участки звездного неба, утвержденные Международным астрономическим союзом. Первое — условная календарная сетка, второе — физические скопления звезд.
Кроме того, в проекте используются открытые данные:
-
контуры созвездий взяты из открытых репозиториев Доминика Форда по лицензии GPL и сверены со Stellarium; границы созвездий соответствуют стандартам IAU;
-
в качестве фонового оформления суточного дневника задействованы снимки дня от NASA (APOD).
Механика поиска звезд
Поиск функционирует прямо в браузере: база из 99 тысяч объектов загружается единожды, после чего серверные мощности для этой задачи не требуются.
Пользователь может ввести название, каталожный номер (например, HD из каталога Генри Дрейпера, HIP для Hipparcos) или наименование созвездия на русском, английском или польском языках. Система сканирует массив данных и выдает релевантные совпадения. Запрос обрабатывается по трем направлениям одновременно: среди уже добавленных в проект объектов, по русским именам ярких звезд и по всему каталогу.
Самым неожиданным открытием стало то, что у подавляющего большинства космических тел нет собственных имен — только буквенно-цифровые индексы. Собственные имена закреплены лишь за 46 наиболее яркими звездами. Для остальных используется каталожная нумерация.
Следующая задача — исключить дубликаты, чтобы один объект фигурировал в базе в единственном экземпляре. Некоторые звезды попадали в выборку под разными кодами (у Сириуса их оказалось три). Записи с идентичными координатами (с погрешностью до 0,02°, чуть больше минуты дуги) автоматически объединяются в одну карточку.
Регистрация объектов и функция глубокого сканирования
Звезда появляется во внутренней базе проекта в момент, когда первый пользователь выбирает ее в качестве конечной цели маршрута.
При нажатии кнопки «Начать маршрут» браузер передает серверу параметры объекта: координаты, номер HIP и расстояние. Сервер проверяет, нет ли уже в радиусе 0,01° другой записи, и если локация свободна, создает новую сущность.
Классификация звезд. Спектральный класс обычно задается строкой вроде K2III. Буква обозначает температурную категорию (от горячих O до холодных M), а римская цифра — класс светимости (от сверхгигантов I до карликов V вроде нашего Солнца). Всего получается 49 вариаций. Для объектов из HYG данные берутся в готовом виде. Для светил из Gaia классификация вычисляется динамически по формуле абсолютной звездной величины:
M = m - 5 \lg d + 5
Здесь m — видимый блеск, d — удаленность в парсеках, а M — яркость с расстояния в 10 парсеков. Чем выше светимость при той же температуре, тем крупнее объект: при значениях ниже -5 присваивается класс сверхгиганта, ниже 0 — гиганта, выше 2 — карлика. Это приблизительная оценка на основе диаграммы Герцшпрунга — Рассела.
Глубокое сканирование. Пользователь кликает в произвольную точку карты, отправляя туда условный зонд. Сервер запрашивает у сервиса VizieR данные об объектах Gaia в радиусе 0,05° (три угловые минуты) и выбирает до 15 наиболее ярких кандидатов, отсутствующих в базовом каталоге. Пользователь может выбрать любой из них, после чего он регистрируется в системе с префиксом gaia и уникальным номером источника. Поскольку возможности API Gaia ограничены, запуск зондов лимитирован специальным внутриигровым счетчиком.
Честно о допущениях и приближениях в коде:
-
первый реальный запрос к Gaia ушел прямо на «боевой» сервер, так как в локальной среде разработки не было стабильного интернета;
-
поскольку поле расстояний в VizieR заполнено не для всех записей, в качестве резерва используется расчет через параллакс. Один из обнаруженных таким образом объектов имеет звездную величину 19,3 (доступную лишь мощным телескопам) и удален примерно на 1 600 парсеков, что является расчетной оценкой;
-
принадлежность к конкретному созвездию для таких точек определяется методом голосования: анализируются 7 ближайших объектов каталога в радиусе 4°. На стыках границ созвездий возможны погрешности.
Коммерческая продажа звездных имен: как обстоят дела на самом деле
Купленное «имя звезды» обладает юридической силой исключительно в базах данных конкретной коммерческой организации, которая его продала.
Официальные наименования небесным телам присваивает исключительно Международный астрономический союз (IAU), чьей номенклатурой пользуется всё мировое научное сообщество. На своем официальном ресурсе союз прямо заявляет, что коммерческие сертификаты не имеют никакой юридической силы, и организационно отмежевывается от подобной практики, не претендуя при этом на право собственности на космические объекты.
Реальная номенклатура устроена иначе. Большинство звезд имеют лишь буквенно-цифровые индексы вроде HR 7001 или 2MASS J18365633+3847012. Собственные имена есть лишь у нескольких сотен исторических светил (Сириус, Вега, Проксима Центавра), официально утвержденных профильной рабочей группой IAU. Присваивать имена 1,8 миллиарда источников из базы Gaia никто не планирует — их идентифицируют по каталожным номерам.
Как поступаем мы. При глубоком сканировании объект получает в игре наименование вида «ник (Gaia DR3 номер)». Это простая внутриигровая строка, по своей природе ничем не отличающаяся от записей в реестрах коммерческих контор. Разница в том, что мы не продаем эти записи, оригинальный индекс Gaia всегда находится на виду, а ник пользователя — лишь памятная отметка о том, кто добрался сюда первым. Это элемент геймплея, а не официальное переименование по версии IAU.
Итоги и личные выводы
Было крайне увлекательно погрузиться в эту тему. На красивых иллюстрациях всё выглядит просто, но на практике архитектура оказалась сложной. Шаги — казалось бы, элементарная метрика, но каждое устройство считает их по-своему: алгоритмы смартфонов, трекеров и специализированных датчиков серьезно различаются. Разброс в данных настолько велик, что привести их к единому знаменателю невозможно. Самым надежным решением в итоге стал ручной ввод показателей.
Как именно фиксировать активность и что заносить в дневник — личное дело каждого. В качестве альтернативы я добавил функцию распознавания шагов по загруженному скриншоту трекера. Сделал и мини-приложение для телефона, но оно тоже считает активность иначе, чем браслет, поэтому основным инструментом остался прямой ввод значений.
По мере развития проекта вокруг базовой механики вырос целый комплекс функций: дневник активности, подборки снимков NASA, карточки звезд и созвездий. Это познавательный процесс, открывший мне массу нового о космосе. Планов по развитию еще много, так что разработка продолжается, хоть порой и приходится отвлекаться на смежные задачи.
А пока результаты выглядят так:

Оценить проект вживую можно по ссылке: step-fit.click или через Telegram-бот @PPGalaxy_bot.
Используемые материалы и источники
-
IAU: Buying Stars and Star Names — официальная позиция Международного астрономического союза относительно покупки звездных имен;
-
ESA: Gaia’s Early Data Release 3 in numbers — статистика по источникам и параллаксам в каталоге Gaia;
-
ESA: Gaia Data Release 3 — структура релиза DR3 и фотометрические диапазоны;
-
HYG Database — сводный каталог Hipparcos, Yale Bright Star и Gliese.
Почему опасно пить минеральную воду без назначения врача
Пять развилок в истории отечественного ПО: как мы потеряли технологическую независимость с 1954 по 2026 год
Какую выгоду сулит отказ от бесконечности?
Ниацин и глиобластома
Интерактивная карта космоса: 526 тысяч астероидов и 35 тысяч спутников в браузере
Из-за чего ископаемые раковины меняют направление завитка каждые несколько тысячелетий?
Кинематографическая простота Геннадия Шпаликова
Испытывают ли языковые модели боль: разбор громкого препринта