NVIDIA AI presenta SpatialClaw: un agente sin capacitación que trata el código como la interfaz de acción para el razonamiento espacial

NVIDIA Research ha lanzado SpatialClaw, un marco sin formación para el razonamiento espacial. Se dirige a una debilidad persistente en los modelos de visión y lenguaje (VLM). Estos modelos todavía tienen dificultades para juzgar dónde están los objetos, cómo se relacionan y cómo se mueven en 3D.

SpatialClaw no vuelve a entrenar el modelo. En cambio, cambia la interfaz de acción que utiliza el agente para llamar a las herramientas de percepción. El equipo de investigación sostiene que la interfaz es el cuello de botella. Su solución es tratar el código como la interfaz de acción. En 20 puntos de referencia, SpatialClaw alcanza una precisión promedio del 59,9%. Supera al reciente agente espacial SpaceTools en 11,2 puntos.

¿Qué es SpatialClaw?

SpatialClaw es un bucle de agente envuelto alrededor de un kernel de Python con estado. El kernel está precargado con marcos de entrada y un conjunto de primitivas. Las herramientas de percepción son simples llamadas de Python. Sus resultados, incluidas máscaras, mapas de profundidad, geometría de cámara y trayectorias, son variables ordinarias de Python.

El núcleo expone seis puntos de entrada públicos. InputImages contiene los fotogramas muestreados. Los metadatos transportan velocidad de fotogramas, duración e índices de fotogramas. herramientas expone las primitivas de percepción y geometría. show() incrusta una imagen en el siguiente contexto del agente. vlm envía consultas a una sesión de VLM separada. ReturnAnswer() envía la respuesta final.

Dos herramientas de percepción son fundamentales. tools.Reconstruct envuelve Depth Anything 3 y devuelve profundidad por cuadro, intrínsecos de cámara, extrínsecos y mapas de puntos densos. tools.SAM3 envuelve SAM 3 y produce máscaras de imagen o video a partir de mensajes de texto, puntos o cuadros. El marco agrega utilidades livianas: herramientas.Geometría, herramientas.Máscara, herramientas.Tiempo, herramientas.Gráfico y herramientas.Dibujo.

Es libre de entrenamiento. El mismo indicador del sistema, conjunto de herramientas e hiperparámetros se ejecutan en cada punto de referencia y columna vertebral.

https://spatialclaw.github.io/static/pdfs/spatialclaw.pdf

Por qué es importante la interfaz de acción

El equipo de investigación estudió tres interfaces de acción sobre la misma pregunta. Considere medir la distancia más cercana entre un calentador y una puerta.

El código de un solo paso escribe un programa completo y lo ejecuta una vez. Se compromete a seguir una estrategia completa antes de ver cualquier máscara intermedia o mapa de profundidad. Una suposición errónea se propaga directamente a la respuesta. La llamada de herramienta estructurada invoca herramientas con nombre a través de un esquema JSON fijo. No puede combinar libremente resultados con NumPy o SciPy para expresar cálculos en tiempo de prueba. La operación del punto más cercano no tiene una herramienta registrada previamente, por lo que el resultado es incorrecto. SpatialClaw compone herramientas en código, inspecciona los resultados y luego las revisa. Primero calcula la distancia del centroide y luego observa que el centroide usa una mediana. El agente cambia a scipy.spatial.KDTree para encontrar el verdadero punto más cercano. Presenta 0,9439 m contra un terreno de 0,9 m.

Punto de referencia

SpatialClaw se probó en 20 puntos de referencia en cinco categorías. Estos abarcan comprensión de una sola imagen, múltiples vistas, general, video y 4D, y video general. Mejora con respecto a la línea base sin herramientas en las seis redes troncales probadas. Las redes troncales varían entre parámetros 26B y 397B en las familias Qwen3.5/3.6 y Gemma4.

Una comparación controlada aísla la interfaz. Las tres variantes comparten el mismo conjunto de herramientas y mensaje. Sólo difiere la interfaz de acción.

