{
  "title": "Geometric transformation composer",
  "human_url": "https://happytails.ai/en/calculators/geometric-transformation-composer/",
  "agent_url": "https://happytails.ai/agents/en/calculators/geometric-transformation-composer/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/geometric-transformation-composer.md",
  "content": "Geometric transformation composer\nCompose translations, rotations, reflections and scales, with point diagrams and a full matrix trail.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Geometric transformation composer\nPaste a JSON example and edit its documented fields. Keep machine field names unchanged.\nChoose a supported operation and review the stated domain and bounds.\nReview the result and download the complete JSON or CSV report, including worked steps.\nUseful next steps\nLinear system solver\nMatrix workspace\nModular arithmetic workspace\nGeometric transformation composer\nSupply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable.\nKeep the complete calculation\nAll processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Search and sort the first 200 preview rows. Copy result copies the summary. Download JSON or CSV for every result and worked step. Geometry tools also provide a downloadable SVG diagram.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Linear system solver",
      "url": "https://happytails.ai/en/calculators/linear-system-solver/"
    },
    {
      "name": "Matrix workspace",
      "url": "https://happytails.ai/en/calculators/matrix-workspace/"
    },
    {
      "name": "Modular arithmetic workspace",
      "url": "https://happytails.ai/en/calculators/modular-arithmetic-workspace/"
    }
  ],
  "tool": {
    "id": "geometric-transformation-composer",
    "category": "calculators",
    "built": true,
    "requirements": "Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Search and sort the first 200 preview rows. Copy result copies the summary. Download JSON or CSV for every result and worked step. Geometry tools also provide a downloadable SVG diagram.",
    "implementation": {
      "fields": [],
      "presentation": "metrics",
      "inputMaxLength": 100000,
      "inputErrorCode": "EXACT_MATH_INPUT",
      "note": "Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 100000,
        "inputMode": "text",
        "label": "JSON input",
        "placeholder": "{\n  \"points\": [\n    [\n      1,\n      0\n    ],\n    [\n      0,\n      1\n    ],\n    [\n      0,\n      0\n    ]\n  ],\n  \"transforms\": [\n    {\n      \"type\": \"translate\",\n      \"x\": 2,\n      \"y\": 0\n    },\n    {\n      \"type\": \"rotate\",\n      \"degrees\": 90\n    }\n  ]\n}",
        "help": "Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Up to 100,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Geometric transformation composer\n\n- Human page: https://happytails.ai/en/calculators/geometric-transformation-composer/\n- Markdown: https://happytails.ai/en/calculators/geometric-transformation-composer.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/geometric-transformation-composer/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `geometric-transformation-composer` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nSupply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout.\n\n### Inputs and settings\n\nText input: JSON input.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n{\n  \"points\": [\n    [\n      1,\n      0\n    ],\n    [\n      0,\n      1\n    ],\n    [\n      0,\n      0\n    ]\n  ],\n  \"transforms\": [\n    {\n      \"type\": \"translate\",\n      \"x\": 2,\n      \"y\": 0\n    },\n    {\n      \"type\": \"rotate\",\n      \"degrees\": 90\n    }\n  ]\n}\n```\n\nSupply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Up to 100,000 characters. Review the settings before running.\n\nNo additional settings are declared for this tool.\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nSupply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Search and sort the first 200 preview rows. Copy result copies the summary. Download JSON or CSV for every result and worked step. Geometry tools also provide a downloadable SVG diagram.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"geometric-transformation-composer\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Search and sort the first 200 preview rows. Copy result copies the summary. Download JSON or CSV for every result and worked step. Geometry tools also provide a downloadable SVG diagram.\",\n  \"implementation\": {\n    \"fields\": [],\n    \"presentation\": \"metrics\",\n    \"inputMaxLength\": 100000,\n    \"inputErrorCode\": \"EXACT_MATH_INPUT\",\n    \"note\": \"Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 100000,\n      \"inputMode\": \"text\",\n      \"label\": \"JSON input\",\n      \"placeholder\": \"{\\n  \\\"points\\\": [\\n    [\\n      1,\\n      0\\n    ],\\n    [\\n      0,\\n      1\\n    ],\\n    [\\n      0,\\n      0\\n    ]\\n  ],\\n  \\\"transforms\\\": [\\n    {\\n      \\\"type\\\": \\\"translate\\\",\\n      \\\"x\\\": 2,\\n      \\\"y\\\": 0\\n    },\\n    {\\n      \\\"type\\\": \\\"rotate\\\",\\n      \\\"degrees\\\": 90\\n    }\\n  ]\\n}\",\n      \"help\": \"Supply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last * ... * first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable. All processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Up to 100,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nCompose translations, rotations, reflections and scales, with point diagrams and a full matrix trail.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Geometric transformation composer\n\n1. Paste a JSON example and edit its documented fields. Keep machine field names unchanged.\n2. Choose a supported operation and review the stated domain and bounds.\n3. Review the result and download the complete JSON or CSV report, including worked steps.\n\n## Useful next steps\n\n- [Linear system solver](https://happytails.ai/en/calculators/linear-system-solver/) ([Markdown](https://happytails.ai/en/calculators/linear-system-solver.md))\n\n- [Matrix workspace](https://happytails.ai/en/calculators/matrix-workspace/) ([Markdown](https://happytails.ai/en/calculators/matrix-workspace.md))\n\n- [Modular arithmetic workspace](https://happytails.ai/en/calculators/modular-arithmetic-workspace/) ([Markdown](https://happytails.ai/en/calculators/modular-arithmetic-workspace.md))\n\n## Geometric transformation composer\n\nSupply 1 to 200 two-dimensional points and 1 to 100 transforms, in application order. Supported types are translate, rotate, reflect and scale. Rotate and scale accept an optional center; reflect supports x, y, y=x, y=-x and a line angle through a center. Column-vector matrices compose last \\* ... \\* first. Coordinates and angles are within ±1000000; scale factors within ±1000. Zero scales are valid and degenerate. Intermediate coordinates and matrix entries must stay within ±1000000000000. Arbitrary angles and repeated compositions use floating-point arithmetic; quarter turns use exact sine/cosine constants. Reports include every intermediate matrix and point set, plus the inverse when numerically representable.\n\n### Keep the complete calculation\n\nAll processing stays on your device. Paste JSON with dot decimals; quote exact fractions and large integers. Input is limited to 100,000 characters and 100 digits per scalar. Exact results use reduced fractions, with a 1,024-digit and 200,000-step arithmetic bound. Enumeration is limited to 10,000 complete results and 1,000,000 search steps; exceeding a bound returns an error, not a partial answer. Geometry uses floating-point approximations. JSON and typed JSON Pointer CSV retain the complete input, results, constraints and worked steps. Reports are limited to 4,000,000 JSON and 8,000,000 CSV characters. Each calculation uses a disposable worker with a 10-second timeout. Search and sort the first 200 preview rows. Copy result copies the summary. Download JSON or CSV for every result and worked step. Geometry tools also provide a downloadable SVG diagram.\n"
}