GraphHopper
| Feature | Scope |
|---|---|
| Typed ports | Numbers, points, directions, curves, surfaces, solids/B-reps and meshes |
| Structured data | Item, list and tree data with branch matching/broadcasting, merge, flatten and graft |
| Numeric sources | Literals, number series and supported CSV/JSON inputs |
| Math | Arithmetic, ranges/remapping, minimum/maximum and trigonometry |
| Repeatable variation | Seeded random, value/Perlin noise and supported 3D noise |
| Curve construction | Lines, arcs, circles, ellipses, polylines, NURBS and interpolation |
| Surface/mesh construction | Supported NURBS control surfaces, mesh grids, planar faces and regions |
| Geometry queries | Curve endpoints, evaluation, closest points, division, length, curvature and frames; surface tangents/normals and projection |
| Spatial data | Distance/vector operations and supported point population/containment |
| Transforms | Translate, rotate, scale and orient across supported geometry types |
| CAD command adapter | Reuses ordinary modelling commands and their reflected fields instead of maintaining a second geometry kernel; coverage is still being expanded |
| Scene references | Supported document geometry as graph inputs |
| Public inputs and outputs | Named parameters/results and reusable graph templates/instances |
| Editing | Ports/wiring, node selection, multi-selection, move/delete and folding |
| Evaluation | Demand-driven dependency scheduling and caching; branches not connected to an output are excluded from computation |
| Diagnostics | Graph errors/warnings in the shared Problems/status system |
| Examples | Procedural canopy, tower and facade designs |
Partial: native editor interaction/layout parity, complete generic command coverage, plugin coverage and broad GPU graph computation. GraphHopper and dependency views are being brought onto shared graph contracts; identical behavior on every client is not certified here.
Custom JavaScript node drafts are not arbitrary executable callbacks: saved drafts remain inert/authoring-only. Supported installed declarative plugin features can contribute typed command nodes.
JavaScript and model text
| Feature | Scope |
|---|---|
| JavaScript API | Typed document/geometry queries and supported modelling operations |
| Multiline scripts | Functions, local variables, loops and multiple operations in one execution |
| Discovery | Task-oriented documentation and API discovery rather than requiring application source access |
| Automation output | Supported exports and screenshots |
| Undo | Supported edits participate in document undo/history |
| Console panel | Interactive scripts and results |
| Model panel | Text representation/editing of supported document features |
| Graph serialization | Model text coverage remains incomplete for some graph/history data; full lossless text round trips are not claimed |
See AI API cookbook.
AI connections
| Feature | Scope |
|---|---|
| Relay MCP | Remote AI clients operate a browser document through Macadam's relay |
| Explicit pairing | Authorization and connection target the account, AI client, tab and document; no arbitrary active-tab fallback |
| OAuth | PKCE flow, authorization grants and revocation controls |
| AI menu | Connection status, connect/disconnect/switch and setup guidance |
| Authorized-client settings | Inspect and remove authorized AI clients |
| Durable consent | Server-side grants persist independently of a particular deployment |
| Reload recovery | Qualified Chrome same-context/document recovery; Safari and other unverified browser paths may still require reconnecting |
| Native MCP | Local native server/transport integration |
| WebMCP | Experimental browser API route; availability depends on browser support, so Relay MCP is the normal remote route |
| Native assistant backends | Conditional MLX, llama.cpp and Apple Foundation Models integration; hardware/model availability varies |
An interrupted or uncertain edit is not blindly replayed. Authorization to a client is distinct from a live connection to a particular document. See Relay MCP and WebMCP.
Extensibility
Installed declarative features and commands use reflected fields and shared command discovery. Custom-code execution remains limited by the supported host and its security boundary. A personal Codex improvement skill is a development workflow, not a built-in Macadam product feature.