[
  {
    "schema": "oic/project/v1",
    "id": "dimension-engine-showcase",
    "name": "Dimension Engine Showcase",
    "summary": "Explore GPU-powered digital twins, live process maps and factory training in Ignition.",
    "description": "Explore an automotive digital twin with robotic production cells, an aligned process atlas, equipment panels and incident replay. Move from the production floor into a credited Gaussian room capture with utility trends and simulated operating signals.\n\nThe complete local development showcase now runs inside an **Ignition Perspective project**, hosted by the native Dimension Engine module. Automotive, Gaussian Studio, facility and process maps, water and steel plants, GPU experiments, and **Super Maintenance Bros.** share one application. Native HMI dashboards open within the Perspective session.\n\n### Play Super Maintenance Bros.\n\nRun, jump and restart a procedural factory. Cross conveyors, power the lift and restore the line, or choose a guided run. The native project connects the game to isolated synthetic Gateway tags and an operations dashboard.\n\nThe free hosted browser preview uses synthetic or reference data and has no plant or Gateway connection. Gallery screenshots show the native development project; the hosted preview may differ. The native module builds locally as an unsigned development installer; a signed public download is not offered yet. Ignition licensing remains separate.\n\nThe engine-room capture is **Tugboat Bat, Trieste, by tosolini**, captured with XGRIDS PortalCam and used under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [Original capture](https://superspl.at/scene/1a14e1e7). Equipment relationships and operating signals are authored, simulated overlays.\n",
    "category": "Visualization",
    "tags": [
      "Ignition",
      "WebGPU",
      "3D",
      "Process visualization",
      "Interactive training"
    ],
    "platforms": [
      "Web browser",
      "Ignition Perspective"
    ],
    "source": "closed-source",
    "license": "Free browser preview terms",
    "license_url": "https://dimension-engine-showcase.vercel.app/DEMO_TERMS.txt",
    "cost": "free",
    "cost_notes": "The hosted browser preview is free to use for evaluation and learning, with no account or time limit. It uses synthetic or reference data and has no Gateway save or plant connection. The complete local development showcase runs inside Perspective using the native Dimension Engine module. It requires Ignition Perspective trial time or a license. The unsigned module is built locally; no public installer is offered yet.",
    "software_requirements": "no-paid-required",
    "homepage": "https://dimension-engine-showcase.vercel.app/",
    "get_started": "https://dimension-engine-showcase.vercel.app/",
    "documentation": "https://dimension-engine-showcase.vercel.app/#about",
    "maintainer": "Grindstone Systems",
    "profile": {
      "schema": "oic/project/v2",
      "id": "dimension-engine-showcase",
      "name": "Dimension Engine Showcase",
      "summary": "Explore GPU-powered digital twins, live process maps and factory training in Ignition.",
      "category": "Visualization",
      "tags": [
        "Ignition",
        "WebGPU",
        "3D",
        "Process visualization",
        "Interactive training"
      ],
      "platforms": [
        "Web browser",
        "Ignition Perspective"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://dimension-engine-showcase.vercel.app/"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "/images/projects/93ac520ce7ce1be73596a4881e3d3290a57acce590e6782f95c3a4982e7d1a08.webp",
          "on_dark": "/images/projects/93ac520ce7ce1be73596a4881e3d3290a57acce590e6782f95c3a4982e7d1a08.webp",
          "alt": "Dimension Engine angular 3D DE monogram in cyan and blue"
        }
      },
      "media": [
        {
          "id": "factory",
          "type": "image",
          "src": "/images/projects/27379759f32882089573974ac74553d6e403488dd76008e78bbcc9e34d060a6b.webp",
          "title": "Automotive digital twin in Perspective",
          "alt": "A detailed automotive production floor with robotic cells, conveyors, live metrics and a synchronized process atlas inside Ignition Perspective.",
          "caption": "Native Perspective development preview · Synthetic production model",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "room",
          "type": "image",
          "src": "/images/projects/cd7dff909b76d4a6b5a5c86862e30518ee59c2ecd67914f6edc0de844a66ff3b.webp",
          "title": "Captured space with live HMI context",
          "alt": "A Gaussian engine-room capture with equipment markers, utility trends and operating panels inside the native Perspective showcase.",
          "caption": "Native Perspective preview · Static reference capture with simulated utility overlays",
          "credit": "Capture: Tugboat Bat, Trieste, by tosolini / XGRIDS PortalCam, CC BY 4.0; application and overlays: Grindstone Systems. Source: https://superspl.at/scene/1a14e1e7",
          "rights": "Capture used under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/. Screenshot and overlays supplied for OIC listing use."
        },
        {
          "id": "game",
          "type": "image",
          "src": "/images/projects/c3f3cbc8a05b22f1c206a2dd8de6596bb1d130294e669de88bddd895ae329101.webp",
          "title": "Super Maintenance Bros. in Perspective",
          "alt": "A playable three-dimensional factory platformer with conveyors, presses, industrial effects and a native Ignition session connection.",
          "caption": "Native Perspective development preview · Synthetic training scenario",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "lobby",
          "type": "image",
          "src": "/images/projects/f41ae3e23f48fa37961b800f3ad0ac2b9e3a2ed43212fcf332046ae24f12d721.webp",
          "title": "A unified WebGPU experience library",
          "alt": "A dark showcase lobby with a persistent left menu, a particle-powered three-dimensional centerpiece, and live miniature previews for Automotive and Super Maintenance Bros.",
          "caption": "Browser development preview · Shared GPU renderer and simulated demonstration data",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "closed-source"
      },
      "license": {
        "name": "Free browser preview terms",
        "url": "https://dimension-engine-showcase.vercel.app/DEMO_TERMS.txt"
      },
      "access": {
        "edition": "Browser preview",
        "cost": "free",
        "notes": "The hosted browser preview is free to use for evaluation and learning, with no account or time limit. It uses synthetic or reference data and has no Gateway save or plant connection. The complete local development showcase runs inside Perspective using the native Dimension Engine module. It requires Ignition Perspective trial time or a license. The unsigned module is built locally; no public installer is offered yet.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern desktop browser",
          "kind": "software",
          "cost": "free",
          "notes": "The hosted preview uses synthetic or reference data. WebGPU features require a compatible browser and GPU."
        },
        {
          "name": "Keyboard or gamepad",
          "kind": "hardware",
          "cost": "unknown",
          "notes": "Required for the factory platformer. Touch controls are not included.",
          "applies_to": [
            "play"
          ]
        },
        {
          "name": "Ignition Perspective",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "Only needed for the native local Ignition project. An unsigned Dimension Engine development module hosts the full showcase. WebDev is not required by this native project; the hosted browser preview needs neither module."
        }
      ],
      "actions": [
        {
          "id": "preview",
          "type": "demo",
          "url": "https://dimension-engine-showcase.vercel.app/",
          "primary": true,
          "label": "Open browser preview",
          "description": "Open the free hosted preview. It uses reference data and does not connect to a plant."
        },
        {
          "id": "play",
          "type": "demo",
          "url": "https://dimension-engine-showcase.vercel.app/#play",
          "primary": false,
          "label": "Play Super Maintenance Bros."
        }
      ],
      "links": {
        "homepage": "https://dimension-engine-showcase.vercel.app/",
        "docs": "https://dimension-engine-showcase.vercel.app/#about"
      },
      "faq": [
        {
          "question": "Does the hosted preview connect to a plant?",
          "answer": "No. The browser preview uses synthetic or reference data. No plant or Ignition Gateway is connected."
        },
        {
          "question": "Can I download a native Ignition module?",
          "answer": "A native module now builds and runs locally with the complete showcase in a Perspective project, including Super Maintenance Bros. It is still an unsigned development preview; a signed public installer is not offered yet."
        },
        {
          "question": "What is Super Maintenance Bros.?",
          "answer": "A 2D platformer in a procedural 3D factory. Cross conveyors, power the lift, dodge presses and restore the line. Try “Watch a shift” for a guided run, or use WASD, Space and E to play. Includes cinematic camera movement, GPU effects, quiet sound and a hideable FPS counter. “Behind the game” explains its rendering and state. The separate local Ignition edition connects to synthetic Gateway tags and a native Perspective dashboard."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "visualization",
        "secondary": [
          "development"
        ],
        "capabilities": [
          "Digital twins",
          "Process visualization",
          "Interactive training"
        ],
        "product_type": "application",
        "options": [
          {
            "delivery": "web",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "hosted"
            ]
          }
        ],
        "offline": "unknown",
        "air_gap": "unknown",
        "commercial_use": "unknown"
      }
    },
    "authored": {
      "schema": "oic/project/v2",
      "id": "dimension-engine-showcase",
      "name": "Dimension Engine Showcase",
      "summary": "Explore GPU-powered digital twins, live process maps and factory training in Ignition.",
      "category": "Visualization",
      "tags": [
        "Ignition",
        "WebGPU",
        "3D",
        "Process visualization",
        "Interactive training"
      ],
      "platforms": [
        "Web browser",
        "Ignition Perspective"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://dimension-engine-showcase.vercel.app/"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "./media/logo.png",
          "on_dark": "./media/logo.png",
          "alt": "Dimension Engine angular 3D DE monogram in cyan and blue"
        }
      },
      "media": [
        {
          "id": "factory",
          "type": "image",
          "src": "./media/factory.jpg",
          "title": "Automotive digital twin in Perspective",
          "alt": "A detailed automotive production floor with robotic cells, conveyors, live metrics and a synchronized process atlas inside Ignition Perspective.",
          "caption": "Native Perspective development preview · Synthetic production model",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "room",
          "type": "image",
          "src": "./media/room.jpg",
          "title": "Captured space with live HMI context",
          "alt": "A Gaussian engine-room capture with equipment markers, utility trends and operating panels inside the native Perspective showcase.",
          "caption": "Native Perspective preview · Static reference capture with simulated utility overlays",
          "credit": "Capture: Tugboat Bat, Trieste, by tosolini / XGRIDS PortalCam, CC BY 4.0; application and overlays: Grindstone Systems. Source: https://superspl.at/scene/1a14e1e7",
          "rights": "Capture used under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/. Screenshot and overlays supplied for OIC listing use."
        },
        {
          "id": "game",
          "type": "image",
          "src": "./media/game.jpg",
          "title": "Super Maintenance Bros. in Perspective",
          "alt": "A playable three-dimensional factory platformer with conveyors, presses, industrial effects and a native Ignition session connection.",
          "caption": "Native Perspective development preview · Synthetic training scenario",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "lobby",
          "type": "image",
          "src": "./media/lobby.jpg",
          "title": "A unified WebGPU experience library",
          "alt": "A dark showcase lobby with a persistent left menu, a particle-powered three-dimensional centerpiece, and live miniature previews for Automotive and Super Maintenance Bros.",
          "caption": "Browser development preview · Shared GPU renderer and simulated demonstration data",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "closed-source"
      },
      "license": {
        "name": "Free browser preview terms",
        "url": "https://dimension-engine-showcase.vercel.app/DEMO_TERMS.txt"
      },
      "access": {
        "edition": "Browser preview",
        "cost": "free",
        "notes": "The hosted browser preview is free to use for evaluation and learning, with no account or time limit. It uses synthetic or reference data and has no Gateway save or plant connection. The complete local development showcase runs inside Perspective using the native Dimension Engine module. It requires Ignition Perspective trial time or a license. The unsigned module is built locally; no public installer is offered yet.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern desktop browser",
          "kind": "software",
          "cost": "free",
          "notes": "The hosted preview uses synthetic or reference data. WebGPU features require a compatible browser and GPU."
        },
        {
          "name": "Keyboard or gamepad",
          "kind": "hardware",
          "cost": "unknown",
          "notes": "Required for the factory platformer. Touch controls are not included.",
          "applies_to": [
            "play"
          ]
        },
        {
          "name": "Ignition Perspective",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "Only needed for the native local Ignition project. An unsigned Dimension Engine development module hosts the full showcase. WebDev is not required by this native project; the hosted browser preview needs neither module."
        }
      ],
      "actions": [
        {
          "id": "preview",
          "type": "demo",
          "url": "https://dimension-engine-showcase.vercel.app/",
          "primary": true,
          "label": "Open browser preview",
          "description": "Open the free hosted preview. It uses reference data and does not connect to a plant."
        },
        {
          "id": "play",
          "type": "demo",
          "url": "https://dimension-engine-showcase.vercel.app/#play",
          "primary": false,
          "label": "Play Super Maintenance Bros."
        }
      ],
      "links": {
        "homepage": "https://dimension-engine-showcase.vercel.app/",
        "docs": "https://dimension-engine-showcase.vercel.app/#about"
      },
      "faq": [
        {
          "question": "Does the hosted preview connect to a plant?",
          "answer": "No. The browser preview uses synthetic or reference data. No plant or Ignition Gateway is connected."
        },
        {
          "question": "Can I download a native Ignition module?",
          "answer": "A native module now builds and runs locally with the complete showcase in a Perspective project, including Super Maintenance Bros. It is still an unsigned development preview; a signed public installer is not offered yet."
        },
        {
          "question": "What is Super Maintenance Bros.?",
          "answer": "A 2D platformer in a procedural 3D factory. Cross conveyors, power the lift, dodge presses and restore the line. Try “Watch a shift” for a guided run, or use WASD, Space and E to play. Includes cinematic camera movement, GPU effects, quiet sound and a hideable FPS counter. “Behind the game” explains its rendering and state. The separate local Ignition edition connects to synthetic Gateway tags and a native Perspective dashboard."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "visualization",
        "secondary": [
          "development"
        ],
        "capabilities": [
          "Digital twins",
          "Process visualization",
          "Interactive training"
        ],
        "product_type": "application",
        "options": [
          {
            "delivery": "web",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "hosted"
            ]
          }
        ],
        "offline": "unknown",
        "air_gap": "unknown",
        "commercial_use": "unknown"
      }
    },
    "listing": {
      "origin": "community",
      "reviewed": "2026-09-29",
      "submitted_by": "Grindstone Systems",
      "added": "2026-09-28",
      "source": {
        "repository": "open-industrial-collective/dimension-engine-listing",
        "commit": "f2907377b2573071a7de5b731b572227ebb98020",
        "digest": "542592c1f46e872de01efbc71fe193397b3a02c345a913e66888878fb2300aee"
      }
    }
  },
  {
    "schema": "oic/project/v1",
    "id": "documentation-toolkit",
    "name": "Documentation Toolkit",
    "summary": "Experimental: turn an Ignition backup or project export into a searchable engineering reference and editable manual pack, in your browser.",
    "description": "> **Experimental · testing phase.** It works and it's private, but it's still being proven on real projects. Check generated documents against the source before relying on them, and please report what it gets wrong.\n\nDocumentation Toolkit turns the files an Ignition project already produces into documentation a team can hand over. Open a gateway backup, a project export or a tag export and it builds a searchable engineering reference in your browser, with every fact traced to the file it came from. Nothing is uploaded.\n\n## What you get\n\n- **An engineering reference**: system overview, a system map of pages, views and data, projects, navigation, Perspective views, tags and UDTs, alarms, connections, named queries, scripts, cross-references and gaps, plus appendices with complete inventories.\n- **Manual frameworks** for operators and maintenance. Screens, alarms and equipment come from configuration. Operating procedures, alarm responses and safety information are marked **Unresolved** until the site supplies them; the toolkit doesn't invent them.\n- **Coverage you can trust.** Every resource type is counted as found and read. Anything the toolkit can't interpret yet, such as Vision windows, is listed and explained rather than silently dropped.\n- **Your branding**: customer name, logo, revision, a few themes, Letter or A4, section choice, screenshots attached to screens, and redaction of addresses, usernames or code.\n\n## Exports\n\n- Offline HTML: one file with search that opens without a server\n- Word (.docx) with real heading styles and tables\n- PDF through the browser's print dialog\n- CSV inventories of tags, alarms, views and queries\n- An agent workspace: evidence as JSON and one Markdown file per section\n\n## Bring your own AI assistant\n\nThe basic pack needs no AI. To go further, save the workspace and open it with Claude Code, Codex or another assistant. An optional local extension (`oic-docs`) adds MCP tools to search evidence, trace relationships, write draft sections and rebuild the pack. It reads only the workspace, never touches a gateway, and can't mark anything as confirmed.\n\n## Privacy\n\nProcessing happens on your device. The app loads only its own files, keeps working offline once loaded, and never reads credentials from a backup. A CI check fails the build if any request leaves the app's origin.\n\n## Where it fits\n\nDocumentation Toolkit reads exported files. It doesn't connect to a gateway, run project code or replace the Designer. It's in preview: project exports, tag exports, and 8.1 and 8.3 gateway backups are supported, including tags, connections and devices from an 8.1 backup's internal database. It has been tested on a synthetic sample and a small number of real backups. The code is open source under Apache-2.0.\n",
    "category": "Engineering",
    "tags": [
      "Experimental",
      "Documentation",
      "Ignition",
      "Perspective",
      "Handover",
      "MCP",
      "AI agents",
      "Open source"
    ],
    "platforms": [
      "Web browser",
      "Node.js (optional)"
    ],
    "source": "open-source",
    "repository": "https://github.com/Grindstone-Systems/documentation-toolkit",
    "license": "Apache License 2.0",
    "license_url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/LICENSE",
    "cost": "free",
    "cost_notes": "Experimental, in its testing phase. The app is a static site that runs entirely in your browser, with no account, server, upload or time limit. Documents you export are yours. The source is Apache-2.0 and can be self-hosted. The optional local extension (CLI and MCP server) runs on your own machine and uses your own AI assistant, if you choose to use one.",
    "software_requirements": "no-paid-required",
    "homepage": "https://grindstone-systems.github.io/documentation-toolkit/",
    "get_started": "https://grindstone-systems.github.io/documentation-toolkit/",
    "documentation": "https://github.com/Grindstone-Systems/documentation-toolkit#readme",
    "maintainer": "Grindstone Systems",
    "profile": {
      "schema": "oic/project/v2",
      "id": "documentation-toolkit",
      "name": "Documentation Toolkit",
      "summary": "Experimental: turn an Ignition backup or project export into a searchable engineering reference and editable manual pack, in your browser.",
      "category": "Engineering",
      "tags": [
        "Experimental",
        "Documentation",
        "Ignition",
        "Perspective",
        "Handover",
        "MCP",
        "AI agents",
        "Open source"
      ],
      "platforms": [
        "Web browser",
        "Node.js (optional)"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://github.com/Grindstone-Systems"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "/images/projects/cb84495fd3c5cc76fa651f04402e29239e16d465843ad35580649e1df57e066c.webp",
          "on_dark": "/images/projects/cb84495fd3c5cc76fa651f04402e29239e16d465843ad35580649e1df57e066c.webp",
          "alt": "Documentation Toolkit mark, a white page outline with two text lines and a blue node on a charcoal tile"
        }
      },
      "media": [
        {
          "id": "workspace",
          "type": "image",
          "src": "/images/projects/3392cd8a0f225a664961614966adc69601386e79d474bc9d6c329d597523ced8.webp",
          "title": "A reference built in the browser",
          "alt": "The Documentation Toolkit workspace with the Engineering Reference pack and its section outline on the left, a generated system map of pages, views and tag folders in the middle, and the Customize panel with document details on the right.",
          "caption": "Workspace · The synthetic Riverbend sample project and tag export, processed on the device",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "evidence",
          "type": "image",
          "src": "/images/projects/a2b0280dfaa5080841ceee8bdf0289f8cccabd65783705f325af3115217a325e.webp",
          "title": "Every fact traced to its source",
          "alt": "The Evidence tab showing the tag P101/Speed with its source file, configuration fields including an OPC item path expanded from its UDT, the view that uses it and the document section that cites it.",
          "caption": "Evidence explorer · Configuration, source file, links and where each item appears in the document",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "operator-framework",
          "type": "image",
          "src": "/images/projects/841c03b0fd5e96c61665a19d06d847117120b7203a167797e9b4621b00a9cf9f.webp",
          "title": "Frameworks that don't invent procedures",
          "alt": "The Operator Manual Framework pack showing an Alarm responses section marked Unresolved, listing critical and high alarms with an empty Approved response column.",
          "caption": "Operator Manual Framework · Alarms come from configuration; responses stay Unresolved until the site supplies them",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "coverage",
          "type": "image",
          "src": "/images/projects/24abe40256b988271b4e4556d434213f0768800124149d3d08624154f8d1c392.webp",
          "title": "Explicit about coverage",
          "alt": "The Coverage tab in dark mode listing each resource type with found and read counts, a Vision window listed but not read, and one unresolved tag reference.",
          "caption": "Coverage · Anything found but not read is counted and explained, never silently dropped",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "reference",
          "type": "image",
          "src": "/images/projects/35434a4040c3f3633cee2c00298cc4447a7f3e16ffe1173c2ef87a3d3fce985a.webp",
          "title": "The exported reference",
          "alt": "The exported offline HTML reference with a contents sidebar and search box, a tag summary by folder, UDT definitions and an alarm table.",
          "caption": "Offline HTML export · One self-contained file with search; also exported as Word, PDF and CSV",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "agents",
          "type": "image",
          "src": "/images/projects/080c39d39d1aafb17214da7dbe91922e2a44b632e8ed0560cf8772e9fef9f633.webp",
          "title": "Bring your own AI assistant",
          "alt": "The AI agent extension page in dark mode with steps to save a workspace, set up the local MCP tools for Claude Code or Codex, and the boundaries the tools enforce.",
          "caption": "Agent extension · Optional; uses your own Claude Code, Codex or MCP client on your machine",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "open-source",
        "repository": "https://github.com/Grindstone-Systems/documentation-toolkit"
      },
      "license": {
        "name": "Apache License 2.0",
        "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/LICENSE",
        "spdx_expression": "Apache-2.0"
      },
      "access": {
        "edition": "Hosted web app",
        "cost": "free",
        "notes": "Experimental, in its testing phase. The app is a static site that runs entirely in your browser, with no account, server, upload or time limit. Documents you export are yours. The source is Apache-2.0 and can be self-hosted. The optional local extension (CLI and MCP server) runs on your own machine and uses your own AI assistant, if you choose to use one.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern web browser",
          "kind": "software",
          "cost": "free",
          "notes": "Current Chrome, Edge, Firefox or Safari. Processing and export work offline once the app has loaded."
        },
        {
          "name": "Ignition exports",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "A project export (8.x), a tag export (JSON) or a gateway backup. 8.1 and 8.3 backups include gateway configuration (tags, UDTs, alarms, connections and devices). A sample project is built in."
        },
        {
          "name": "Node.js 22",
          "kind": "software",
          "cost": "free",
          "notes": "Only for the optional local extension (oic-docs CLI and MCP server), built from source until it is published.",
          "applies_to": [
            "agents"
          ]
        },
        {
          "name": "AI assistant",
          "kind": "service",
          "cost": "optional-paid",
          "notes": "Optional. Claude Code, Codex or another MCP client, on your own subscription. The basic pack needs no AI.",
          "applies_to": [
            "agents"
          ]
        }
      ],
      "actions": [
        {
          "id": "app",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/documentation-toolkit/",
          "primary": true,
          "label": "Open the toolkit",
          "description": "Open a backup or project export, or explore the sample. Runs in your browser with no account or upload."
        },
        {
          "id": "sample",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/documentation-toolkit/#/workspace/sample",
          "primary": false,
          "label": "Explore the sample"
        },
        {
          "id": "agents",
          "type": "docs",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/LOCAL.md",
          "primary": false,
          "label": "Set up the agent extension"
        }
      ],
      "resources": [
        {
          "id": "source",
          "kind": "source",
          "title": "Source code",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit",
          "access": "public",
          "description": "Apache-2.0 TypeScript engine, adapters, renderers, the browser app and the oic-docs CLI and MCP server."
        },
        {
          "id": "privacy",
          "kind": "document",
          "title": "Privacy and security",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/PRIVACY.md",
          "access": "public",
          "description": "What stays on the device, how untrusted files are handled, and the offline check that runs in CI."
        },
        {
          "id": "workspace-format",
          "kind": "document",
          "title": "Workspace format",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/WORKSPACE.md",
          "access": "public",
          "description": "The portable folder of evidence, Markdown sections and settings that people and agents edit."
        }
      ],
      "links": {
        "homepage": "https://grindstone-systems.github.io/documentation-toolkit/",
        "docs": "https://github.com/Grindstone-Systems/documentation-toolkit#readme",
        "issues": "https://github.com/Grindstone-Systems/documentation-toolkit/issues",
        "changelog": "https://github.com/Grindstone-Systems/documentation-toolkit/commits/main"
      },
      "faq": [
        {
          "question": "What does Experimental mean here?",
          "answer": "The toolkit is in its testing phase. It is tested on a synthetic sample and a small number of real Ignition 8.1 and 8.3 backups, formats and outputs may still change, and generated documents should be checked against the source before anyone relies on them. Reports of what it gets wrong are welcome in the issue tracker."
        },
        {
          "question": "Is my backup uploaded anywhere?",
          "answer": "No. Files are read in your browser and never leave your device. The app makes no requests beyond its own files, and a CI check fails the build if that changes. Credentials in the backup are never read."
        },
        {
          "question": "Does it need AI?",
          "answer": "No. The reference, frameworks and every export are generated deterministically. AI is optional, through your own assistant and the local extension, and anything it writes is marked AI draft."
        },
        {
          "question": "Will it write our operating procedures?",
          "answer": "No. Operating steps, alarm responses and safety information can't be established from configuration. Those sections stay Unresolved until the site supplies approved text."
        },
        {
          "question": "Which Ignition versions are supported?",
          "answer": "Project exports from 8.x, tag exports (JSON), and 8.1 and 8.3 gateway backups including their tags, UDTs, alarms, connections and devices. An 8.1 backup keeps that configuration in an internal database, which the toolkit reads without running it; that reader has been tested on one real 8.1 backup so far. Vision windows and reports are listed by name. Tested on a synthetic sample and a small number of real 8.1 and 8.3 backups."
        },
        {
          "question": "Is this an Inductive Automation product?",
          "answer": "No. It's an independent open-source utility that reads exported files. It doesn't replace the Designer or imply endorsement."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "development",
        "secondary": [
          "operations"
        ],
        "capabilities": [
          "Engineering reference generation",
          "Operator and maintenance manual frameworks",
          "Tag, alarm and view inventories",
          "Source coverage reporting",
          "Word, HTML, PDF and CSV export",
          "AI agent workspace and MCP tools"
        ],
        "product_type": "application",
        "interfaces": [
          "Web browser",
          "CLI",
          "MCP (stdio)"
        ],
        "works_with": [
          {
            "name": "Ignition",
            "relationship": "integrates",
            "version": "8.1, 8.3"
          }
        ],
        "options": [
          {
            "resource_id": "source",
            "delivery": "web",
            "environments": [
              "Web browser",
              "Node.js 22 (CLI)"
            ],
            "deployment": [
              "hosted",
              "local"
            ]
          }
        ],
        "offline": "yes",
        "air_gap": "unknown",
        "commercial_use": "yes",
        "support": [
          "community",
          "publisher"
        ]
      }
    },
    "authored": {
      "schema": "oic/project/v2",
      "id": "documentation-toolkit",
      "name": "Documentation Toolkit",
      "summary": "Experimental: turn an Ignition backup or project export into a searchable engineering reference and editable manual pack, in your browser.",
      "category": "Engineering",
      "tags": [
        "Experimental",
        "Documentation",
        "Ignition",
        "Perspective",
        "Handover",
        "MCP",
        "AI agents",
        "Open source"
      ],
      "platforms": [
        "Web browser",
        "Node.js (optional)"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://github.com/Grindstone-Systems"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "./media/logo.png",
          "on_dark": "./media/logo.png",
          "alt": "Documentation Toolkit mark, a white page outline with two text lines and a blue node on a charcoal tile"
        }
      },
      "media": [
        {
          "id": "workspace",
          "type": "image",
          "src": "./media/workspace.jpg",
          "title": "A reference built in the browser",
          "alt": "The Documentation Toolkit workspace with the Engineering Reference pack and its section outline on the left, a generated system map of pages, views and tag folders in the middle, and the Customize panel with document details on the right.",
          "caption": "Workspace · The synthetic Riverbend sample project and tag export, processed on the device",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "evidence",
          "type": "image",
          "src": "./media/evidence.jpg",
          "title": "Every fact traced to its source",
          "alt": "The Evidence tab showing the tag P101/Speed with its source file, configuration fields including an OPC item path expanded from its UDT, the view that uses it and the document section that cites it.",
          "caption": "Evidence explorer · Configuration, source file, links and where each item appears in the document",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "operator-framework",
          "type": "image",
          "src": "./media/operator-framework.jpg",
          "title": "Frameworks that don't invent procedures",
          "alt": "The Operator Manual Framework pack showing an Alarm responses section marked Unresolved, listing critical and high alarms with an empty Approved response column.",
          "caption": "Operator Manual Framework · Alarms come from configuration; responses stay Unresolved until the site supplies them",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "coverage",
          "type": "image",
          "src": "./media/coverage.jpg",
          "title": "Explicit about coverage",
          "alt": "The Coverage tab in dark mode listing each resource type with found and read counts, a Vision window listed but not read, and one unresolved tag reference.",
          "caption": "Coverage · Anything found but not read is counted and explained, never silently dropped",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "reference",
          "type": "image",
          "src": "./media/reference.jpg",
          "title": "The exported reference",
          "alt": "The exported offline HTML reference with a contents sidebar and search box, a tag summary by folder, UDT definitions and an alarm table.",
          "caption": "Offline HTML export · One self-contained file with search; also exported as Word, PDF and CSV",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "agents",
          "type": "image",
          "src": "./media/agents.jpg",
          "title": "Bring your own AI assistant",
          "alt": "The AI agent extension page in dark mode with steps to save a workspace, set up the local MCP tools for Claude Code or Codex, and the boundaries the tools enforce.",
          "caption": "Agent extension · Optional; uses your own Claude Code, Codex or MCP client on your machine",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "open-source",
        "repository": "https://github.com/Grindstone-Systems/documentation-toolkit"
      },
      "license": {
        "name": "Apache License 2.0",
        "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/LICENSE",
        "spdx_expression": "Apache-2.0"
      },
      "access": {
        "edition": "Hosted web app",
        "cost": "free",
        "notes": "Experimental, in its testing phase. The app is a static site that runs entirely in your browser, with no account, server, upload or time limit. Documents you export are yours. The source is Apache-2.0 and can be self-hosted. The optional local extension (CLI and MCP server) runs on your own machine and uses your own AI assistant, if you choose to use one.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern web browser",
          "kind": "software",
          "cost": "free",
          "notes": "Current Chrome, Edge, Firefox or Safari. Processing and export work offline once the app has loaded."
        },
        {
          "name": "Ignition exports",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "A project export (8.x), a tag export (JSON) or a gateway backup. 8.1 and 8.3 backups include gateway configuration (tags, UDTs, alarms, connections and devices). A sample project is built in."
        },
        {
          "name": "Node.js 22",
          "kind": "software",
          "cost": "free",
          "notes": "Only for the optional local extension (oic-docs CLI and MCP server), built from source until it is published.",
          "applies_to": [
            "agents"
          ]
        },
        {
          "name": "AI assistant",
          "kind": "service",
          "cost": "optional-paid",
          "notes": "Optional. Claude Code, Codex or another MCP client, on your own subscription. The basic pack needs no AI.",
          "applies_to": [
            "agents"
          ]
        }
      ],
      "actions": [
        {
          "id": "app",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/documentation-toolkit/",
          "primary": true,
          "label": "Open the toolkit",
          "description": "Open a backup or project export, or explore the sample. Runs in your browser with no account or upload."
        },
        {
          "id": "sample",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/documentation-toolkit/#/workspace/sample",
          "primary": false,
          "label": "Explore the sample"
        },
        {
          "id": "agents",
          "type": "docs",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/LOCAL.md",
          "primary": false,
          "label": "Set up the agent extension"
        }
      ],
      "resources": [
        {
          "id": "source",
          "kind": "source",
          "title": "Source code",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit",
          "access": "public",
          "description": "Apache-2.0 TypeScript engine, adapters, renderers, the browser app and the oic-docs CLI and MCP server."
        },
        {
          "id": "privacy",
          "kind": "document",
          "title": "Privacy and security",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/PRIVACY.md",
          "access": "public",
          "description": "What stays on the device, how untrusted files are handled, and the offline check that runs in CI."
        },
        {
          "id": "workspace-format",
          "kind": "document",
          "title": "Workspace format",
          "url": "https://github.com/Grindstone-Systems/documentation-toolkit/blob/main/docs/WORKSPACE.md",
          "access": "public",
          "description": "The portable folder of evidence, Markdown sections and settings that people and agents edit."
        }
      ],
      "links": {
        "homepage": "https://grindstone-systems.github.io/documentation-toolkit/",
        "docs": "https://github.com/Grindstone-Systems/documentation-toolkit#readme",
        "issues": "https://github.com/Grindstone-Systems/documentation-toolkit/issues",
        "changelog": "https://github.com/Grindstone-Systems/documentation-toolkit/commits/main"
      },
      "faq": [
        {
          "question": "What does Experimental mean here?",
          "answer": "The toolkit is in its testing phase. It is tested on a synthetic sample and a small number of real Ignition 8.1 and 8.3 backups, formats and outputs may still change, and generated documents should be checked against the source before anyone relies on them. Reports of what it gets wrong are welcome in the issue tracker."
        },
        {
          "question": "Is my backup uploaded anywhere?",
          "answer": "No. Files are read in your browser and never leave your device. The app makes no requests beyond its own files, and a CI check fails the build if that changes. Credentials in the backup are never read."
        },
        {
          "question": "Does it need AI?",
          "answer": "No. The reference, frameworks and every export are generated deterministically. AI is optional, through your own assistant and the local extension, and anything it writes is marked AI draft."
        },
        {
          "question": "Will it write our operating procedures?",
          "answer": "No. Operating steps, alarm responses and safety information can't be established from configuration. Those sections stay Unresolved until the site supplies approved text."
        },
        {
          "question": "Which Ignition versions are supported?",
          "answer": "Project exports from 8.x, tag exports (JSON), and 8.1 and 8.3 gateway backups including their tags, UDTs, alarms, connections and devices. An 8.1 backup keeps that configuration in an internal database, which the toolkit reads without running it; that reader has been tested on one real 8.1 backup so far. Vision windows and reports are listed by name. Tested on a synthetic sample and a small number of real 8.1 and 8.3 backups."
        },
        {
          "question": "Is this an Inductive Automation product?",
          "answer": "No. It's an independent open-source utility that reads exported files. It doesn't replace the Designer or imply endorsement."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "development",
        "secondary": [
          "operations"
        ],
        "capabilities": [
          "Engineering reference generation",
          "Operator and maintenance manual frameworks",
          "Tag, alarm and view inventories",
          "Source coverage reporting",
          "Word, HTML, PDF and CSV export",
          "AI agent workspace and MCP tools"
        ],
        "product_type": "application",
        "interfaces": [
          "Web browser",
          "CLI",
          "MCP (stdio)"
        ],
        "works_with": [
          {
            "name": "Ignition",
            "relationship": "integrates",
            "version": "8.1, 8.3"
          }
        ],
        "options": [
          {
            "resource_id": "source",
            "delivery": "web",
            "environments": [
              "Web browser",
              "Node.js 22 (CLI)"
            ],
            "deployment": [
              "hosted",
              "local"
            ]
          }
        ],
        "offline": "yes",
        "air_gap": "unknown",
        "commercial_use": "yes",
        "support": [
          "community",
          "publisher"
        ]
      }
    },
    "listing": {
      "origin": "community",
      "reviewed": "2026-09-29",
      "submitted_by": "Grindstone Systems",
      "added": "2026-09-29",
      "source": {
        "repository": "Grindstone-Systems/documentation-toolkit",
        "commit": "4b356da1c13149dfc93c16f198fefd62e7f7d0ab",
        "digest": "da0669b815de3e24fa8c0770927d18527539d72521877d9e35103cee4a449bb5"
      }
    }
  },
  {
    "schema": "oic/project/v1",
    "id": "visual-toolkit",
    "name": "Visual Toolkit",
    "summary": "Generate state-aware industrial symbols and stylised 3D equipment from parameters, connect them into skids, then export SVG, smart SVG or glTF.",
    "description": "Visual Toolkit creates industrial equipment graphics from parameters instead of from a fixed library. Choose from eleven families (pump, valve, motor, tank, conveyor, heat exchanger, blower, compressor, static mixer, instrument and pipe fitting) and shape it: discharge direction, driver, actuator, heads, length, level, detail. Every symbol follows the same visual language and has seven designed operating states.\n\n## What you can make\n\n- **2D symbols** in three styles (modern, high-performance, outline) and light or dark themes. Every abnormal state has a shape-coded badge, so status never depends on colour alone.\n- **Smart SVGs.** One file holds every state. A host page switches it by setting `data-vt-state`, and a tank's level follows `--vt-level`. No runtime library is needed.\n- **Stylised 3D models** from the same parameters, exported as standard glTF (`.glb`) with the same part names and states. The 3D view has cutaways, an exploded view, moving product, rippling liquid, and Studio, Plant floor and Night environments.\n- **Skids.** Place equipment, connect ports, and pipes route themselves. The same skid shows in 2D or in 3D with flowing pipes, and a built-in HMI review checks shape coding, contrast, motion, tags and layout.\n\n## Exports\n\n- Plain SVG and PNG\n- Smart SVG\n- An Ignition kit (one SVG per state, starter metadata and a guide), a Perspective icon repository, a Drawing-ready SVG and theme CSS\n- Siemens WinCC Unified and Rockwell FactoryTalk Optix kits (not yet tested on those platforms)\n- Skid exports: SVG, PNG, `.vt-scene.json`, a 3D scene kit and an **Ignition project**: a Perspective view whose equipment and pipes change state with demo memory tags\n- `.vt.json` object files\n- `.glb` 3D models\n\n## Sharing\n\nA design is a recipe of about 150 characters. The address bar is always a share link, and exported SVGs reopen in the builder. Scenes share the same way. Packs bundle designs, and a pull-request gallery collects community designs.\n\n## Where it fits\n\nVisual Toolkit creates assets. It does not replace Ignition's Symbol Factory or Perspective Symbols, and it owns no alarming. Wiring to real equipment stays in Ignition. The sample project's memory tags are only for the demo. On an Ignition 8.3.9 gateway, images, tag-driven state sets, the icon repository (colour and mono), the Drawing component, the theme stylesheet and the sample project (installed on the file system) were verified. The guide lists what failed and what is untested.\n\n## Good to know\n\nEverything runs in your browser as a static site, with no account and no server. The code is open source under Apache-2.0.\n",
    "category": "Visualization",
    "tags": [
      "Symbols",
      "SVG",
      "3D",
      "glTF",
      "WebGPU",
      "HMI design",
      "Ignition",
      "Open source"
    ],
    "platforms": [
      "Web browser"
    ],
    "source": "open-source",
    "repository": "https://github.com/Grindstone-Systems/visual-toolkit",
    "license": "Apache License 2.0",
    "license_url": "https://github.com/Grindstone-Systems/visual-toolkit/blob/main/LICENSE",
    "cost": "free",
    "cost_notes": "The builder is a static site that runs entirely in your browser, with no account, server or time limit. Exported SVG, PNG, glTF and JSON files are yours to use. The source is Apache-2.0 and can be self-hosted. Gallery entries are CC0-1.0.",
    "software_requirements": "no-paid-required",
    "homepage": "https://grindstone-systems.github.io/visual-toolkit/",
    "get_started": "https://grindstone-systems.github.io/visual-toolkit/",
    "documentation": "https://github.com/Grindstone-Systems/visual-toolkit#readme",
    "maintainer": "Grindstone Systems",
    "profile": {
      "schema": "oic/project/v2",
      "id": "visual-toolkit",
      "name": "Visual Toolkit",
      "summary": "Generate state-aware industrial symbols and stylised 3D equipment from parameters, connect them into skids, then export SVG, smart SVG or glTF.",
      "category": "Visualization",
      "tags": [
        "Symbols",
        "SVG",
        "3D",
        "glTF",
        "WebGPU",
        "HMI design",
        "Ignition",
        "Open source"
      ],
      "platforms": [
        "Web browser"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://github.com/Grindstone-Systems"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "/images/projects/29d50ce6aa322c494fbf14e34ff6ec90edf6830b25399143061cdd3d67cc24b8.webp",
          "on_dark": "/images/projects/29d50ce6aa322c494fbf14e34ff6ec90edf6830b25399143061cdd3d67cc24b8.webp",
          "alt": "Visual Toolkit mark, a white pump outline with a green status dot on a charcoal tile"
        }
      },
      "media": [
        {
          "id": "skid-composer-3d",
          "type": "image",
          "src": "/images/projects/8485326c5efb95cadd95499708342476189bd3bebed47ada0a71d20588666e12.webp",
          "title": "A skid in 3D",
          "alt": "The Visual Toolkit Skids page in 3D, showing a tank, two control valves and a pump set on a dark grid, joined by swept pipes with glowing flow tracers and tag labels, next to a short HMI review and the export buttons.",
          "caption": "Skids · One skid, shown in 2D or in this 3D view, rendered live in the app",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "plant-floor",
          "type": "image",
          "src": "/images/projects/d42d8e5882df05b3ecc0a7fb49c27f1247592aee07ca618fc87c1ae3095b0f8f.webp",
          "title": "Generated equipment in 3D",
          "alt": "A tiled plant floor with a stainless process tank, a blue end-suction pump on a baseplate, a red pneumatic control valve, a green motor and a yellow-framed belt conveyor carrying cartons.",
          "caption": "Each model was generated from builder parameters and exported as glTF, then arranged in one scene for this image with a dev harness.",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "builder-3d",
          "type": "image",
          "src": "/images/projects/cf6a3ab4740e6feffcf1dc715a3a77baba7082e0c92f04880aeb0137d7d946d2.webp",
          "title": "Builder with a 3D cutaway",
          "alt": "The Visual Toolkit builder with pump parameters on the left, export and share panels on the right, and a 3D pump sectioned to show its impeller and shaft.",
          "caption": "Hosted builder · WebGPU 3D view with Cutaway and environment presets",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "night-states",
          "type": "image",
          "src": "/images/projects/1d7254b71487b9825aa15f7ff9704504e37126461854bc9c41a39ae412c3c485.webp",
          "title": "Operating states in 3D",
          "alt": "The same equipment in slate paint in a dark scene with a cyan grid; the pump beacon glows red for a fault and the valve beacon amber for a warning.",
          "caption": "Night environment · States drive beacon colour, badge, motion and vibration. Composed scene of individually generated models.",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "tank-cutaway",
          "type": "image",
          "src": "/images/projects/a29928ef2a12b8e359f9766db00f60ae418d42d763b10009de303e2563d676b2.webp",
          "title": "Tank cutaway with live level",
          "alt": "A vertical process tank sectioned to reveal translucent blue contents, a pitched-blade agitator, a sight glass and an orange cut edge, on a tiled floor.",
          "caption": "3D view · The level slider drives the contents and the sight glass",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "all-states",
          "type": "image",
          "src": "/images/projects/526bf6e62ee4716a3500d224582440f11b09ccb39778cb3f8feb3de1de856c5a.webp",
          "title": "21 variants from one definition",
          "alt": "The builder in dark mode showing a grid of a centrifugal pump in three styles and seven operating states, each abnormal state marked by a distinct badge shape.",
          "caption": "All states view · Three styles by seven states, all generated from one configuration",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "live-smart-svg",
          "type": "image",
          "src": "/images/projects/4896a56526e25cd63643aff7315f82a232cd1d511e022737be358647f2a6cfff.webp",
          "title": "A smart SVG driven like an HMI",
          "alt": "The builder's Live view showing a tank symbol in a warning state with a code panel reading svg.dataset.vtState equals warning and a level custom property.",
          "caption": "Live view · One SVG file; a host sets one attribute and one CSS variable",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "open-source",
        "repository": "https://github.com/Grindstone-Systems/visual-toolkit"
      },
      "license": {
        "name": "Apache License 2.0",
        "url": "https://github.com/Grindstone-Systems/visual-toolkit/blob/main/LICENSE",
        "spdx_expression": "Apache-2.0"
      },
      "access": {
        "edition": "Hosted web builder",
        "cost": "free",
        "notes": "The builder is a static site that runs entirely in your browser, with no account, server or time limit. Exported SVG, PNG, glTF and JSON files are yours to use. The source is Apache-2.0 and can be self-hosted. Gallery entries are CC0-1.0.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern web browser",
          "kind": "software",
          "cost": "free",
          "notes": "The 2D builder and exports work in current Chrome, Edge, Firefox and Safari. The 3D view uses WebGPU where available and falls back to WebGL 2."
        },
        {
          "name": "GitHub account",
          "kind": "service",
          "cost": "free",
          "notes": "Only needed to submit a design to the community gallery by pull request. Building, exporting and share links need no account.",
          "applies_to": [
            "gallery"
          ]
        },
        {
          "name": "Ignition Perspective",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "Optional destination for exported assets. SVG images, tag-driven state sets, the icon repository, the Drawing component, the theme stylesheet and the scene sample project were verified on an Ignition 8.3.9 gateway. 8.1, the gateway's project-zip import and the Designer's imports are untested."
        }
      ],
      "actions": [
        {
          "id": "builder",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/",
          "primary": true,
          "label": "Open the builder",
          "description": "Configure equipment, preview states, switch to 3D, compose skids and export. Runs in your browser with no account."
        },
        {
          "id": "gallery",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/#/gallery",
          "primary": false,
          "label": "Browse the gallery"
        },
        {
          "id": "composer",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/#/skids",
          "primary": false,
          "label": "Build a skid"
        },
        {
          "id": "docs",
          "type": "docs",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit#readme",
          "primary": false,
          "label": "Read the docs"
        }
      ],
      "resources": [
        {
          "id": "source",
          "kind": "source",
          "title": "Source code",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit",
          "access": "public",
          "description": "Apache-2.0 TypeScript engine, generators, exporters and the React builder."
        },
        {
          "id": "spatial-spec",
          "kind": "document",
          "title": "3D file contract (glTF extras)",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit/blob/main/docs/SPATIAL.md",
          "access": "public",
          "description": "How renderers switch state, levels, cutaway and effects from the exported .glb."
        }
      ],
      "links": {
        "homepage": "https://grindstone-systems.github.io/visual-toolkit/",
        "docs": "https://github.com/Grindstone-Systems/visual-toolkit#readme",
        "issues": "https://github.com/Grindstone-Systems/visual-toolkit/issues",
        "changelog": "https://github.com/Grindstone-Systems/visual-toolkit/commits/main"
      },
      "faq": [
        {
          "question": "Is this a replacement for Symbol Factory or Perspective Symbols?",
          "answer": "No. Visual Toolkit generates assets. Ignition keeps tags, bindings, alarming and its native components. Use Perspective Symbols where they fit, and Visual Toolkit for equipment and looks they don't cover."
        },
        {
          "question": "Do I need an account or a server?",
          "answer": "No. Everything runs in your browser. Share links carry the whole design in the URL fragment, which is never sent to the web server."
        },
        {
          "question": "Can I use the 3D models elsewhere?",
          "answer": "Yes. They are standard glTF 2.0 files that pass the Khronos validator and open in three.js, Babylon, PlayCanvas and Blender. Visual Toolkit metadata for states, levels and cutaways travels in the file's extras."
        },
        {
          "question": "Has the Ignition workflow been tested?",
          "answer": "Partly. On a fresh Ignition 8.3.9 gateway, SVG images, state sets swapped by a tag expression, the icon repository, a Drawing with a tag-bound fill and the theme stylesheet all worked. So did the sample project from the skid composer, copied onto the gateway's file system. The guide lists what failed and what is still untested, including 8.1, the gateway's project-zip import and the Designer's imports."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "visualization",
        "capabilities": [
          "Symbol generation",
          "SVG export",
          "3D asset generation",
          "HMI design"
        ],
        "product_type": "application",
        "works_with": [
          {
            "name": "Ignition Perspective",
            "relationship": "exports",
            "evidence_url": "https://github.com/Grindstone-Systems/visual-toolkit#readme"
          }
        ],
        "options": [
          {
            "delivery": "web",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "hosted"
            ]
          },
          {
            "resource_id": "source",
            "delivery": "source",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "local",
              "server",
              "cloud"
            ]
          }
        ],
        "offline": "unknown",
        "air_gap": "unknown",
        "commercial_use": "yes"
      }
    },
    "authored": {
      "schema": "oic/project/v2",
      "id": "visual-toolkit",
      "name": "Visual Toolkit",
      "summary": "Generate state-aware industrial symbols and stylised 3D equipment from parameters, connect them into skids, then export SVG, smart SVG or glTF.",
      "category": "Visualization",
      "tags": [
        "Symbols",
        "SVG",
        "3D",
        "glTF",
        "WebGPU",
        "HMI design",
        "Ignition",
        "Open source"
      ],
      "platforms": [
        "Web browser"
      ],
      "publisher": {
        "name": "Grindstone Systems",
        "url": "https://github.com/Grindstone-Systems"
      },
      "description": {
        "file": "./overview.md"
      },
      "branding": {
        "logo": {
          "on_light": "./media/logo.png",
          "on_dark": "./media/logo.png",
          "alt": "Visual Toolkit mark, a white pump outline with a green status dot on a charcoal tile"
        }
      },
      "media": [
        {
          "id": "skid-composer-3d",
          "type": "image",
          "src": "./media/skid-composer-3d.jpg",
          "title": "A skid in 3D",
          "alt": "The Visual Toolkit Skids page in 3D, showing a tank, two control valves and a pump set on a dark grid, joined by swept pipes with glowing flow tracers and tag labels, next to a short HMI review and the export buttons.",
          "caption": "Skids · One skid, shown in 2D or in this 3D view, rendered live in the app",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "plant-floor",
          "type": "image",
          "src": "./media/plant-floor.jpg",
          "title": "Generated equipment in 3D",
          "alt": "A tiled plant floor with a stainless process tank, a blue end-suction pump on a baseplate, a red pneumatic control valve, a green motor and a yellow-framed belt conveyor carrying cartons.",
          "caption": "Each model was generated from builder parameters and exported as glTF, then arranged in one scene for this image with a dev harness.",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "builder-3d",
          "type": "image",
          "src": "./media/builder-3d.jpg",
          "title": "Builder with a 3D cutaway",
          "alt": "The Visual Toolkit builder with pump parameters on the left, export and share panels on the right, and a 3D pump sectioned to show its impeller and shaft.",
          "caption": "Hosted builder · WebGPU 3D view with Cutaway and environment presets",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "night-states",
          "type": "image",
          "src": "./media/night-states.jpg",
          "title": "Operating states in 3D",
          "alt": "The same equipment in slate paint in a dark scene with a cyan grid; the pump beacon glows red for a fault and the valve beacon amber for a warning.",
          "caption": "Night environment · States drive beacon colour, badge, motion and vibration. Composed scene of individually generated models.",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "tank-cutaway",
          "type": "image",
          "src": "./media/tank-cutaway.jpg",
          "title": "Tank cutaway with live level",
          "alt": "A vertical process tank sectioned to reveal translucent blue contents, a pitched-blade agitator, a sight glass and an orange cut edge, on a tiled floor.",
          "caption": "3D view · The level slider drives the contents and the sight glass",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "all-states",
          "type": "image",
          "src": "./media/all-states.jpg",
          "title": "21 variants from one definition",
          "alt": "The builder in dark mode showing a grid of a centrifugal pump in three styles and seven operating states, each abnormal state marked by a distinct badge shape.",
          "caption": "All states view · Three styles by seven states, all generated from one configuration",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        },
        {
          "id": "live-smart-svg",
          "type": "image",
          "src": "./media/live-smart-svg.jpg",
          "title": "A smart SVG driven like an HMI",
          "alt": "The builder's Live view showing a tank symbol in a warning state with a code panel reading svg.dataset.vtState equals warning and a level custom property.",
          "caption": "Live view · One SVG file; a host sets one attribute and one CSS variable",
          "credit": "Grindstone Systems",
          "rights": "Provided for display, resizing and caching in the OIC project listing."
        }
      ],
      "source": {
        "availability": "open-source",
        "repository": "https://github.com/Grindstone-Systems/visual-toolkit"
      },
      "license": {
        "name": "Apache License 2.0",
        "url": "https://github.com/Grindstone-Systems/visual-toolkit/blob/main/LICENSE",
        "spdx_expression": "Apache-2.0"
      },
      "access": {
        "edition": "Hosted web builder",
        "cost": "free",
        "notes": "The builder is a static site that runs entirely in your browser, with no account, server or time limit. Exported SVG, PNG, glTF and JSON files are yours to use. The source is Apache-2.0 and can be self-hosted. Gallery entries are CC0-1.0.",
        "account_required": false
      },
      "requirements": [
        {
          "name": "Modern web browser",
          "kind": "software",
          "cost": "free",
          "notes": "The 2D builder and exports work in current Chrome, Edge, Firefox and Safari. The 3D view uses WebGPU where available and falls back to WebGL 2."
        },
        {
          "name": "GitHub account",
          "kind": "service",
          "cost": "free",
          "notes": "Only needed to submit a design to the community gallery by pull request. Building, exporting and share links need no account.",
          "applies_to": [
            "gallery"
          ]
        },
        {
          "name": "Ignition Perspective",
          "kind": "software",
          "cost": "optional-paid",
          "notes": "Optional destination for exported assets. SVG images, tag-driven state sets, the icon repository, the Drawing component, the theme stylesheet and the scene sample project were verified on an Ignition 8.3.9 gateway. 8.1, the gateway's project-zip import and the Designer's imports are untested."
        }
      ],
      "actions": [
        {
          "id": "builder",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/",
          "primary": true,
          "label": "Open the builder",
          "description": "Configure equipment, preview states, switch to 3D, compose skids and export. Runs in your browser with no account."
        },
        {
          "id": "gallery",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/#/gallery",
          "primary": false,
          "label": "Browse the gallery"
        },
        {
          "id": "composer",
          "type": "demo",
          "url": "https://grindstone-systems.github.io/visual-toolkit/#/skids",
          "primary": false,
          "label": "Build a skid"
        },
        {
          "id": "docs",
          "type": "docs",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit#readme",
          "primary": false,
          "label": "Read the docs"
        }
      ],
      "resources": [
        {
          "id": "source",
          "kind": "source",
          "title": "Source code",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit",
          "access": "public",
          "description": "Apache-2.0 TypeScript engine, generators, exporters and the React builder."
        },
        {
          "id": "spatial-spec",
          "kind": "document",
          "title": "3D file contract (glTF extras)",
          "url": "https://github.com/Grindstone-Systems/visual-toolkit/blob/main/docs/SPATIAL.md",
          "access": "public",
          "description": "How renderers switch state, levels, cutaway and effects from the exported .glb."
        }
      ],
      "links": {
        "homepage": "https://grindstone-systems.github.io/visual-toolkit/",
        "docs": "https://github.com/Grindstone-Systems/visual-toolkit#readme",
        "issues": "https://github.com/Grindstone-Systems/visual-toolkit/issues",
        "changelog": "https://github.com/Grindstone-Systems/visual-toolkit/commits/main"
      },
      "faq": [
        {
          "question": "Is this a replacement for Symbol Factory or Perspective Symbols?",
          "answer": "No. Visual Toolkit generates assets. Ignition keeps tags, bindings, alarming and its native components. Use Perspective Symbols where they fit, and Visual Toolkit for equipment and looks they don't cover."
        },
        {
          "question": "Do I need an account or a server?",
          "answer": "No. Everything runs in your browser. Share links carry the whole design in the URL fragment, which is never sent to the web server."
        },
        {
          "question": "Can I use the 3D models elsewhere?",
          "answer": "Yes. They are standard glTF 2.0 files that pass the Khronos validator and open in three.js, Babylon, PlayCanvas and Blender. Visual Toolkit metadata for states, levels and cutaways travels in the file's extras."
        },
        {
          "question": "Has the Ignition workflow been tested?",
          "answer": "Partly. On a fresh Ignition 8.3.9 gateway, SVG images, state sets swapped by a tag expression, the icon repository, a Drawing with a tag-bound fill and the theme stylesheet all worked. So did the sample project from the skid composer, copied onto the gateway's file system. The guide lists what failed and what is still untested, including 8.1, the gateway's project-zip import and the Designer's imports."
        }
      ],
      "lifecycle": {
        "stage": "preview",
        "maintenance": "active"
      },
      "visibility": "listed",
      "discovery": {
        "primary": "visualization",
        "capabilities": [
          "Symbol generation",
          "SVG export",
          "3D asset generation",
          "HMI design"
        ],
        "product_type": "application",
        "works_with": [
          {
            "name": "Ignition Perspective",
            "relationship": "exports",
            "evidence_url": "https://github.com/Grindstone-Systems/visual-toolkit#readme"
          }
        ],
        "options": [
          {
            "delivery": "web",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "hosted"
            ]
          },
          {
            "resource_id": "source",
            "delivery": "source",
            "environments": [
              "Browser"
            ],
            "deployment": [
              "local",
              "server",
              "cloud"
            ]
          }
        ],
        "offline": "unknown",
        "air_gap": "unknown",
        "commercial_use": "yes"
      }
    },
    "listing": {
      "origin": "community",
      "reviewed": "2026-09-29",
      "submitted_by": "Grindstone Systems",
      "added": "2026-09-29",
      "source": {
        "repository": "Grindstone-Systems/visual-toolkit",
        "commit": "0d3457f533d0b9b648f4e65d17648a84ee501848",
        "digest": "58133d2892906a29309e42f6258c56b2389e112d085a5f7fc8ea978d61d190dc"
      }
    }
  }
]
