Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Idee BEPU Physics v2 als eigenständiges Physikmodul für OpenSim
#3
Huhu,

Ich hab mich mal etwas schlau gemacht:

Ein echter Pluspunkt von Bepu hier

Bepu ist reines Managed C#. BulletSim (libBulletSim.so) und ubODE (native ODE) brauchen dagegen pro Plattform eine native Lib – weshalb z.B. auf ARM64 beide eine fatale Exception werfen und man ohne Physik fahren muss. Ein Bepu-Plugin hätte dieses Problem gar nicht. Für Multi-Plattform/ARM ist das ein starkes Argument. Docker Hub
Aufwand – grob nach Bereichen
Ich gebe bewusst keine Stundenzahl, das wäre geraten. Aber die Arbeitspakete lassen sich benennen (nach Aufwand grob absteigend):

Vehicles – das dickste Brett. Das SL/OpenSim-Vehicle-Modell (Linear-/Angular-Motoren, Deflection, Banking, Buoyancy, Hover, Reference Frames) ist in BulletSim/ubODE fertig implementiert. Bepu gibt dir nur Constraints und Kräfte – das komplette Modell müsstest du selbst obendrauf bauen. Das ist der Bereich, wo „fühlt sich nicht an wie SL"-Beschwerden entstehen.

Avatar-Controller – Bepu hat keinen fertigen Character Controller, nur ein Demo-Beispiel. Das musst du adaptieren und tunen (Laufen, Fliegen, Bodenkontakt, Push).

Prim-Shapes / Meshing – Box/Sphere/Cylinder trivial; Sculpts und Mesh-Prims kommen über OpenSims IMesher als Dreiecksnetze/Convex Hulls. Für dynamische, nicht-konvexe Objekte brauchst du Convex-Decomposition (Bepu bringt das nicht mit) und Compound-Shapes.

Terrain – Bullet nutzt ein Heightfield; Bepu hat keine Heightfield-Primitive, du baust aus SetTerrain(float[]) ein Mesh. Machbar, etwas mehr Speicher.

Collision-Events – collision_start/collision/collision_end inkl. Paar-Reporting musst du aus Bepus NarrowPhase-Callbacks selbst aggregieren.

Stepping/Threading – OpenSim ruft Simulate(dt) im Region-Heartbeat; Bepus IThreadDispatcher sauber mit OpenSims Threadpool zu verheiraten braucht Sorgfalt, ist aber Standard.

Kräfte/Params – Buoyancy, llPushObject, Friction/Restitution/Density: über Impulse und Pose-Integrator-Callbacks gut abbildbar.

Ein Prototyp „Avatare + statische/dynamische Prims + Terrain-Kollision" ist relativ schnell machbar; Parität zu BulletSim (insb. Vehicles und volle LSL-Physik-Parameter) ist ein Projekt über viele Monate für eine erfahrene Person. BulletSim ist selbst eine große, gereifte Codebasis – das ist die Messlatte.

Als Referenz/Template: Es gibt eine ausgereifte Bepu-v2-Integration in die Stride-Engine (Nicogo1705/Stride.BepuPhysics), die genau die Bausteine liefert, die dir fehlen – Character-/Car-Controller, Mesh-/ConvexHull-Collider, Trigger, RayCast/SweepCast. Nicht direkt übertragbar, aber sehr nützlich als Vorlage für Character- und Vehicle-Logik. GitHub

Kein absoluter Showstopper, aber Risiken:

Verhaltensparität: Bepus Solver verhält sich anders als Bullet/ODE; für eine Engine getunter Content wird sich anders anfühlen. OpenSim kennt das Problem aber schon zwischen Bullet und ubODE.

Determinismus: Bepu v2 (float) ist nicht garantiert cross-platform-deterministisch. Für server-autoritative Single-Node-Regionen egal – nur relevant, falls du irgendwo auf reproduzierbare Physik über Maschinen hinweg baust.

Maintenance: Bepu ist im Kern ein Ein-Personen-Projekt (Apache-2.0, stabil, aber Bus-Faktor beachten).

Wo ich ehrlich unsicher bin und du prüfen solltest:


Ob schon jemand ein Bepu-Plugin für OpenSim angefangen hat – ich habe in der Suche nichts gefunden, kann es aber nicht ausschließen. Würde ich vor Projektstart gezielt suchen (OpenSim-Foren/Mantis, GitHub).

Die exakten Interface-/Namespace-Namen im .NET-8-Branch – die wurden über die Versionen umbenannt; die Struktur (PhysicsScene/PhysicsActor, AddAvatar, SetTerrain, Tainting, IsThreaded/GetResults) stimmt, die genauen Namespaces solltest du am aktuellen Quellcode verifizieren.

Eine belastbare Stunden-/Personenmonat-Schätzung – die hängt völlig davon ab, ob du volle Vehicle-Parität brauchst oder ein schlankeres Plugin reicht.


Was mich natürlich sofort positiv triggert ist die Tatsache, dass es eine native Lib ist und sogar gut performt.

Okay, Vehicles sind nicht mein Ding. Wie gross müsste eine Var-Region sein um beispielsweise den Nürnburgring nachzubauen?
Wir kennen es aus diversen Threads in diesem Forum in denen es um Simulationen von Fahr- und Flugzeugen geht, sei es terrestrisch oder extra-terrestrisch. Dagegen hat OpenSim und auch Second-Life nichts zu bieten und Simulator-Fans sind auch nicht die Zielgruppe von den beiden.

Die anderen Aspekte wie Avatar-Controller, Shapes und Meshes. Terrain und collisions sind schon kritischer.

Ich denke, auf dem Radar behalten.
Referenzen von Games welche diese Engine schon verwenden.
und evtl mal einen Proof of Consept machen.

Liebe Grüsse
Akira
[Bild: footert5jul.jpg]
Zitieren


Nachrichten in diesem Thema
RE: BEPU Physics - von Bogus Curry - 06.07.2026, 13:01
RE: Idee BEPU Physics v2 als eigenständiges Physikmodul für OpenSim - von Akira - 06.07.2026, 19:02

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  OpenSim Addon-modules Manfred Aabye 0 160 10.08.2026, 13:55
Letzter Beitrag: Manfred Aabye
  Server-Tutorial: Linux und OpenSim Mareta Dagostino 62 121.906 05.04.2026, 11:12
Letzter Beitrag: Pius Noel
  OpenSim Currency Server 2025 Manfred Aabye 13 5.758 31.01.2026, 16:50
Letzter Beitrag: Manfred Aabye
  Anfänger-Anleitung OpenSim Terrain Manfred Aabye 0 937 20.12.2025, 11:56
Letzter Beitrag: Manfred Aabye
  OpenSim (O)RM Map Generator Manfred Aabye 6 2.488 04.12.2025, 09:58
Letzter Beitrag: Alter Kater

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste