Desarrolladores

El modelador es una API.

La interfaz es un cliente más de un catálogo de acciones — más de 240 en el núcleo, más con cada módulo — cada una con su esquema JSON. Tus scripts, tu CI y tus agentes llaman exactamente a las mismas, sujetas a los mismos permisos, revisiones y deshacer.

RESTMCPPythonComplementosOpenAPI

REST

Un endpoint por acción.

Lista el catálogo con sus esquemas y luego llama a cualquier acción sobre la revisión que tienes. Concurrencia optimista en cada modificación: si alguien ha editado entretanto, se te avisa, no se sobrescribe.

  • Tokens con permisos de lectura, escritura, IA y administración.
  • Lote: hasta 100 comandos como una sola revisión y un solo paso de deshacer — todo o nada.
  • Deltas: un cliente que ya tiene un modelo recibe el cambio, no el archivo.
  • La cancelación llega hasta el proceso de geometría; no se confirma nada de una petición cancelada.

$KOZOROSA es la dirección de tu Foundry, o la dirección local que indica Kozorosa para Mac en Help → Connect an AI Agent.

# Everything the modeler can do, with its schema
curl -H "Authorization: Bearer $TOKEN" \
     $KOZOROSA/api/studio/actions

# One edit, on the revision you hold
curl -X POST $KOZOROSA/api/studio/actions/push_pull \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model_id":"…","expected_revision":12,
       "args":{"target":"body1","face_id":"f7","distance":40}}'

# A hundred commands as one revision and one undo step
curl -X POST $KOZOROSA/api/studio/actions/batch …

MCP

Tu agente, a los mandos.

El endpoint MCP sirve el catálogo como herramientas. Settings → API → Connect an AI agent te da la configuración lista para Claude Code, Claude Desktop, Codex, Cursor, VS Code, Gemini y Windsurf.

  • Propuestas: propose_changes muestra el cambio como un fantasma en la vista, y solo se aplica cuando una persona lo aprueba.
  • Lecturas que no cuestan nada: describe_body, mass_properties, measure y las listas de los módulos.
  • Notas: un agente guarda su memoria de un modelo en las notas del propio modelo.
Conectar un agente, paso a paso
POST /mcp
X-API-Key: ign_…          # scope: ai

{"jsonrpc": "2.0", "id": 1,
 "method": "tools/call",
 "params": {
   "name": "propose_changes",
   "arguments": {
     "model_id": "…",
     "title": "Lighten the web by 18%",
     "commands": [
       {"action": "shell",
        "args": {"target": "web", "thickness": 2.4}}
     ]
   }}}

Python

Bucles, aritmética y el modelo leído de vuelta.

La consola de Python asocia todo el catálogo a un solo nombre, cad. Un script se ejecuta en su propio proceso aislado; es una sola edición y un solo paso de deshacer, y un script que falla no cambia nada.

Ejecutar un script, paso a paso
n = params["cells"]
pitch = params["pitch"]
strut = params["strut"]

for i in range(n + 1):
    for j in range(n + 1):
        cad.create_box(width=strut, depth=strut,
                       height=n * pitch,
                       position=[i * pitch, j * pitch, 0])

print("struts:", len(cad.features))
result = {"struts": len(cad.features),
          "extent_mm": n * pitch}

Amplíalo

Complementos y módulos.

Piezas

Complementos paramétricos

Un complemento es una receta declarativa en un manifiesto firmado — nunca se ejecuta código de complemento. Parte de la plantilla, súbelo para ti o instálalo para toda una organización.

Biblioteca

Piezas verificadas

Engranajes rectos y cónicos, roscas ISO, tornillos y tuercas hexagonales, arandelas, muelles helicoidales, bridas de tubería y moleteados, cada uno fijado por un SHA-256 de su manifiesto.

Módulos

Oficios completos

Los módulos añaden acciones al núcleo, lecturas, formatos de exportación, herramientas y páginas — los módulos de construcción están hechos así.

Construye sobre un modelador que responde.

Importa un archivo STEP, empuja una cara, ponle una cota. 5 días, todas las herramientas, nada que pagar hasta que lo decidas.