Mein Werkzeugkasten

Die Werkzeuge, die ich wirklich benutze, und sieben interaktive Simulationen direkt im Browser.

Technische Kompetenzen

Fahren Sie über eine Karte, um zu sehen, wofür jedes Werkzeug dient

ROS 2

Robotik-Middleware. Damit strukturiere ich über Nodes, Topics und Services die Kommunikation zwischen Sensoren, Planung und Aktoren.

Python

Meine Hauptsprache für Prototyping, Bildverarbeitung und Regelung, mit NumPy, OpenCV, PyTorch und rclpy.

KiCad

Open-Source-Leiterplattendesign, vom Schaltplan über das Routing bis zur DRC-Prüfung. Jede meiner Platinen läuft darüber.

Autodesk Inventor

Parametrisches CAD. Ich modelliere Teile, Baugruppen und Zeichnungen vor Druck oder Bearbeitung.

Multimaterial-3D-Druck

Multimaterial-Fertigung mit löslichen Stützen und der Mischung aus flexiblen und starren Teilen. Vom Modell zum funktionsfähigen Bauteil an einem Tag.

MoveIt 2

Bewegungsplanung unter ROS 2, inverse Kinematik und Kollisionsvermeidung. Zum Steuern und Simulieren von Manipulatorarmen.

YOLO

Echtzeit-Objekterkennung. Ich trainiere sie auf eigenen Bilddatensätzen für die Robotik-Bildverarbeitung.

FPGA

Rekonfigurierbare Logik in VHDL, für parallele Verarbeitung, die einem klassischen Mikrocontroller zu schnell ist.

PCB Design

Bauteilauswahl, Leiterbahn-Routing, Signal- und Leistungsanforderungen. Meine Illumine-Platine habe ich komplett geroutet.

CAD

3D-Modellierung, Toleranzen und Baugruppen. Grundlage jedes mechanischen Projekts, bevor die Fertigung startet.

FEA

Finite-Elemente-Analyse mit Abaqus oder Inventor Nastran. Ich prüfe die Festigkeit eines Teils und untersuche die Netzkonvergenz vor der Fertigung.

C/C++

Echtzeit-Embedded-Programmierung auf Mikrocontrollern, wenn Python zu langsam oder zu indirekt ist.

Konstruktion

CAD, 3D-Modellierung und Strukturoptimierung

Prototyping

Multimaterial-3D-Druck und schnelle Fertigung

Entwicklung

Embedded-Code und Robotik

Die Labor-Ecke

Sieben Physik- und KI-Simulationen, geschrieben aus Freude daran, Gleichungen in Bewegung zu sehen. Regler ziehen und beobachten.

Öffnet sich in einem neuen Tab, am Computer am angenehmsten.

Fluid im Paraboloid

Eine in Echtzeit simulierte Flüssigkeit in einem parabolischen Glas. Mit der Maus umrühren, klicken zum Spritzen, und alles im Panel einstellen: Viskosität (von Wasser bis Honig), Schwerkraft, Farbe, Partikelanzahl …

Unter der Haube

Unter der Oberfläche laufen ~900 Partikel in einer SPH-Simulation (Smoothed Particle Hydrodynamics, „double density relaxation“ nach Clavet et al., 2005): Schwerkraft, paarweise Viskositätsimpulse, Dichterelaxation mit doppeltem Druckterm (gegen Verklumpung), beschleunigt durch ein räumliches Hash-Gitter, plus Kollisionen, die auf die Wand y = kx² projiziert werden. Das Rendering macht aus den Partikeln dann eine kontinuierliche Oberfläche: ein gaußsches Dichtefeld (Metaballs), das ein GLSL-Shader schwellwertet und daraus Normalen, Brechung, Glanzlichter und Fresnel direkt auf der GPU ableitet.

SPH
Metaballs
Three.js
GLSL
Echtzeit
Experiment starten

Geregelte Magnetschwebung

Eine Stahlkugel, die ein geregelter Elektromagnet in der Luft hält. Kp, Ki und Kd live einstellen, die Kugel anstoßen, ihre Masse ändern oder das Sensorsignal verrauschen, und die Sprungantwort beobachten: das System stabilisiert sich, schwingt … oder fällt ab.

Unter der Haube

Ein echtes Mechatronik-Problem: Die Strecke ist im offenen Kreis instabil (die Magnetkraft F = C·(i/x)² wächst, je näher die Kugel kommt). Die Simulation integriert m·ẍ = m·g − F mit 480 Hz, mit Spulenverzögerung erster Ordnung (L/R), Stromsättigung, Messrauschen und gefilterter Ableitung. Der PID-Regler arbeitet um den Gleichgewichtsstrom i_eq = x·√(mg/C), mit Anti-Windup durch Integral-Begrenzung. Die linearisierte Analyse (stabil gdw. Kp > i_eq/x₀ und Kd > 0) lässt sich mit den Voreinstellungen live nachprüfen.

PID
Elektromagnetismus
Regelungstechnik
Canvas 2D
Echtzeit
Experiment starten

Rayleigh-Bénard-Konvektion

Eine Fluidschicht, von unten geheizt und von oben gekühlt: Sie organisiert sich erst in Zellen, dann in turbulente Fahnen. Mit der Maus lokal heizen oder kühlen, Viskosität und Heizleistung verstellen, und den vom Strom mitgerissenen Staub verfolgen.

Unter der Haube

Zwei gekoppelte Lattice-Boltzmann-Gitter: D2Q9 für die Strömung (BGK-Kollision, haftende Wände oben/unten, periodische Ränder) und D2Q5 für die Temperatur (Advektion-Diffusion, Platten mit fester Temperatur). Die Boussinesq-Kopplung speist einen vertikalen Auftrieb gβ·(T−T₀) in das Kollisionsgleichgewicht ein: Jenseits der kritischen Schwelle wird die reine Wärmeleitung instabil und Konvektionszellen entstehen. Tracer werden per bilinearer Interpolation des Geschwindigkeitsfelds advektiert.

Lattice-Boltzmann
Thermik
Multiphysik
Canvas 2D
Echtzeit
Experiment starten

Masse-Feder-Tuch im Wind

Eine Fahne, die im turbulenten Wind knattert. Greifen Sie zu, ziehen Sie daran (zu stark, und sie reißt), stellen Sie Windstärke und -richtung, Schwerkraft und Steifigkeit ein … und umkreisen Sie die 3D-Szene.

Unter der Haube

Das Tuch ist ein Partikelgitter mit Abstandsbedingungen (Kette, Schuss, Scherung), integriert mit Verlet und projiziert im Stil von Position Based Dynamics. Der Wind übt auf jedes Dreieck eine aerodynamische Kraft F = n·(n·v_rel)·|v_rel|·k aus, wobei v_rel die Tuchgeschwindigkeit berücksichtigt, das Knattern der Fahne entsteht von selbst aus dieser Kopplung. Eine über die Schwelle gedehnte Bedingung reißt, die angrenzenden Dreiecke verschwinden: Risse breiten sich natürlich aus. Three.js-Rendering mit pro Bild neu berechneten Normalen.

Verlet
PBD
Aerodynamik
Three.js
Echtzeit
Experiment starten

Viertelfahrzeug-Federung

Ein Rad, eine Feder, ein Dämpfer und ein Viertel Karosserie auf einer vorbeiziehenden Straße. Steifigkeit und Dämpfung einstellen, den Belag wechseln, ein Schlagloch einwerfen und das Urteil ablesen: Filtert die Karosserie die Straße? Die Voreinstellung „toter Dämpfer“ lohnt sich.

Unter der Haube

Das klassische Viertelfahrzeugmodell mit 2 Freiheitsgraden: gefederte Masse (Karosserie) auf Feder ks + Dämpfer cs, ungefederte Masse (Rad) auf der Reifensteifigkeit kt, Gleichungen um das statische Gleichgewicht formuliert und semi-implizit mit 960 Hz integriert (der Reifen ist steif). Das Straßenprofil zieht mit der gewählten Geschwindigkeit unter dem Rad durch: sinusförmiges Kopfsteinpflaster, gefiltertes Value-Noise, gaußsche Bremsschwellen, Halbkosinus-Schlaglöcher. Kennwerte live: Eigenfrequenz f₀ = √(ks/ms)/2π, Dämpfungsgrad ζ = cs/2√(ks·ms), und RMS der Karosseriebeschleunigung als Komfortkriterium.

Fahrzeugdynamik
2 FG
Resonanz
Canvas 2D
Echtzeit
Experiment starten

Chaotisches Doppelpendel

Zwei gelenkig verbundene Stäbe, zusammen losgelassen, dazu ein Schwarm blasser Pendel, die haargenau daneben starten. Sie bleiben erst deckungsgleich und laufen dann schlagartig auseinander. Greifen Sie die Massen mit der Maus, ändern Sie Längen, Massen und Schwerkraft, verlangsamen Sie die Zeit.

Unter der Haube

Das Doppelpendel folgt seinen vollständigen Lagrange-Gleichungen, integriert mit einem Runge-Kutta-Verfahren vierter Ordnung bei 480 Hz. Ohne Reibung bleibt die Energie erhalten, was die Anzeige live prüft (nahezu keine Drift). Es ist ein nichtlineares Hamilton-System, deterministisch und doch chaotisch. Rund fünfzehn Kopien starten weniger als ein Tausendstel Radiant voneinander entfernt, und ihr Abstand wächst exponentiell, das Kennzeichen eines positiven Lyapunov-Exponenten. Der Graph unten zeichnet diesen Abstand in logarithmischem Maßstab, eine steigende Gerade, bis das Chaos alles dekorreliert hat.

Chaos
Lagrange
Runge-Kutta 4
Canvas 2D
Echtzeit
Experiment starten

Metronome, die sich synchronisieren

Fünf Metronome, in beliebigem Takt gestartet, auf einem Brett, das auf Rollen liegt. Ohne Zutun schlagen sie am Ende gemeinsam. Blockieren Sie das Brett, und sie werden wieder unabhängig, verstimmen Sie sie, und die Synchronisation bricht ab.

Unter der Haube

Jedes Metronom ist ein durch eine Hemmung angetriebenes Pendel, nach Pantaleone mit einem Van-der-Pol-Term modelliert, der die Amplitude des Tickens festlegt. Die einzige Kopplung läuft über das bewegliche Brett: Schiebt ein Pendel zur Seite, weicht das Brett zurück und zieht alle anderen mit. Die N Pendel und das Brett bilden ein Gleichungssystem, das explizit gelöst und dann mit Runge-Kutta 4 bei 480 Hz integriert wird. Aus beliebigen Phasen konvergiert das Ganze zu einem gemeinsamen Takt, gemessen vom Kuramoto-Ordnungsparameter r (von 0, Unordnung, bis 1, Synchronisation), live gezeichnet.

Synchronisation
Gekoppelte Oszillatoren
Van der Pol
Kuramoto
Canvas 2D
Experiment starten