SOLAR: інтерактивна 3D сонячна система на реальних орбітах JPL

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

XTOTAM.COM

SOLAR — некомерційний pet-проєкт: інтерактивна 3D сонячна система в браузері, де можна перелітати між планетами, а їхні позиції рахуються не мультиплікаційно, а за реальними орбітальними елементами JPL. Стек — React + Three.js, TypeScript, написано переважно у парі з Claude Code.

Наукова частина

Позиції планет беруться з таблиці елементів і швидкостей JPL (діапазон валідності 1800–2050 рр.), рівняння Кеплера розв’язується методом Ньютона прямо на клієнті — це не заготовлена анімація, а обчислення для довільної дати. Математику перевірено тестами на всіх 8 орбітах, на межах інтервалу валідності, у перигелії/афелії, для опорного положення Землі J2000 і ретроградних періодів.

Є свідомі спрощення, про які чесно пишу в документації: UTC використовується як наближення TDB без поправки на секунди, орбіта Землі представляє барицентр Земля—Місяць, повної N-body інтеграції немає, супутники не моделюються.

Кінематографічний переліт

Наочний режим нелінійно стискає відстані (щоб внутрішні планети не злипалися) і задає верхній рівень прискорення часу через повзунок — фактична швидкість плавно розганяється й гальмує перед прибуттям. Накопичений час симуляції показано окремо від тривалості польоту. Ручного пілотування й аварій немає — це радше кінематографічний тур, ніж симулятор.

Мобайл-фьорст

Карта системи згори екліптики — окремий режим, побудований мобайл-фьорст: на телефоні це аркуш на весь екран, бічна панель з’являється лише від 761px. Дотик до тіла на карті одразу прокладає маршрут.

Стек і деплой

React, Three.js, TypeScript, Vite. Акаунти й автозбереження — Node API + PostgreSQL. Деплой self-hosted: Docker + Caddy.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter