Communitygithub.com

nepython/reality-fork

Messen Sie die Bewegungsphysik in einem kurzen Video (Schwerkraft, Geschwindigkeit, Luftwiderstand, Sprungkraft, Pendellänge, Beschleunigung auf einer schiefen Ebene) mit Fehlerbalken und simulieren Sie die Bewegung unter anderen physikalischen Bedingungen neu (Mondschwerkraft, keine Luft, ein springenderer Ball). Anwendung, wenn der Nutzer ein Video von etwas Bewegtem hat und Zahlen für Code, eine Simulation oder die Überprüfung einer Behauptung benötigt.

Was ist reality-fork?

Reality Fork ist ein KI-Agenten-Skill, der die Physik von Bewegungen aus kurzen Videoclips extrahiert und neu simuliert. Es nutzt Meta SAM 3.1 zur Objektverfolgung, passt ein Bewegungsgesetz mit Fehlerbalken an und ermöglicht es, die Bewegung unter geänderten Bedingungen „abzugabeln“ (fork). Der Skill liefert präzise Messgrößen wie Schwerkraft, Geschwindigkeit, Luftwiderstand, Sprungkraft und Pendellänge – jede mit einer 1-Sigma-Unsicherheit. Unterstützt werden MCP-Tools (über einen verbundenen Server) und ein Kommandozeilen-Shell-Interface (CLI). Typische Anwendungsfälle sind die Analyse von Fahrzeuggeschwindigkeiten für Sicherheitsfragen (z.B. Bremsweg) oder Geschwindigkeitsumfragen für Behörden anhand des 85. Perzentils. Besonders wichtig: Die Skalierung erfolgt über ein Objekt bekannter Größe im Bild; die Analyse setzt eine ruhige Kamera und eine zum Sensor nahezu parallele Bewegungsebene voraus. Neue Live-Analysen verursachen API-Kosten und müssen explizit aktiviert werden. Die Ergebnisse eignen sich direkt zur Verwendung in Code als real gemessene Konstanten mit Toleranzen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nepython/reality-fork/tree/HEAD/mcp

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Reality Fork: Physik aus Videos

Reality Fork verfolgt ein sich bewegendes Objekt Bild für Bild (Meta SAM 3.1), passt ein Bewegungsgesetz mit Fehlerbalken an und kann die Bewegung unter geänderten physikalischen Bedingungen „abgabeln“ (fork).

Wann es verwendet wird

Der Nutzer hat ein Video (oder eine Beispiel-Clip-ID) und möchte: Schwerkraft, Startgeschwindigkeit oder -winkel, Luftwiderstand, Sprungkraft eines Balls, Länge oder Periode eines Pendels, Beschleunigung auf einer schiefen Ebene oder „Wie würde das auf dem Mond aussehen?“. Auch wenn Code reale, aus Aufnahmen gemessene Konstanten benötigt.

Wie man es aufruft

Ersetzen Sie <DIR> mit dem Reality-Fork-Verzeichnis (dem Ordner, der mcp/ enthält).

MCP-Tools (wenn der reality-fork-Server verbunden ist):

  • list_clips – Clip-IDs und ob diese analysiert wurden.
  • analyze_video({path | clip_id, question?, live?}) – Überschrift, Antwort, Gesetz, Messwerte mit Sigma, Annahmen, Konfidenz.
  • fork_motion({clip_id, g?, drag?, e?}) – Neusimulation: Zusammenfassung, Lande-/Aufprallereignisse, Pfad alle 0,1 s in Metern.
  • export_measurements({clip_id}) – JSON des angepassten Gesetzes, Parameter, Sigmas, Skalierung, Bildbereich, fps.
  • braking_fork({clip_id, hazard_distance_m = 20, speed_kmh?, react_s = 1.5, decel = 7}) – für einen Clip eines Autos, das durchs Bild fährt: Hält es an, wenn jemand in dieser Entfernung die Straße betritt? Um wie viele Meter? Oder mit welcher Geschwindigkeit trifft es auf? Sowohl die gemessene Geschwindigkeit (mit Fehlerbalken) als auch speed_kmh (falls angegeben).
  • speed_survey({clip_ids, limit_kmh = 30}) – mehrere analysierte Autoclips: jede Geschwindigkeit in km/h mit Sigma, der Mittelwert, das 85. Perzentil der Geschwindigkeit mit Unsicherheit, der Anteil über dem Limit, sowie eine klare Zusammenfassung. Nicht-Fahrzeug- oder nicht analysierte Clips werden als übersprungen aufgelistet, mit Begründung.

