Samstag, 7. November 2026

Valve SteamVR auf Linux geht nicht (KI)

Der Folgende Text habe ich von Claude zusammenfassen lassen, wie das Problem mit SteamVR auf Linux gelöst wurde. Anfang des Jahres dachte ich, dass SteamVR auf Linux nicht funktioniert und meinte nur ok, wird wohl nicht supportet. Die SteamVR Anwendung war gestartet aber kein Spiel ließ den Betrieb mit der Steam Index zu. 

Diese Woche dachte ich, ich versuche mit Claude Opus ein VR Spiel generieren, dass ich direkt mit der Steam Index betreibenben kann. Für die Machbarkeit stieß ich mit hilfe von Claude, dass ich die Einstellung für OpenXR festlegen sollte für die Steam Index und dies ginge nur über SteamVR in den Einstellungen. Und so folgt eins zum anderen.

Ausgangspunkt

Für mein VR-Projekt TerraIncognitaVR, das ich mit der Godot Engine entwickle, wollte ich meine Valve Index unter Linux in Betrieb nehmen. Ich nutze Pop!_OS 24.04 LTS mit der neuen COSMIC-Oberfläche. Unter Windows lief die Index bei mir problemlos, unter Linux startete SteamVR zwar, aber das gewohnte SteamVR-Fenster mit dem Status von Brille, Controllern und Base Stations erschien nicht. Ohne dieses Fenster fand ich auch die Einstellung nicht, mit der man SteamVR als OpenXR-Runtime festlegt. Godot braucht genau diese Runtime, um mit der Brille zu sprechen.

Dazu kam, dass auf meinem Rechner zwei Steam-Installationen lagen: die normale Version aus dem Paketsystem und eine Snap-Version. In beiden war SteamVR installiert. Es war also nicht einmal klar, welche Installation beim Start überhaupt verwendet wurde.

Prüfen

Zuerst habe ich herausgefunden, welche Steam-Programme installiert sind:

which -a steam

Das Ergebnis waren /usr/games/steam (die normale Version) und /snap/bin/steam (die Snap-Version). Die Snap-Version läuft in einer Sandbox und macht bei VR häufig Probleme, deshalb habe ich mich für die normale Installation entschieden. Wo SteamVR genau liegt, zeigte die Suche nach dem Startskript:

find ~ -name "vrstartup.sh" 2>/dev/null

SteamVR fand sich in beiden Installationen. Die normale lag nicht unter ~/.local/share/Steam, wie man es oft liest, sondern unter ~/.steam/debian-installation/.

Dann habe ich alle Steam-Instanzen beendet, nur die normale Version gestartet und SteamVR in einem zweiten Terminal direkt aufgerufen:

~/.steam/debian-installation/steamapps/common/SteamVR/bin/vrstartup.sh

So kam die entscheidende Fehlermeldung zum Vorschein, die beim Start aus Steam heraus unsichtbar bleibt:

This application failed to start because it could not find or load the Qt platform plugin "wayland;xcb".
Available platform plugins are: xcb.

Die Ursache: COSMIC setzt die Umgebungsvariable QT_QPA_PLATFORM auf wayland;xcb. Das heißt “erst Wayland versuchen, sonst X11”. Die Qt-Bibliothek, die SteamVR mitbringt, kennt aber nur xcb und kann mit dieser Angabe nichts anfangen. Das SteamVR-Fenster stürzte deshalb sofort beim Start ab.

Lösung

Der Test aus dem Terminal mit der passenden Variable brachte das SteamVR-Fenster sofort zum Vorschein:

QT_QPA_PLATFORM=xcb ~/.steam/debian-installation/steamapps/common/SteamVR/bin/vrstartup.sh

Damit es auch beim normalen Start aus Steam funktioniert, habe ich die Variable dauerhaft eingetragen. In der Steam-Bibliothek mit Rechtsklick auf SteamVR → Eigenschaften → Allgemein steht jetzt bei den Startoptionen:

QT_QPA_PLATFORM=xcb %command%

Seitdem startet SteamVR über den normalen Startknopf. Brille, Controller und Base Stations werden grün angezeigt. Im SteamVR-Fenster unter den Einstellungen (nach dem Einblenden der erweiterten Einstellungen) habe ich SteamVR als OpenXR-Runtime festgelegt. Ob das geklappt hat, zeigt dieser Befehl:

readlink -f ~/.config/openxr/1/active_runtime.json

Er muss auf die Datei steamxr_linux64.json in der normalen SteamVR-Installation zeigen, nicht in den Snap-Ordner.

