Jolt Physics in Evergine

Der erste Schritt zu industrieller Simulation und Physical AI

Ein Gabelstapler transportiert eine Palette durch ein Lager, simuliert mit Jolt Physics in Evergine

Evergine wurde für die Entwicklung industrieller 3D-Anwendungen geschaffen: digitale Zwillinge, Schulungstools und Prozessvisualisierungen, die auf dem Desktop, im Web, auf Mobilgeräten und in XR laufen. Immer häufiger sollen diese Anwendungen Dinge nicht nur zeigen, sondern auch simulieren, wie sie sich verhalten. Damit sie dabei nützlich sind, muss die Physik glaubwürdig sein.

Deshalb haben wir die Physik von Evergine auf Basis von Jolt Physics neu aufgebaut, einer modernen, mehrkernfähigen Physik-Engine. Sie ersetzt Bullet, das uns jahrelang gute Dienste geleistet hat, und ist der erste Schritt einer Roadmap, die Evergine zu einer noch stärkeren Simulationsplattform machen soll: Als Nächstes folgt MuJoCo, das die Engine für Physical AI leistungsfähiger machen wird.

Kurz zusammengefasst:

In diesem Artikel

Warum Simulation wichtig ist

In der Industrie sind Veränderungen in der realen Welt teuer. Ein Lager umzugestalten, eine neue Produktionslinie in Betrieb zu nehmen oder einen Bediener an einer schweren Maschine zu schulen, kostet Zeit, Geld und mitunter Sicherheit. Mit Simulation erledigen Sie das zuerst in einer virtuellen Kopie, in der Fehler nichts kosten:

All das hängt von derselben Sache ab: Wenn etwas geschoben, angehoben, fallen gelassen oder gefahren wird, muss es so reagieren, wie es das in der Realität täte. Ist die Physik nicht glaubwürdig, taugt die Simulation nicht als Entscheidungsgrundlage.

Wohin wir gehen

Bessere Physik in Evergine ist kein einmaliges Feature. Es ist eine Roadmap mit zwei Schritten, und beide weisen in dieselbe Richtung: Physical AI.

Diagramm: Jolt Physics und MuJoCo, zwei Schritte, die Evergine für Physical AI stärken

  1. Jolt Physics, ab sofort verfügbar. Eine schnelle und stabile Echtzeit-Engine für interaktive Industrieszenen auf allen von Evergine unterstützten Plattformen.
  2. MuJoCo, in Arbeit. Die Referenz-Engine der Robotikforschung, um Roboter mit ihren realen Gelenken, Aktuatoren und Kontakten zu simulieren.

Physical AI, also KI, die die physische Welt wahrnimmt und darin handelt, ist heute eines der gefragtesten Felder und stützt sich auf Simulation, um ihre Systeme zu trainieren und zu validieren. Jeder Schritt dieser Roadmap macht Evergine dafür leistungsfähiger.

In diesem Artikel geht es um Jolt. Auf MuJoCo kommen wir am Ende zurück.

Warum Jolt

Logo von Jolt Physics

Jolt Physics ist eine Open-Source-Physik-Engine, die von Jorrit Rouwe entwickelt und unter der freizügigen MIT-Lizenz veröffentlicht wurde. Sie wurde von Anfang an für moderne Mehrkern-CPUs konzipiert, hat eine große und sehr aktive Community und hat sich in anspruchsvollen, namhaften kommerziellen Produktionen bewährt. Ihr Quellcode und ihre Architekturdokumentation sind offen, sodass wir genau wissen, was der Solver tut.

Bullet war jahrelang die Physik-Engine von Evergine und ist nach wie vor eine angesehene Bibliothek. Seine Entwicklung hat sich jedoch verlangsamt (das letzte Release, 3.25, stammt aus dem Jahr 2022), während Jolt aktiv weiterentwickelt wird und laufend neue Funktionen erhält. Für uns ging es beim Wechsel um die Zukunft: die Engine zu wählen, mit der wir wachsen wollen.

Das ändert sich für Evergine-Entwickler:

Bullet (bisher)Jolt (jetzt)
PaketEvergine.Bullet, separat installiertIn Evergine.Framework integriert
MehrkernDer Simulationsschritt lief in einem einzigen ThreadDer Simulationsschritt wird auf mehrere CPU-Kerne verteilt
DeterminismusNicht garantiertOptional: Dieselbe Szene liefert jedes Mal dasselbe Ergebnis
FahrzeugeRadfahrzeugeRad- und Kettenfahrzeuge mit Motor und Getriebe
CharaktereKinematischer Character ControllerSteigt Stufen hinauf, fährt auf beweglichen Plattformen mit und schiebt Objekte
Soft BodiesNicht verfügbarStoff sowie druckbeaufschlagte und volumetrische Soft Bodies
EntwicklungLetztes Release 2022Aktiv weiterentwickelt

