Szymon Ender - Strona projektów

Launch MFD

Stale rozwijany wyświetlacz wielofunkcyjny Orbiter'a, który oblicza azymut startu i lotu twojego statku kosmicznego, wymagany aby osiągnąć orbitę o podanych parametrach. Dodatkowe funkcje Launch MFD:

  • Algorytm Powered Explicit Guidance NASA - określa aktualnie wymagane nachylenie statku any osiągnąć orbitę o wymaganym kształcie
  • Autopilot PID - płynnie kieruje statek na wymaganą orientację
  • Algorytm wejścia bezpośredniego - przechwycenie satelity bez konieczności wykonywania manewrów orbitalnych. Rozwijany jako praca magisterska

Launch MFD znajduje się na liście dwudziestu najczęściej pobieranych dodatków do Orbitera wszechczasów. Jako projekt będący Wolnym Oprogramowaniem, swój wkład w Launch MFD wniosło kilka osób, i trzech głównych autorów, w tym ja.

Do uruchomienia wymagany jest Orbiter.

Powrót na górę

Launch MFD
Kliknij na obrazek, aby go powiększyć.

TransX

TransX is a flexible planning and navigation tool for interplanetary transfers and orbital operations.

I've temporarly taken over the legacy OSS project to implement exciting new features and fix some timeless bugs. The new features include:

  • automatic solution finder - binary search based (fast'n'precise!) optimization task solver: minimizing planet's closest approach
  • automatic centering of vessel's nose to planned pre-burn target orientation - code reuse of Launch MFD's PID based autopilot
  • increased valuable data feedback to the user

The solution finder has been implemented as an abstract algorithm, ready for reuse in other projects. For the solution finder to work fast, many original bottlenecks had to be removed. The bottlenecks were discovered during the process of profiling the code.

Requires Orbiter to run.

Back to top


TransX Auto-Min
Click on the image to see the solver in action.

HUD Drawer SDK

Biblioteka Orbitera, umożliwiająca rysowanie na HUDzie każdej klasie, która imlementuje prosty interfejs dostarczany przez bibliotekę. Rejestracja i derejestracja w wewnętrznym systemie rysowania na HUDzie jest wykonywana automatycznie poprzez wykorzystanie unikalnych cech C++ - konstruktora i destruktora interfejsu. System rysowania używa hack'u zwanego Virtual Table Hijacking, lecz implementacja ta jest w pełni zenkapsulowana.

Do uruchomienia wymagany jest Orbiter.

Powrót na górę


HUDDrawerSDK

ModuleMessaging SDK

A library for Orbiter, which offers inter-module communication capabilities.
The abstraction imposes no limitations on the type of the module used (vessel or MFD) nor its purpose (source or sink of data).
I've implemented this capability in three Orbiter Open Source MFDs of different authors - Launch MFD, TransX and Burn Time MFD.

Requires Orbiter to run.

Back to top


ModuleMessaging SDK
Click on the image to enlarge it.

MDDClone-SDL

Port SDL sagi gier Mercenary (jednej z pierwszych gier 3D). Port SDL oznacza, że ten sam kod może być kompilowany na wszystkich platformach wspierających SDL (dotychczas powstały porty na Windows, Mac OS X, GNU/Linux i FreeBSD). Projekt bazowany jest na kodzie MDDClone, lecz zawiera moje własne udoskonalenia, z których najważniejszym jest wersja OpenGL gry. Z powodów historycznych oraz kompatybilnościowych, zachowana jest wersja renderująca grafikę software'owo, za pomocą kompilacji warunkowej.

Powrót na górę


MDDClone-SDL
Kliknij na obrazek, aby go powiększyć.

Killers Behind You

Platformowa gra 2D napisana w języku C++, z wykorzystaniem bibliotek SDL i OpenGL. Gra wyróżnia się kreskówkową grafiką, dynamiczną i płynną kamerą oraz realistyczną (w granicach rozsądku) fizyką. Wspólnie z grafikiem, Pawłem Zięcikiem, połączyliśmy najlepsze pomysły, znane nam z innych gier platformowych oraz nasze własne w jedną grę. Gra działa na systemach Windows i Linux.

Powrót na górę


Killers Behind You
Kliknij na obrazek, aby go powiększyć.

Killers Behind You level editor

Edytor poziomów dla Killers Behind You, napisany w języku C++, z wykorzystaniem biblioteki wxWidgets. Edytor ten importuje i eskportuje dane poziomów w formacie XML, które są następnie używane w samej grze Killers Behind You.

Powrót na górę


Killers Behind You
Kliknij na obrazek, aby go powiększyć.

Testowe programy bazodanowe