Zum Schluss habe ich ein kleines Godot-Testprojekt gestartet, das den OpenXR-Status direkt in der Brille anzeigt. Der Boden erscheint, Kopf- und Handbewegungen werden genau übertragen, und jeder Tastendruck an den Controllern kommt an. Damit ist klar: Die Valve Index läuft unter Pop!_OS 24.04 mit SteamVR und Godot. Der Weg zum eigentlichen Prototyp ist frei.


Bild zu 3D Generieren (KI)

So ganz überzeugt mich das noch nicht. Bild Generieren sieht ja schon beeindruckend aus, aber Bild zu 3D Modelling führt nicht immer zu einem gewünschten Ergebnis. Hier gilt nicht nur viel Ausprobieren, sondern auch hier gilt die Prompts umfangreich zu beschreiben.

Für mein Spiel brauche ich ein paar mehr Modelle und will das Design mit Low-polygone beibehalten. Die Hauptkarte benötigt mehr Dinge, die auf der Karte plazierbar sind.

Bild zu 3D Modell

Zunächst ein Promp für eine Raumstation, die dem Stil vom Kenney Game Assets aufgreift. Das Folgende Bild habe ich als Referenz verwendet.

 

Generiere mir ein bitte ein Bild, dass dem Low Polygone Stil entspricht. Hier habe ich ein Bild von den Low Polygone Modellen dass als Referenz.

Passend zu dem Modell und den vorrigen Ergebnissen bräuchte ich ein Bild von einem Mutterschiff, dass zu den kleinen Raumschiffen passt. Bitte das Bild nur mit dem Mutterschiff und den Hintergrund einfach weis lassen.

An den Seiten sollen die Hanger Ein- und Ausgang sichtbar sein. Das Mutterschiff ist praktisch ein Trägerschiff für kleine Raumschiffe. Wenn du kannst, kombiniere die Art des Aufbau mit Wing Commander. 

Das hatte ich zuvor mit Gemini erzeugt und wie bereits im Ergebnis zu sehen ist, musste da was weg.

 

Nach einigen Anpassungen erhielt ich das gewünschte Bild, um später zwei passende Varianten des Schiffes zu generieren.

 


Text zu 3D Modell

Warum den Umweg, wenn man ein 3D Modell auch per Beschreibung generieren kann. Bilder generieren kostet nicht viel und vorab hilft ein Visueller Eindruck. Mit Tripo können Bilder generiert werden und das Limit von 100 kostenfreier Bildgenerierung ist  mich ausreichend. 

Mein erster Versuch war ein Tauchschiff zu beschreiben und hat zunächst nichts mit meinem Spiel Mondschürfer zu tun.

Erstelle mir noch ein 3D Modell von einem Schiff im Cyberpunk stil. Das Schiff ist tauchfähig und hat daher Scheinwerfer vorne  an oberen und unteren Bereichen. Die Länge des Schiff ist 120 Meter, 40 Meter breit und bis zu 40 Meter hoch. Am mittleren oberen Bereich ist eine Begehbare Plattform.
Im Vorderen Bereich soll das Sichtfenster ist von links nach rechts ausgebaut, so das der Blick auch nach rechts und links von der Brücke möglich ist. Das Vordere Fenster soll etwas Stromlinenförmiger sein. Jedoch soll das Fenster Segmentiert sein, weil die einzelnen  Fensterscheiben Gerade sind. Zudem ist vor dem Fenster einige Verstrebung, die Als schutzwirken sollen.
Die Farbe des Tauchschiffes soll weiß sein mit einem bord roten Streifen als Stil mittel. Vereinzelte Verzierungen sind in Silber.

 In meinem Kopf sah meine Vorstellung von einem Schiff das Tauchen kann anders aus.

 

Also Verwende ich nochmal den Prompt und gebe das erstmal in die Bildgeneriereung. Sieht mal wieder beeindruckend aus, auch wen ich da gerade Sateliten Schüsseln sehe, sieht das Bild von einem Tauchenden Schiff gut aus.

Also Versuche ich das Bild von dem Tauchschiff ein 3D Modell zu erstellen.

Hmm.. erinnert mich etwas an Star Wars Raumschiffe. Sieht jedoch nicht schlecht aus. Wirkt aber mehr nach einem Dinge U-Boot, als ein Tauchschiff.

Low-Polygone 

Kommen wir zu meinem eigentlichen Projekt zurück.

Verwende das Bild als Referenz um mir ein Bild zu generieren von einer Raumstation, dass zu den Modellen im Bild passen.

Das Bild das generiert wurde.

Die Einstellung für das Generieren des Modells.

