Reality Fork : physique à partir d'une vidéo
Reality Fork suit un objet en mouvement image par image (Meta SAM 3.1), ajuste une loi de mouvement avec barres d'erreur, et permet de « forker » le mouvement sous des conditions physiques modifiées.
Quand l'utiliser
L'utilisateur a une vidéo (ou un identifiant d'extrait) et souhaite obtenir : la gravité, la vitesse ou l'angle de lancement, la traînée aérodynamique, le rebond d'une balle, la longueur ou la période d'un pendule, l'accélération sur une pente, ou « à quoi cela ressemblerait sur la Lune ». Également lorsque du code a besoin de constantes réelles mesurées à partir d'une séquence vidéo.
Comment l'appeler
Remplacez <DIR> par le répertoire reality-fork (le dossier contenant mcp/).
Outils MCP (si le serveur reality-fork est connecté) :
list_clips– identifiants des extraits et indication de leur analyse.analyze_video({path | clip_id, question?, live?})– titre, réponse, loi, mesures avec sigma, hypothèses, confiance.fork_motion({clip_id, g?, drag?, e?})– re-simulation : résumé, événements d'atterrissage/rebond, trajectoire tous les 0,1 s en mètres.export_measurements({clip_id})– JSON de la loi ajustée, paramètres, sigmas, échelle, plage d'images, fps.braking_fork({clip_id, hazard_distance_m = 20, speed_kmh?, react_s = 1.5, decel = 7})– pour un extrait d'une voiture traversant l'image : s'arrête-t-elle si quelqu'un se trouve à cette distance, de combien de mètres, ou à quelle vitesse a-t-elle l'impact ? À la fois la vitesse mesurée (avec sa barre d'erreur) etspeed_kmhsi fourni.speed_survey({clip_ids, limit_kmh = 30})– plusieurs extraits de voitures analysés : chaque vitesse en km/h avec sigma, la moyenne, le 85e percentile de vitesse avec son incertitude, la proportion dépassant la limite, et un résumé simple. Les extraits non-vehicules ou non analysés sont listés comme ignorés, avec la raison.
Shell (mêmes outils, JSON sur stdout ; à utiliser si MCP n'est pas disponible) :
node <DIR>/mcp/cli.mjs list
node <DIR>/mcp/cli.mjs analyze <chemin-video|clip_id> --question "quel est g ?"
node <DIR>/mcp/cli.mjs fork <clip_id> --g 1.62 # ou --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 # aussi --react 1.5 --decel 7
node <DIR>/mcp/cli.mjs survey <clip_id> <clip_id> ... --limit 30
Flux typique : analyze, puis export pour obtenir les chiffres, éventuellement fork. Insérez les valeurs exportées dans le code de l'utilisateur, avec leurs sigmas comme tolérances.
Voitures : freinage et relevés de vitesse
Utilisez braking_fork lorsque la question concerne la sécurité sur une route (« la voiture s'arrêterait-elle si un enfant surgissait à 20 m ? », « quelle différence fait 30 km/h ? ») et speed_survey lorsque quelqu'un a besoin de la vitesse du trafic pour une mairie ou une école : les municipalités agissent sur le 85e percentile de vitesse, la vitesse en dessous de laquelle roulent 85 % des conducteurs, et non la moyenne. Les deux nécessitent des extraits déjà analysés avec un ajustement à vitesse constante d'un objet se déplaçant latéralement dans l'image à plus de 2 m/s. Mentionnez toujours les hypothèses énoncées avec la réponse : 1,5 s de temps de perception-réaction et freinage intense à 7 m/s² sur asphalte sec sont des valeurs typiques, non mesurées ; modifiez react_s et decel pour un conducteur fatigué ou une route mouillée. La vitesse de chaque extrait dépend de l'échelle (la taille d'un objet connu, comme la longueur d'une voiture), donc mentionnez-le, et avec moins d'environ 20 extraits, considérez le 85e percentile comme une indication approximative.
Lecture des chiffres
- Chaque valeur comporte une erreur de 1 sigma.
sigmadans les mesures deanalyze_videoinclut déjà l'incertitude d'échelle ; dansexport_measurements, utilisezsigma_totalpour les affirmations sur le monde réel etsigma_fitpour le bruit d'ajustement uniquement. - Environ 68 % des répétitions devraient se situer à moins de 1 sigma, 95 % à moins de 2. Si un résultat est à moins de 2 sigma d'une valeur connue (g terrestre = 9,81), il est compatible ; ne surinterprétez pas une différence de 3 % quand sigma vaut 6 %.
- Vérifiez
confidenceetassumptions. Dites « mesuré 10,0 +/- 0,7 m/s^2 », jamais un chiffre nu. - Les résultats de fork sont des simulations à partir de la loi ajustée, pas de nouvelles mesures. Les temps sont en secondes depuis le début de la piste, les positions en mètres depuis le point de départ de l'ajustement, x vers la droite, y vers le haut.
Limites honnêtes
- Caméra fixe ; pas de panoramique ni de zoom.
- Mouvement approximativement dans un plan faisant face à la caméra (pas de changement de profondeur important).
- L'échelle provient d'un objet de taille connue dans le même plan (une balle de tennis, une personne) ; une hypothèse de taille erronée fausse toutes les longueurs et vitesses.
- Courts extraits : au maximum 20 s sont utilisées. La vidéo est normalisée en H.264 ; le timing des images est celui de l'horloge.
- Une nouvelle analyse (
live=true) appelle les modèles Meta, coûte quelques centimes de crédit API, et ne s'exécute que si le processus a été démarré avecRF_ALLOW_LIVE=1. Sinon, seuls les extraits déjà analysés sont disponibles. Ne l'activez jamais sans l'accord explicite de l'utilisateur.