Zestaw programów bazodanowych, pisanych w celu przećwiczenia pisania programów komercyjnych. Zakres stworzonych programów obejmuje programy konsolowe klient-serwer oraz okienkowe w WinAPI i w wieloplatformowej bibliotece wxWidgets. Użyte silniki baz danych: MySQL oraz SQLite. Projekt rozwijany wspólnie z Szymonem Cichym dzięki systemowi kontroli wersji Subversion. Kliknij na obrazek, aby przejść do galerii projektu, w której przedstawiam jedynie moje własne programy.

Powrót na górę


DB test programs
Kliknij na obrazek, aby przejść do galerii.

Baza danych biura nieruchomości

Program, który pozwala na wprowadzanie do bazy danych oczekiwań klientów, dotyczących kupna przez nich nieruchomości, a następnie, w wygodnej wyszukiwarce, pozwala na wyszukiwanie tych klientów poprzez wprowadzenie informacji o konkretnej ofercie sprzedaży.

Typowe wyszukiwanie może być przeprowadzone poprzez wyszukiwanie wpisów, które cechują się wybranym typem, miejscem, parametrami, oraz które posiadają konkretną cechę, lub nie posiadają cech, które nie odpowiadają danemu klientowi.

Powrót na górę


Estate agency
Kliknij na obrazek, aby go powiększyć.

Energy MFD mk2

Energy MFD mk2 jest narzędziem, które próbkuje twoją energię kinetyczną i potencjalną (KE i PE) oraz ich sumę - energię mechaniczną (ME). Zapisane dane są wyświetlane na wykresach, dając ci dobry podgląd stanu twoich energii. MFD ten jest głównie narzędziem edukacyjnym, które pozwala na przeprowadzenie ciekawych eksperymentów fizycznych, opisanych w dokumentacji.

Kod w C++ i binaria dla Windows.
Do uruchomienia wymagany jest Orbiter.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.

Orbitrader MFD

Multiplayerowy moduł handlowy Orbiter'a, w trakcie rozwoju. Pozwala na handel towarem pomiędzy bazami i stacjami kosmicznymi w Układzie Słonecznym, za wirtualne pieniądze. Wszystkie transakcje i zdarzenia są przechowywane na serwerze Orbitrader'a, rozwijanym przez Pawła "She'da'Lier" Stiasnego, gdzie transakcje są przeliczane ponownie, oraz skąd pobierane jest ostatnie zapisane zdarzenie, tak że modół może odtworzyć stan symulacji po ponownym uruchomieniu.

Projekt używa bibliotek libxml2 do grupowania danych, libcurl do transferu tych danych, oraz pthread aby zapewnić nieblokujący symulacji charakter przesyłu danych.

Kod w C++.
Do uruchomienia wymagany jest Orbiter.

Powrót na górę


OrbitraderMFD

Sceneria orbitalna

Modul ten tworzy asteroidy na orbicie. Asteroidy te posiadaja losowo wygenerowane prędkości oraz rotacje.

Do uruchomienia wymagany jest Orbiter.

Powrót na górę


Roids
Kliknij na obrazek, aby go powiększyć.

Kalkulator wejścia bezpośredniego

Aplikacja ta służy jako wizualizacja mojego algorytmu bezpośredniego wejścia na orbitę, zastosowanego w Launch MFD. Trajektoria statku będąca wynikiem obliczeń jest wyświetlana jako piksele na części graficznej programu, natomiast parametry lotu w wymiarze czasu wyświetlane są w prawej części programu. Algorytm używa logiki rozmytej (libFuzzyEngine++) aby przyspieszyć obliczenia numeryczne i, w tej postaci, jest tematem mojej pracy magisterskiej. Dokładny opis programu znajduje się w dokumentacji Launch MFD.

Kod w C++ i binaria dla Windows.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.

libFuzzyEngine++

Mój port C++ silnika logiki rozmytej Fuzzy Engine for Java pana prof. Edward'a Sazonov'a. Portowanie silnika z Javy na C++ wymagało odpowiednich przemyśleń nt. sposobów ominięcia zależności od garbage collector'a, typowej w programowaniu w Javie i C#. Sama biblioteka używa przyjaznego dla programisty interfejsu, w którym definiujemy funkcje przynależności i reguły lingwistyczne. Używałem tego portu w Launch MFD w algorytmie wejścia bezpośredniego i w autopilocie rozmytym.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.
Obrazki koncepcyjne © prof. Edvard Sazonov.

Port Windowsowy Brain Party

Pomogłem Paul'owi Hudson'owi z magazynu Linux Format w stworzeniu portu Windowsowego jego gry logicznej - Brain Party. Przeniesienie gry wymagało dokonania nie tak oczywistych zmian w kodzie, oraz oczywiście przygotowania samego pliku wykonywalnego za pomocą MinGW i MSYS.

Strona mojego portu.

Powrót na górę


Brain Party
Kliknij na obrazek, aby go powiększyć.
© 2008 Szymon Ender. Obraz logo pochodzi ze strony Hubble'a.