Schnellere, reaktionsfreudigere Anwendungen

Physik dient in Evergine nicht nur der Simulation von Maschinen. Die meisten interaktiven Anwendungen sind in jedem Frame darauf angewiesen, oft ohne dass es jemand bemerkt: Collider teilen der Anwendung mit, worauf der Benutzer zeigt, Raycasts wählen Objekte aus, und Kollisionsereignisse lösen Aktionen aus. Das gilt für XR-Anwendungen, in denen Hände und Controller Schaltflächen drücken, Objekte greifen und durch Menüs navigieren, ebenso wie für Desktop-Anwendungen, in denen Benutzer 3D-Modelle auswählen und bearbeiten.

Mit Jolt ist all das schneller und reaktionsfreudiger. Kollisionserkennung und Raycasts benötigen weniger Zeit, Kontakte sind stabiler, und die Arbeit wird auf mehrere CPU-Kerne verteilt, sodass Interaktionen auch in Szenen mit vielen Objekten sofort reagieren. Anwendungen, die mit Evergine MRTK, unserem Mixed Reality Toolkit, erstellt wurden, profitieren direkt: Seine Schaltflächen, Schieberegler, Menüs und Handinteraktionen basieren alle auf Collidern und reagieren jetzt schneller und flüssiger.

Das neue Physik-Beispiel

Um die neue Physik in einem industriellen Umfeld zu zeigen, haben wir ein neues Beispiel erstellt: einen Gabelstapler in einem Lager, der eine Palette aus einem Regal aufnimmt und transportiert.

Das neue Physik-Beispiel, erstellt mit Evergine und Jolt Physics

Die Szene verwendet simulationsfähige Assets mit realen Maßstäben und Massen. Der Gabelstapler ist ein 3,4-Tonnen-Fahrzeug mit Motor und realer Lenkung, Hubmast und Gabeln werden von Motoren angetrieben, und Paletten und Kisten wiegen so viel wie in einem echten Lager. Am Tor hängt ein flexibler Streifenvorhang. Die gesamte Physik wird in Evergine Studio eingerichtet, ganz ohne Physik-Code.

Der Blick vom Fahrersitz auf die Regale

Die Fahrerkamera. Regale, Paletten und Kisten sind allesamt Teil der Simulation

Sie können es im Browser ausprobieren und den Quellcode auf GitHub durchsehen. Die 3D-Modelle stammen von NVIDIA SimReady und stehen unter der Lizenz CC BY 4.0.

Neues in der Physik von Evergine

Über den Wechsel der Engine hinaus wurde die Physik-API mit einfacheren Namen neu gestaltet, und es gibt deutlich mehr zu simulieren. Hier die Highlights.

Fahrzeuge

Ein Fahrzeug ist ein einzelner Körper mit einem Controller: Motor, Getriebe, Lenkung, Bremsen und eine Federung pro Rad. Das hält es auch bei hoher Geschwindigkeit stabil und günstig zu simulieren. Neben Radfahrzeugen gibt es jetzt auch einen Controller für Kettenfahrzeuge wie Planierraupen und Bagger.

Ein Kettenfahrzeug, neu in diesem Release

Charaktere und Ragdolls

Der neue Character Controller steigt Stufen hinauf, folgt Steigungen, fährt auf beweglichen Plattformen mit und schiebt die Objekte, gegen die er läuft. Genau das, was Sie für einen Rundgang durch ein Werk oder für eine Person in einem Schulungsszenario benötigen.

Der Character Controller beim Treppensteigen

Mit Ragdolls kann die Simulation die Kontrolle über eine Figur übernehmen. Ein Charakter kann sich gemäß seiner Animation bewegen und jederzeit fallen und physikalisch reagieren, wobei er seinen bisherigen Schwung beibehält.

Eine Figur wechselt von ihrer Animation zur Ragdoll

Soft Bodies und Stoff

Soft Bodies sind völlig neu. Stoff fällt und legt sich in Falten, ein Ballon wird beim Aufprall gestaucht, und ein Kissen gibt nach und federt zurück. Jedes Mesh kann zu einem Soft Body werden, und Teile davon lassen sich an Ort und Stelle oder an einem anderen Objekt fixieren, etwa ein Banner an einer Stange oder der Streifenvorhang im neuen Physik-Beispiel.

Stoff sowie druckbeaufschlagte und volumetrische Soft Bodies

In Studio gestaltet

