# MetaModel > Build calculators, configurators, and engineering models with real formulas — publish them as interactive apps, REST APIs, and MCP tools. Computed answers, not hallucinated math. MetaModel (https://www.metamodel.app) is a live modeling platform. Users write Excel-style formulas over structured models, add rules that create and place parts, attach 3D scenes derived from the product data, and publish. Every published project is simultaneously an interactive web app, a compute API, and an MCP tool. ## For AI assistants: the compute API and MCP - MCP endpoint (hosted, streamable HTTP): https://www.metamodel.app/api/mcp - Tools: `metamodel_list_projects` (browse published calculators), `metamodel_get_schema` (inputs w/ types, defaults, ranges; outputs; per model), `metamodel_compute` (send inputs → every output computed server-side). - REST equivalent (no auth for published projects): - `GET https://www.metamodel.app/api/compute/{token}` → schema - `POST https://www.metamodel.app/api/compute/{token}` with `{"inputs": {...}}` → computed outputs - 3D presentation models are flagged `presentation: true` — separate engineering outputs from display geometry. - Live worked example (a real engineer-to-order hydraulic cylinder: buckling, stress, standard-part selection, costing): token `d5279c53-ceb3-4b26-b2ac-71caf2e3c3ae`. Demo page: https://www.metamodel.app/demo/configurator - Human-readable developer docs: https://www.metamodel.app/developers ## Core Concepts - **Project**: pages + models + components; publishable. - **Model**: formulas and rules over a subject component. Inputs (editable) + outputs (computed, read-only). - **Component**: data item with typed properties; can hold RELATIONS (collections of member components). - **Relation/Collection**: members managed by rules; aggregable with SUM/SUMIF/COUNT. - **Rule**: declarative managers — quantity (parametric member count, e.g. `count = CEILING(height/maxSpacing)+1` or conditional `IF(mountStyle="Clevis", 2, 0)`), check (assert with observe/prevent), distribute (fill a span with spaced members), show (derive 3D geometry per product member). - **Scoped (fan-out) formulas**: evaluate once per member of a relation — per-row calculations. - **Kind**: hierarchical classification (system tree + user-grafted kinds). - **Page/View**: forms, grids, markdown w/ `{{ref@model}}` templates, result cards, 3D scenes (Three.js: blocks, cylinders, tubes, cones, spheres, elbows; materials with metalness/roughness). - **Table/List**: LOOKUP reference data and dropdown options, shipped in toolboxes; embedded in published snapshots. - **Indicator**: color bands on values — threshold or expression conditions. - **Print/PDF**: published pages print to spec/quote sheets incl. 3D snapshots. ## Formula Language Excel-flavored; 100+ functions; dependency-tracked live recalculation. - Assignment: `output = expression`; cross-model refs `property@modelName`; anchored paths `x@page1.component`. - Aggregates over relations: `SUM(rel, "prop")`, `SUMIF(rel, "valueProp", "matchProp", match)`, `COUNT(rel)`. - `LOOKUP("table", input, "column")` — exact or threshold matching (threshold = selection ladders, e.g. smallest motor ≥ required power). - Dates are first-class: ISO strings, date arithmetic, NETWORKDAYS/WORKDAY/DATEVALUE, date-aware MIN/MAX and thresholds. - Categories: math, trig, stats, string (CONCATENATE/TEXTJOIN…), logic (IF/IFS/SWITCH…), financial (PMT/NPV/IRR…), date/time, engineering. ## Property Types integer · double · currency (displays in the project's currency, e.g. EUR) · percent (stored as decimal) · text · boolean · date (ISO) ## Use Cases Engineer-to-order configurators with live 3D (hydraulic cylinders, conveyors) · instant-quote widgets (live: eerlijkzon.nl solar) · sizing & selection tools (standards ladders) · financial/pricing models · education. ## More Complete reference: https://www.metamodel.app/llms-full.txt · Developers: https://www.metamodel.app/developers · Live demos: https://www.metamodel.app/demo/configurator