Communitygithub.com

Reality Fork

Meça a física do movimento em um vídeo curto (gravidade, velocidade, arrasto, elasticidade, comprimento de pêndulo, aceleração em rampa) com barras de erro e, em seguida, re-simule sob outras condições físicas (gravidade lunar, sem ar, bola mais elástica). Use quando o usuário tiver um vídeo de algo em movimento e precisar de números para código, simulação ou verificação de uma afirmação.

O que é Reality Fork?

Reality Fork é uma ferramenta especializada que analisa vídeos curtos para extrair parâmetros físicos de movimento, como gravidade, velocidade, arrasto, elasticidade, comprimento de pêndulo e aceleração em rampas, fornecendo resultados com barras de erro (1 sigma). Ela utiliza o modelo Meta SAM 3.1 para rastrear objetos quadro a quadro e ajustar uma lei de movimento, permitindo que o usuário "fork" a simulação sob condições físicas alteradas — por exemplo, gravidade lunar, ausência de ar ou maior elasticidade. A ferramenta é especialmente útil para desenvolvedores que precisam de constantes reais medidas a partir de vídeos para alimentar simulações, códigos ou verificar alegações científicas. Além disso, inclui recursos específicos para análise de tráfego veicular, como `braking_fork` (distância de frenagem) e `speed_survey` (levantamento de velocidades), que fornecem métricas como a velocidade no 85º percentil, crucial para estudos de segurança viária. Reality Fork pode ser usado tanto via ferramentas MCP quanto via linha de comando, e respeita limites honestos: câmera parada sem movimento de pan ou zoom, movimento aproximadamente em um plano, e escala baseada em um objeto de tamanho conhecido no mesmo plano.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Reality Fork: física a partir de vídeo

O Reality Fork rastreia um objeto em movimento quadro a quadro (Meta SAM 3.1), ajusta uma lei de movimento com barras de erro e pode "forkar" o movimento sob condições físicas alteradas.

Quando usar

O usuário tem um vídeo (ou um ID de clipe de amostra) e deseja: gravidade, velocidade ou ângulo de lançamento, arrasto do ar, elasticidade de uma bola, comprimento ou período de um pêndulo, aceleração em uma rampa, ou "como isso seria na Lua". Também quando o código precisa de constantes reais medidas a partir de imagens.

Como chamar

Substitua <DIR> pelo diretório do reality-fork (a pasta que contém mcp/).

Ferramentas MCP (se o servidor reality-fork estiver conectado):

  • list_clips - IDs dos clipes e se cada um está analisado.
  • analyze_video({path | clip_id, question?, live?}) - título, resposta, lei, medidas com sigma, suposições, confiança.
  • fork_motion({clip_id, g?, drag?, e?}) - re-simulação: resumo, eventos de pouso/quique, trajetória a cada 0,1 s em metros.
  • export_measurements({clip_id}) - JSON da lei ajustada, parâmetros, sigmas, escala, intervalo de quadros, fps.
  • braking_fork({clip_id, hazard_distance_m = 20, speed_kmh?, react_s = 1.5, decel = 7}) - para um clipe de um carro atravessando o quadro: ele para se alguém sair a essa distância, por quantos metros, ou a que velocidade ele atinge? Tanto a velocidade medida (com sua barra de erro) quanto speed_kmh, se fornecido.
  • speed_survey({clip_ids, limit_kmh = 30}) - vários clipes de carros analisados: cada velocidade em km/h com sigma, a média, a velocidade no 85º percentil com incerteza, a proporção acima do limite e um resumo simples. Clipes não veiculares ou não analisados são listados como ignorados, com o motivo.

Linha de comando (mesmas ferramentas, JSON na saída padrão; use isso se o MCP não estiver disponível):

node <DIR>/mcp/cli.mjs list
node <DIR>/mcp/cli.mjs analyze <caminho-do-video|clip_id> --question "qual é 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   # também --react 1.5 --decel 7
node <DIR>/mcp/cli.mjs survey <clip_id> <clip_id> ... --limit 30

Fluxo típico: analyze, depois export para obter números, opcionalmente fork. Coloque os valores exportados no código do usuário, com seus sigmas como tolerâncias.

Carros: frenagem e levantamentos de velocidade

Use braking_fork quando a pergunta for sobre segurança em uma rua ("o carro pararia se uma criança saísse 20 m à frente?", "que diferença faz 30 km/h?") e speed_survey quando alguém precisar da velocidade do tráfego para um conselho ou escola: conselhos agem com base na velocidade do 85º percentil, a velocidade que 85% dos motoristas não ultrapassam, não a média. Ambos precisam de clipes já analisados com um ajuste de velocidade constante de algo se movendo lateralmente pelo quadro a mais de 2 m/s. Sempre cite as suposições declaradas junto com a resposta: 1,5 s de tempo de percepção-reação e frenagem forte a 7 m/s² em asfalto seco são valores típicos, não medições; altere react_s e decel para um motorista cansado ou pista molhada. A velocidade de cada clipe depende da escala (o tamanho de um objeto conhecido, como o comprimento de um carro), então diga isso, e com menos de cerca de 20 clipes considere o 85º percentil como um guia aproximado.

Lendo os números

  • Cada valor tem um erro de 1 sigma. sigma nas medições de analyze_video já inclui a incerteza da escala; em export_measurements use sigma_total para afirmações do mundo real e sigma_fit apenas para ruído do ajuste.
  • Cerca de 68% das repetições devem estar dentro de 1 sigma, 95% dentro de 2. Se um resultado estiver dentro de 2 sigma de um valor conhecido (g da Terra = 9,81), ele concorda; não interprete demais uma diferença de 3% quando sigma é 6%.
  • Verifique confidence e assumptions. Diga "medido 10,0 +/- 0,7 m/s^2", nunca um número simples.
  • Resultados de fork são simulações a partir da lei ajustada, não novas medições. Os tempos são segundos a partir do início da trajetória, as posições são metros a partir do ponto inicial do ajuste, x para a direita, y para cima.

Limites honestos

  • Câmera parada; sem movimento de pan ou zoom.
  • Movimento aproximadamente em um plano voltado para a câmera (sem mudança forte de profundidade).
  • A escala vem de um objeto de tamanho conhecido no mesmo plano (uma bola de tênis, uma pessoa); uma suposição de tamanho errada escala todo comprimento e velocidade.
  • Clipes curtos: no máximo 20 s são usados. O vídeo é normalizado em H.264; o tempo dos quadros é o relógio.
  • Uma nova análise (live=true) chama os modelos da Meta, custa alguns centavos de crédito de API e só é executada se o processo foi iniciado com RF_ALLOW_LIVE=1. Caso contrário, apenas clipes já analisados estão disponíveis. Nunca ative isso sem a autorização do usuário.

Habilidades Relacionadas