Sviluppatori

Il modellatore è un’API.

L’interfaccia è un client di un catalogo di azioni — oltre 240 nel nucleo, di più con ogni modulo — ciascuna con uno schema JSON. Script, CI e agenti chiamano esattamente le stesse, soggette agli stessi ambiti, revisioni e annullamenti.

RESTMCPPythonPluginOpenAPI

REST

Un endpoint per azione.

Si elenca il catalogo con i suoi schemi, poi si chiama qualsiasi azione sulla revisione in proprio possesso. Concorrenza ottimistica su ogni modifica: se qualcuno ha modificato nel frattempo, lo si viene a sapere, senza essere sovrascritti.

  • Token con ambito per lettura, scrittura, IA e amministrazione.
  • Batch: fino a 100 comandi come una sola revisione e un solo passo di annullamento — tutto o niente.
  • Delta: un client che possiede un modello riceve la modifica, non il file.
  • L’annullamento raggiunge il worker geometrico; per una richiesta annullata non viene salvato nulla.

$KOZOROSA è l’indirizzo della propria installazione Foundry, oppure l’indirizzo locale indicato da Kozorosa per Mac in 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

Il vostro agente, ai comandi.

L’endpoint MCP espone il catalogo come strumenti. Impostazioni → API → Collega un agente IA fornisce la configurazione pronta per Claude Code, Claude Desktop, Codex, Cursor, VS Code, Gemini e Windsurf.

  • Proposte: propose_changes mostra la modifica come un fantasma nella vista, applicata solo quando una persona la approva.
  • Letture che non costano nulla: describe_body, mass_properties, measure e gli elenchi dei moduli.
  • Note: un agente conserva la memoria di un modello nelle note del modello stesso.
Collegare un agente, passo dopo passo
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

Cicli, calcoli e il modello riletto.

La console Python lega l’intero catalogo a un solo nome, cad. Uno script viene eseguito in un processo isolato tutto suo; costituisce una modifica e un passo di annullamento, e uno script che fallisce non cambia nulla.

Eseguire uno script, passo dopo passo
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}

Estenderlo

Plugin e moduli.

Pezzi

Plugin parametrici

Un plugin è una ricetta dichiarativa in un manifesto firmato — nessun codice di plugin viene mai eseguito. Si parte dal modello, lo si carica per sé, oppure lo si installa per un’intera organizzazione.

Libreria

Pezzi verificati

Ingranaggi cilindrici e conici, filettature ISO, bulloni e dadi esagonali, rondelle, molle elicoidali, flange per tubi e zigrinature, ciascuno fissato da uno SHA-256 del suo manifesto.

Moduli

Mestieri interi

I moduli aggiungono azioni del kernel, letture, formati di esportazione, strumenti e pagine — i moduli per l’edilizia sono costruiti così.

Costruire su un modellatore che risponde.

Importare un file STEP, spingere una faccia, quotarla. 5 giorni, tutti gli strumenti, nulla da pagare finché non si decide.