01Case study · Wydajność

Projekt własny: oprogramowanie, które sami zbudowaliśmy i utrzymujemy.

AstrOS Engine

Otwierasz stronę i patrzysz na 50 000 satelitów krążących wokół Ziemi, z danymi NASA i NOAA na żywo. Niczego nie instalujesz. Silnik napisaliśmy od zera w Rust i skompilowaliśmy do WebAssembly; WebGPU znaczy, że obliczenia idą na kartę graficzną, więc całość porusza się płynnie.

Otwórz demo na żywoZamów bezpłatny audyt
Konsola misji AstrOS: globus Ziemi z 50 000 orbit satelitów i panel telemetrii NASADemo na żywo
02Wyzwanie

Dziesiątki tysięcy ruchomych obiektów na żywo, bez instalacji

Tysiące ruchomych obiektów naraz zwykle zabijają płynność: procesor i gotowe biblioteki nie nadążają z liczeniem pozycji klatka po klatce. Chcieliśmy udowodnić, że przeglądarka udźwignie całą populację, jeśli obliczenia przejmie karta graficzna. Bez instalacji, w lekkiej paczce, bez gubienia klatek.

03Jak to działa

Cała praca na GPU, zero kosztu CPU na obiekt

Seed raz

Elementy orbitalne ~50 000 satelitów trafiają do bufora GPU jednorazowo, z realnego katalogu CelesTrak albo proceduralnego fallbacku.

Compute co klatkę

Shader WGSL propaguje wszystkie obiekty równolegle (Kepler + J2 + drag). CPU nie dotyka pojedynczego satelity.

Render bez kopii

Render pass czyta pozycje wprost z bufora (vertex pulling): jeden draw call na warstwę, bez przepisywania danych na CPU.

Silnik jest neutralny względem platformy: ten sam kod buduje realne potoki na natywnym urządzeniu Metal lub Vulkan, co pozwala testować je w headless CI bez przeglądarki.

04Wydajność

Mierzona, nie deklarowana

~1100×

szybsze wczytanie katalogu satelitów: scena startuje od razu, zamiast kazać czekać, aż przeglądarka przeliczy surowe dane.

25k–1M

obiektów na suwaku: sam wybierasz skalę sceny, a płynność jest mierzona na żywo, nie deklarowana.

~447 KB

cała aplikacja waży mniej niż jedno zdjęcie z telefonu: otwiera się od razu, bez instalacji.

Zapieczony blob jest tablicą elementów GPU: dekodowanie to praktycznie kopia, bez matematyki na obiekt. Realizm jedzie tą samą ścieżką zero-kosztu CPU co reszta silnika. Sam czytnik SGP4 (czysty Rust) trzyma się referencyjnej implementacji CelesTrak z dokładnością poniżej 2×10⁻⁷ km.

Sprawdź te liczby sam w demo
05Dane na żywo

Konsola telemetrii NASA i NOAA

Nad sceną 3D wisi panel, który myśli jak dyżurny lotów. Zamiast pięciu tabel dostajesz gotowy wniosek, np. „ELEVATED: NOAA WARNING G2”. Suwak czasu (×0,125–×4096, skala logarytmiczna) przyspiesza symulację, a zorza na globusie reaguje na rzeczywisty wskaźnik Kp, czyli miarę burz geomagnetycznych. Całość działa też na telefonie.

NOAA SWPC
Planetarny Kp, wiatr słoneczny, alerty pogody kosmicznej
NASA NeoWs
Planetoidy bliskie Ziemi, flagi zagrożenia, najbliższe przeloty
NASA EONET
Zdarzenia naturalne: pożary, burze, wulkany, powodzie
APOD / EPIC / GIBS
Zdjęcie dnia, Ziemia z DSCOVR, dzienne obrazy satelitarne
Launch Library 2
Nadchodzące starty orbitalne z odliczaniem
06Stack

Każdy wybór ma powód

Język
Rust → WebAssembly
Bez runtime, bezpieczeństwo pamięci, mały binarny artefakt
Grafika
wgpu 30 (WebGPU)
Bezpośrednia kontrola potoku, zero narzutu frameworka
Fizyka
Shader compute (WGSL)
50 000 satelitów równolegle, zero CPU na obiekt
Render
Vertex pulling
Pozycje czytane wprost z bufora, jeden draw call na warstwę
Dane
Katalog CelesTrak (SGP4)
Realne obiekty, zapieczone do zero-copy blobu
07Kontakt

Masz uciążliwy problem? Opisz go, resztę zakoduję.

Jedno zdanie wystarczy, żeby zacząć. Napisz, co Cię uwiera. Wracam w 48 godzin z odpowiedzią, czy da się to zrobić, i ze stałą ceną.

Bez zobowiązań: opisanie problemu nic nie kosztuje
Bezpłatny audyt na start: raport zostaje u Ciebie
Stała cena ustalona z góry albo nie zaczynamy: bez niespodzianek na fakturze
Ograniczona liczba projektów naraz, każdy z pełną uwagą: przy pilnym terminie odezwij się wcześniej
Odpowiadamy w ciągu 48 godzin
Napisz bezpośrednio
contact@tenzanlogic.com