Shell (gleiche Tools, JSON auf stdout; verwenden Sie dies, wenn MCP nicht verfügbar ist):

node <DIR>/mcp/cli.mjs list
node <DIR>/mcp/cli.mjs analyze <video-pfad|clip_id> --question "was ist g?"
node <DIR>/mcp/cli.mjs fork <clip_id> --g 1.62        # oder --g moon, --drag none, --e 0.8
node <DIR>/mcp/cli.mjs export <clip_id>
node <DIR>/mcp/cli.mjs brake <clip_id> --distance 20 --speed 30   # auch --react 1.5 --decel 7
node <DIR>/mcp/cli.mjs survey <clip_id> <clip_id> ... --limit 30

Typischer Ablauf: analyze, dann export um Zahlen zu erhalten, optional fork. Setzen Sie die exportierten Werte mit ihren Sigmas als Toleranzen in den Code des Nutzers ein.

Autos: Bremsen und Geschwindigkeitsumfragen

Verwenden Sie braking_fork, wenn es um Sicherheit auf der Straße geht („Würde das Auto anhalten, wenn ein Kind 20 m vorher die Straße betritt?“, „Welchen Unterschied machen 30 km/h?“) und speed_survey, wenn jemand die Geschwindigkeit des Verkehrs für einen Gemeinderat oder eine Schule benötigt: Gemeinderäte handeln nach der 85. Perzentil-Geschwindigkeit, der Geschwindigkeit, die 85 % der Fahrer nicht überschreiten, nicht nach dem Durchschnitt. Beide benötigen bereits analysierte Clips mit einer konstanten Geschwindigkeitsanpassung von etwas, das sich seitlich mit über 2 m/s durch das Bild bewegt. Geben Sie immer die genannten Annahmen mit der Antwort an: 1,5 s Wahrnehmungs-Reaktionszeit und starkes Bremsen mit 7 m/s² auf trockenem Asphalt sind typische Werte, keine Messungen; ändern Sie react_s und decel für einen müden Fahrer oder eine nasse Straße. Jede Clip-Geschwindigkeit hängt von der Skalierung (der Größe eines bekannten Objekts wie der Länge eines Autos) ab, geben Sie dies an. Bei weniger als etwa 20 Clips behandeln Sie das 85. Perzentil als groben Richtwert.

Die Zahlen lesen

  • Jeder Wert hat einen 1-Sigma-Fehler. sigma in den Messungen von analyze_video enthält bereits die Skalierungsunsicherheit; in export_measurements verwenden Sie sigma_total für reale Behauptungen und sigma_fit für reines Rauschen der Anpassung.
  • Etwa 68 % der Wiederholungen sollten innerhalb von 1 Sigma liegen, 95 % innerhalb von 2. Liegt ein Ergebnis innerhalb von 2 Sigma eines bekannten Werts (Erde g = 9,81), stimmt es überein; lesen Sie einen Unterschied von 3 % nicht über, wenn Sigma 6 % beträgt.
  • Überprüfen Sie confidence und assumptions. Sagen Sie „gemessen 10,0 +/- 0,7 m/s^2“, niemals eine nackte Zahl.
  • Fork-Ergebnisse sind Simulationen basierend auf dem angepassten Gesetz, keine neuen Messungen. Zeiten sind Sekunden ab Track-Start, Positionen Meter ab Startpunkt der Anpassung, x rechts, y oben.

Ehrliche Grenzen

  • Starre Kamera; keine Schwenks oder Zooms.
  • Bewegung ungefähr in einer Ebene zur Kamera hin (keine starken Tiefenänderungen).
  • Die Skalierung stammt von einem Objekt bekannter Größe in derselben Ebene (ein Tennisball, eine Person); eine falsche Größenannahme skaliert alle Längen und Geschwindigkeiten.
  • Kurze Clips: maximal 20 s werden verwendet. Das Video ist H.264-normalisiert; der Bildzeitpunkt ist die Systemuhr.
  • Eine neue Analyse (live=true) ruft die Modelle von Meta auf, kostet einige Cent API-Guthaben und wird nur ausgeführt, wenn der Prozess mit RF_ALLOW_LIVE=1 gestartet wurde. Andernfalls stehen nur bereits analysierte Clips zur Verfügung. Aktivieren Sie dies niemals ohne Zustimmung des Nutzers.

Verwandte Skills