Interfaz de acciónPromedio. (banco 20.)Δ frente a sin herramientaLínea base sin herramienta53.4–Código de un solo paso55.2+1.8Llamada de herramienta estructurada56.7+3.3SpatialClaw (código como acción)59.9+6.5

Columna vertebral Gemma4-31B, promedio de 20 puntos de referencia.

Contra agentes espaciales anteriores en la misma columna vertebral Gemma4-31B, la brecha se amplía.

MethodInterfaceAvg.Δ vs SpatialClawVADARPaso único40.5*−19.4pySpatialSingle-pass47.8−12.1SpaceTools-ToolshedLlamada a herramienta estructurada48.7−11.2SpatialClawCódigo como acción59.9mejor
VADAR no admite entradas de vídeo o de múltiples imágenes; sólo se promedian los puntos de referencia de una sola imagen.

Las mayores ganancias se obtienen en tareas dinámicas. En Gemma4-31B, DSI-Bench subió +17,6 puntos y MindCube subió +15,3 puntos. Estas categorías necesitan cálculos geométricos encadenados entre fotogramas y puntos de vista.

Una atribución de LLM como juez explica las ventajas sobre la llamada de herramientas estructurada. La composición del código representa el 52,2% de ellos. El flujo de control representa el 19,5% y el 28,3% restante es neutral en cuanto a la interfaz.

Dentro del circuito de cinco etapas

Cada muestra ejecuta un ciclo de cinco etapas: planificación, generación de código, ejecución de código, ensamblaje de comentarios y envío de respuestas. Un planificador redacta una estrategia sin ver las imágenes. Luego, el agente principal escribe una celda de Python por paso. Un verificador AST estático rechaza el código inseguro antes de su ejecución. El bucle se repite hasta que se llama a ReturnAnswer() o pasan 30 pasos.

El repositorio oficial se ejecuta en un flujo de trabajo LangGraph y un kernel Jupyter persistente. Las redes troncales sirven a través de vLLM. Perception se ejecuta detrás de un servicio de GPU FastAPI. Un único inicio rápido ejecuta un punto de referencia en una máquina:

git clone –recursive https://github.com/NVlabs/SpatialClaw.git cd SpatialClaw bash espacial_agent/scripts/setup.sh cp .env.example .env # agregar claves API o autohospedar vLLM python -m espacial_agent.entrypoints.run \ –dataset espacial_agent/config/dataset/erqa.json \ –model agente_espacial/config/model/gemini-3-pro.json \ –concurrency 4

Una célula agente representativa compone la percepción con geometría y luego revisa:

# Reconstruir la escena, luego segmentar ambos objetos en una sola pasada de video recon = tools.Reconstruct.Reconstruct(InputImages) seg = tools.SAM3.segment_video_by_text([“radiator heater”, “door”]) show(seg.visualize(1)) # inspeccionar las máscaras primero # Distancia del punto más cercano a través del árbol KD, no centroides pts_h = seg.get_masked_points(recon, frame=1, object=0) # objeto 0 = calentador pts_d = seg.get_masked_points(recon, frame=2, object=1) # objeto 1 = distancias de puerta, _ = scipy.spatial.KDTree(pts_d).query(pts_h, k=1) ReturnAnswer(float(dists.min()))

El agente elige primitivas de la propia pregunta. Las preguntas sobre distancias invocan normas vectoriales y de búsqueda de árboles KD. Las preguntas de dirección se basan en productos escalares. No se aplicó ninguna ruta específica de categoría.

Casos de uso

El diseño se adapta a problemas que necesitan un razonamiento geométrico paso a paso. Ejemplos concretos incluyen:

Robótica y agentes encarnados que miden distancias métricas entre objetos antes de actuar. Inspección de vista múltiple, donde la dirección de orientación de un objeto se recupera desde varios ángulos de cámara. Análisis de vídeo y 4D que rastrea el movimiento de objetos o cámaras a través de fotogramas. Respuesta a preguntas sobre escenas interiores, como “¿dónde está la puerta en relación con el fregadero?”

Como no requiere capacitación, los equipos pueden ampliar un VLM implementado sin nuevos datos ni ajustes.

Explicador interactivo