Über Mich

Software-Entwickler, Diplom-Informatiker

Computer Graphics (OpenGL), Cross-Platform Development (C++, Qt, Qml, CMake), Open-Source, 3D-Middleware


Mitbegründer der CG Internals GmbH


Profil herunterladen


Seit mehr als 15 Jahren beschäftige ich mich intensiv mit der Entwicklung komplexer Softwaresysteme. Themenschwerpunkte sind dabei die Cross-Plattform Applikationsentwicklung mit C++ unter Windows, Linux und Mac unter der Verwendung von plattformübergreifenden Toolkits und Bibliotheken, insbesondere Qt und Qml, der Echtzeit-Grafikprogrammierung mit OpenGL, sowie CMake und Git für die Projektverwaltung. Ebenso habe ich Erfahrung mit der Entwicklung von Web-Backends sowie Web-basierten Renderingsystemen mit node.js / express.

Der aktuelle Schwerpunkt meiner Arbeit liegt in der Entwicklung von Echtzeit-3D-Anwendungen, wie z.B. interaktiven Visualisierungssystemen, Produkt-Konfiguratoren, Simulationen oder Spielen auf Basis von OpenGL 3/4. Ich habe Erfahrung mit der Umsetzung moderner Renderingtechniken auf Basis von OpenGL sowie der Entwicklung komplexer Computergrafik-Middleware, sowohl im kommerziellen Bereich, als auch in verschiedenen Open-Source-Projekten, an denen ich mitwirke.

Bis 2018 arbeitete ich als wissenschaftlicher Mitarbeiter und Doktorand am Hasso-Plattner-Institut in der Abteilung Computer Graphics Systems. Dort war ich in Forschung und Lehre tätig.

Projekte

glbinding

OpenGL-Binding für C++, welches automatisiert aus der OpenGL-Spezifikation (gl.xml) generiert wird. Hierbei werden moderne Sprachfeatures von C++11 verwendet (z.B. Typensicherheit, Namespaces, Enum-Classes, etc.), um die Verwendung von OpenGL in C++ zu verbessern und ggf. zu vereinfachen.

GitHub



globjects

Objektorientierte Wrapper-Bibliothek für OpenGL auf Basis von C++. Diese Library bildet die Konzepte und Objekte von OpenGL direkt auf C++-Klassen ab, wodurch die Verwendung von OpenGL deutlich vereinfacht wird. Der Fokus liegt dabei auf der strikten Abbildung der OpenGL-Konzepte, ohne Abläufe oder Konzepte vorzugeben oder einzuschränken, wie dies bspw. bei Rendering-Engines der Fall ist.

GitHub



gloperate

Cross-Plattform Rendering-Engine auf Basis von glbinding und globjects. Hierbei kommt ein flexibles Pipeline-Konzept zum Einsatz, welches die Erstellung von spezialisierten und hochperformanten GPU Rendering- und Prozessierungssystemen ermöglicht (z.B. Big-Data-Visualisierungen). Durch automatisierte Scripting- und UI-Anbindungen eigenet sich gloperate insbesondere für Rapid-Prototyping von modernen Visualisierungssystemen.

GitHub



cppfs

Cross-platform C++ Dateisystem-Bibliothek, welche verschiedene Backends unterstützt. Die Bibliothek stellt ein einheitliches Interface zum Zugriff auf Dateien und Ordner zur Verfügung und unterstützt dabei sowohl das lokale Dateisystem, entfernte Dateisysteme (wie z.B. SSH), als auch virtuelle Dateisysteme (wie z.B. zip/tar-Dateien).

GitHub




cppexpose

Reflection/Introspection-Library für C++11. Die Bibliothek umfasst Funktionalitäten zur Typen-Inspektion und Reflection von C++-Objekten, Variant-Datentypen, der Serialisierung/Deserialisierung in das JSON-Format, der automatisierten Anbindung von C++-Objekten in eine Scripting-Umgebung (JavaScript), sowie dem Laden und Verwalten von Plugins aus dynamischen Bibliotheken. Die Implementierung basiert auf aktuellen C++11-Features und kommt ohne die Verwendung von Makros oder Meta-Object-Compilern aus.

GitHub


cppassist

Eine C++-Bibliothek mit Hilfsfunktionen, die über die Basisfunktionalität der STL hinausgehen, z.B. String-Operationen, Dateisystem-Funktionen, Logging, etc.

GitHub




cmake-init

Build-System-Template auf Basis von CMake 3.0 unter Verwendung ausschließlich moderner CMake-Features. Das Projekt eigenet sich als Basis für C++-Projekte und umfasst alle Schritte des Build-Prozesses, inklusive Erstellung von Dokumentation, automatischen Tests, und Deployment.

GitHub




Frühere Projekte

Geo-Temporal Explorer (GTX)

GTX ist eine Visualisierungssoftware, die im Rahmen meiner Dissertation entstanden ist. Sie dient zur interaktiven Visualisierung und Analyse massiver räumlich-zeitlicher Datensätze. Dies wird anhand zweier Anwendungsfälle demonstriert - der Visualisierung von großen Mengen von Bewegungstrajektorien (Flugdatenvisualisierung), sowie der Visualisierung großer geo-referenzierter Netzwerke in der Klimaforschung.

GTX basiert auf einer spezialisierten Visualisierungsengine auf Basis von C++ und OpenGL, welche für die interaktive Prozessierung und Visualisierung großer Mengen räumlich-zeitlicher Daten auf der GPU spezialisiert wurde.

Website, Videos




PixelLight

PixelLight ist eine Cross-Platform 3D-Engine, welche für die Erstellung von Echtzeit-3D-Applikation, wie bspw. Spielen, Simulationen oder Visualisierungssystemen verwendet werden kann. PixelLight wurde in C++ geschrieben und besteht aus mehreren Bibliotheken, die die Programmierschnittstelle der Engine darstellen. Erweiterbarkeit und Flexibilität waren dabei die Hauptziele der gewählten Softwarearchitektur, wodurch nicht nur eine 3D Rendering-Engine, sondern ein in sich konsistentes Applikationsframework erstellt wurde, welches für die gesamte Entwicklung einer Applikation verwendet werden kann.

Homepage, Videos, GitHub




Kontakt

E-Mail:

sbusch@sbusch.net

Phone:

+49 30 69203884

More:

Twitter, GitHub