Und dann ca. eine Minuten warten bis das Generieren des 3D Model fertig ist. So ganz zu frieden bin ich nicht. Die Station hat soviele Rundungen und hat nicht mehr den Scharm aus dem Bild.

 

 Am Wochenende werde ich da noch weitere Versuche starten.

Donnerstag, 5. November 2026

Mondschürfer - Git Repo Clonen

Statt das Git Repo als ZIP herunterladen, geht auch das git Repo klonen. Wenn eine neue Version verfügbar ist, braucht man am ende nur zwei Befehle, um die aktuelle Version bereit zu stellen. 

Erstmal durch das System Navigieren über Terminal. 

Terminal

Über das Terminal muss in das Ziel Verzeichnis gewechselt werden. Ggf. muss das Ziel Verzeichnis angelegt werden.

cd /pfad/zum/ziel

 Neuen Ordner anlegen.

mkdir meine_repos

Anschließend dann in das Verzeichnis welchsel mit.

cd meine_repos


Vorraussetzung ist eine installation von Git auf dem Zielsystem. 

Repository-URL kopieren

Zunächst den HTTPS Linke kopieren. 

 

Sind wir im Zielordner, kann das Repo geklont werden.

git clone <Kopierte-URL>

 Mit dem clonen des Repo, sollte ein neues Verszeichnis angelegt worden sein. 

cd mondschuerfer

  Zum Betrachten nach dem Ordner inhalt kann folgendes eingegeben werden:

dir
oder
ls 

Hier muss das Beispiel Konfigurationsdatei kopiert werden.

cp .env.example .env

Dann Anschließend in den neuen Ordner wechseln und die .env Datei bearbeiten.

sudo nano .env

Folgendes Beispiel Bild zeigt wie das Passwort eingetragen wird.  

Dann Speichern mit STRG+O und Schließen mit STRG+X.

Docker Compose einrichten 

Falls die Standard Ports 7777 für UDP und für die Webseite 8080

In meinem Fall muss ich für die Webseite einen anderen Port festlegen.

Ist das nun getätigt, kann der Docker-Container gebaut werden.

sudo docker compose up -d --build

Ist der Build erfolgreich durch gelaufen, sollte das Ergebnis am Ende wie in dem folgenden Bild aussehen.

Die Warnung ist immer noch da, kann aber Ignoriert werden.

 

Zukünftiges Aktualisieren mit zwei Befehlen

Wenn eine neue Version bereit gestellt wird, dann kann über den Ordner foglender Befehl eingegeben werden, um die Sourcen zu aktualisieren.

git pull

Anschließend dann zum neu Bauen 

sudo docker compose up -d --build

und warten bis der Vorgang abgeschlossen.

 

Mittwoch, 4. November 2026

Slop der Woche #01

 

Eines der Dinge dich schon immer machen wollte, aber keine Zeit dazu hatte war eine Webseite zu gestalten, die aussieht wie ein Betriebssystem. 