All das lässt sich in Evergine Studio im Inspector einrichten und mit dem Play Mode testen, ohne den Editor zu verlassen. Mehr dazu erfahren Sie in Neuigkeiten in Evergine Studio. Wenn sich etwas nicht wie erwartet verhält, zeichnet das Debug-Rendering die Physikformen und Gelenke über die Szene.

Erste Schritte

Die Physik befindet sich im Namespace Evergine.Framework.Physics. Registrieren Sie einen PhysicsManager in Ihrer Szene und fügen Sie dann einer beliebigen Entität einen Körper und einen Collider hinzu:

using Evergine.Framework.Physics;

public class MyScene : Scene
{
    public override void RegisterManagers()
    {
        base.RegisterManagers();

        // One physics world per scene
        this.Managers.AddManager(new PhysicsManager());
    }

    protected override void CreateScene()
    {
        // A 20 kg box that falls and collides (add a mesh and a material to see it)
        var box = new Entity("box")
            .AddComponent(new Transform3D() { Position = new Vector3(0f, 3f, 0f) })
            .AddComponent(new RigidBody() { Mass = 20f })
            .AddComponent(new BoxCollider());

        this.Managers.EntityManager.Add(box);
    }
}

Der Physikabschnitt der Evergine-Dokumentation behandelt jede Komponente ausführlich, mit Videos und Beispielen.

Umstieg von Bullet

Wenn Ihr Projekt die bisherige Physik verwendet, muss es migriert werden. Das Paket Evergine.Bullet wird nicht mehr benötigt, und jede Komponente hat einen neuen Namen: RigidBody3D heißt jetzt RigidBody, BoxCollider3D heißt jetzt BoxCollider, HingeJoint3D heißt jetzt HingeConstraint und so weiter.

Für den mechanischen Teil der Arbeit haben wir ein Migrationstool entwickelt, das C#-Code, Projektdateien, Szenen und Prefabs aktualisiert. Es läuft standardmäßig als Probelauf, erstellt eine Sicherung jeder geänderten Datei und meldet alles, was eine menschliche Entscheidung erfordert. Der Leitfaden Migrating from Bullet im Physikabschnitt der Evergine-Dokumentation enthält die vollständige Liste der Entsprechungen und das empfohlene Vorgehen.

Wie es weitergeht: MuJoCo und Physical AI

Jolt verschafft Evergine ein solides Echtzeit-Fundament. Der nächste Schritt, an dem wir bereits arbeiten, ist die Integration von MuJoCo.

Logo von MuJoCo

MuJoCo, kurz für Multi-Joint dynamics with Contact, ist eine Physik-Engine, die für die Forschung in Robotik, Biomechanik und maschinellem Lernen entwickelt wurde. Sie wird seit 2021 von Google DeepMind gepflegt und ist seit 2022 unter der Apache-2.0-Lizenz Open Source. MuJoCo beschreibt einen Roboter direkt über seine Gelenke, sodass ein Arm nicht auseinanderdriften kann und seine Dynamik präzise berechnet wird. Ein Roboter wird in einer Modelldatei mit den Massen, Trägheiten, Gelenkgrenzen und Aktuatoren der realen Hardware definiert, und ein großer Katalog realer Roboter ist bereits in diesem Format verfügbar. Deshalb hat sich MuJoCo zu einem der Standardsimulatoren in der Robotikforschung entwickelt.

Mit MuJoCo in Evergine können Sie ein reales Robotermodell in eine Industrieszene setzen und sehen, wie es sich wie das reale bewegt – gerendert mit Evergine auf jeder Plattform.

Mit MuJoCo wird die Engine von Evergine noch leistungsfähiger für Physical AI: KI-Systeme, die die physische Welt wahrnehmen, verstehen und darin handeln – von Roboterarmen und autonomen mobilen Robotern bis zu selbstfahrenden Gabelstaplern. Es ist heute eines der gefragtesten und am schnellsten wachsenden Felder. Diese Systeme werden lange vor ihrem Einsatz in der Simulation trainiert und validiert, denn ein Simulator kann Tausende von Szenarien sicher und deutlich schneller als die Realität durchspielen. Dafür brauchen sie eine Physik, der sie vertrauen können, und Umgebungen, die wie die realen aussehen. Glaubwürdige Industrieszenen mit Jolt, präzise Roboter mit MuJoCo und das Rendering von Evergine auf jedem Gerät sind genau das.

Probieren Sie es aus und sagen Sie uns Ihre Meinung

Jolt Physics ist Teil des Evergine-Releases vom November 2026. Aktualisieren Sie Evergine, öffnen Sie eine Szene und geben Sie ihr etwas zum Schieben, Heben und Tragen.

Wir sind gespannt, was Sie damit entwickeln, und darauf, welche Simulationen Sie als Nächstes umsetzen möchten.

David Ávila
Autor
David Ávila
Plain Concepts Research