Für die Lösung habe ich als Vorlage CyberRe (https://www.gnome-look.org/p/1420727/) verwendet und als Github Page eingerichtet. Der Code wurde wieder mit Claude, allerdings mit dem KI Modell Sonnet 5.5.

Browser OS: https://codexzier.github.io/PersonalOperatingSystem/ 

Eigentlich fehlt noch ein Zeichenprogramm, Tabellenanwendung und ein Chat Fenster, den muss erst Verbinden muss.

Dienstag, 3. November 2026

Unreal Engine 5.8 unter Linux mit Claude Desktop verbinden (KI)

Für den Blogpost Einstellungen fehlt der Zusatz "KI Hinweis". Der Folgende Text ist die Zusammenfassung wie ich das Problem mit der Verbindung zwischen Unreal Engine und Claude Desktop gelöst habe.

Einleitung

Seit Unreal Engine 5.8 gibt es ein experimentelles MCP-Plugin, mit dem sich KI-Assistenten direkt mit dem Editor verbinden lassen. Ich wollte einfach ausprobieren, wie sich Unreal Engine zusammen mit Claude anfühlt. Mein Rechner läuft mit Pop!_OS, und ich nutze die vorkompilierte Linux-Version der Engine. Die Einrichtung war weniger geradlinig als gedacht, deshalb halte ich hier fest, was am Ende funktioniert hat.

Problem und Lösungsansatz

Das Plugin startet in Unreal einen MCP-Server, der lokal auf Port 8000 unter dem Pfad /mcp lauscht. Unreal kann dafür sogar eine Konfigurationsdatei für Claude erzeugen. Claude Desktop hat diese aber bei mir nicht akzeptiert, weil sie den Verbindungstyp „http“ verwendet. Die Lösung war eine kleine Brücke namens mcp-remote. Sie läuft als lokales Programm, das Claude Desktop starten kann, und leitet die Anfragen an den HTTP-Server von Unreal weiter. Dafür brauchte ich ein funktionierendes Node.js, und genau dort lagen die eigentlichen Stolperfallen.

Lösungsbeschreibung

1. Plugin aktivieren und Server starten

Im Unreal Editor unter Edit → Plugins das Plugin „Unreal MCP“ (intern ModelContextProtocol) aktivieren und den Editor neu starten. Falls Claude später keine Werkzeuge sieht, muss zusätzlich das Plugin „All Toolsets“ aktiv sein. Danach in der Editor-Konsole eingeben:

ModelContextProtocol.StartServer

Im Output Log erscheint dann die Meldung, dass der Server auf Port 8000 gestartet wurde.

2. Claude Desktop konfigurieren

In Claude Desktop unter Einstellungen → Developer → Edit Config die Datei claude_desktop_config.json öffnen (unter Linux liegt sie in ~/.config/Claude/) und diesen Block ergänzen:

json
"mcpServers": {
  "unreal-mcp": {
    "command": "npx",
    "args": ["-y", "mcp-remote", "http://127.0.0.1:8000/mcp"]
  }
},

3. Stolperfalle: Claude Desktop wirklich beenden

Das Fenster zu schließen reicht nicht. Die App läuft im Hintergrund weiter und liest die Konfiguration nur beim Start. Man muss sie über das Tray-Symbol komplett beenden und neu starten.

4. Stolperfalle: npx fehlt

Im Protokoll (~/.config/Claude/logs/mcp-server-unreal-mcp.log) stand „Failed to spawn process: No such file or directory“. Das Ubuntu-Paket nodejs enthält nur Node selbst, npm und npx sind ein separates Paket.

5. Stolperfalle: Node.js ist zu alt

Nach der Installation von npm kam der nächste Fehler: „File is not defined“. Die Node-Version aus den Ubuntu-Paketquellen (18.19.1) war zu alt für mcp-remote. Ich habe Node daher über NodeSource auf Version 24 aktualisiert: 

sudo apt purge -y nodejs npm
curl -fsSL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh
sudo -E bash nodesource_setup.sh
sudo apt install -y nodejs

Das NodeSource-Paket bringt npm und npx schon mit. Danach noch einmal Claude Desktop komplett beenden und neu starten, und unreal-mcp lief.

Tipp zur Fehlersuche: Die Zeitstempel in den Claude-Protokollen sind in UTC angegeben, in Deutschland also eine Stunde früher als die Uhrzeit auf dem Rechner.

Fazit

Am Ende ist die Verbindung unkompliziert, aber die Fallstricke liegen weniger bei Unreal als bei Node.js und beim Neustart von Claude Desktop. Das MCP-Plugin ist noch experimentell, es kann sich also noch ändern. Beim Start weist Unreal außerdem darauf hin, dass die Daten, die über das Plugin an den KI-Dienst gehen, „Licensed Technology“ im Sinne der Unreal-EULA sind. Man ist selbst dafür verantwortlich, dass der Anbieter sie nicht zum Training nutzt. Das sollte man vor dem Einsatz in größeren Projekten lesen. Als Nächstes probiere ich aus, was Claude im Editor alles erledigen kann.

Montag, 2. November 2026

Mondschürfer - Raumschiffe und Zombies

 

Passt das zu Weltraum, Raumschiffe und Raumstationen. Intergalaktische Viren wiederbeleben Tote Körper zum Leben und sammeln sich an den Kristallen. 

Klingt schon sehr weitgeholt und noch nicht originell. 

Ich probier selbstverständlich noch aus, was geht und was nicht geht.

Sonntag, 1. November 2026

Öffne das Sternentor (Mondschürfer)

Eine Idee die ich gerade erprobe. Ich weis nicht, ob das gut ist, ein Raumschiff Spiel noch einen Schooter hinzuzufügen. Statt nur auf der Mondoberfläche zu laufen, kann in der aktuellen Version auch durch Wälder und Dörfer spaziert werden mit einem Team, um Proben von den Kristallen zu holen. Später ist dies auch im Multiplayer und somit auch ein Coop Spiel.

 

Zugegeben, noch haut mich das Ergebnis nicht vom Hocker. Die Bewegung fühlen sich noch zu weich und nicht nach Action an. Aber ich bin dran und noch einige Pull Request liegen noch vor mir.

Valve SteamVR auf Linux geht nicht (KI)

Der Folgende Text habe ich von Claude zusammenfassen lassen, wie das Problem mit SteamVR auf Linux gelöst wurde. Anfang des Jahres dachte ic...