{
  "engine": "igrimaldi.engineering — Physical AI & Robotics cluster control engine",
  "cluster": "physical-ai",
  "schemaVersion": "0.1.0",
  "snapshotDate": "2026-09-05",
  "allowedStatuses": [
    "CORE",
    "MODULE",
    "RESEARCH",
    "INTERNAL",
    "EXPERIMENT",
    "ARCHIVE"
  ],
  "counts": {
    "CORE": 2,
    "MODULE": 4,
    "RESEARCH": 1,
    "INTERNAL": 0,
    "EXPERIMENT": 2,
    "ARCHIVE": 0
  },
  "entries": [
    {
      "id": "palletizer",
      "repository": "github.com/iceccarelli/palletizer",
      "cluster": "physical-ai",
      "status": "CORE",
      "description": "Robot-agnostic palletizing software: mixed-SKU pallet planning with a checkable stability number, deterministic orchestrator, hardware-agnostic robot and gripper interfaces, telemetry, MCP tool server, native C++ packer, ROS 2 bridge, browser optimizer.",
      "language": [
        "Python",
        "TypeScript",
        "C++"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "github": {
        "owner": "iceccarelli",
        "name": "palletizer"
      },
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer",
          "label": "github.com/iceccarelli/palletizer"
        },
        {
          "kind": "pypi",
          "url": "https://pypi.org/project/palletizer-full-stack/",
          "label": "pypi · palletizer-full-stack 0.2.0"
        },
        {
          "kind": "deployment",
          "url": "https://palletizer-app.vercel.app",
          "label": "palletizer-app.vercel.app",
          "verified": false
        }
      ],
      "architecture": "Six Python packages (core, control, perception, planning, power, orchestrator) around a fixed-rate deterministic loop; optimizer with pybind11 accelerator; Next.js 14 web app; MCP stdio server; ROS 2 integration package.",
      "dependencies": [
        "Python ≥ 3.11",
        "pybind11 / CMake (optional)",
        "Next.js 14",
        "ROS 2 (optional, lazy)"
      ],
      "maturity": "alpha",
      "businessHypothesis": "A customer can deploy a palletizing cell faster and run it cheaper than with the incumbent integrator-built control software, because planning, stability checks, safety logic and telemetry are not rewritten per cell.",
      "customer": "None contracted. Targets: system integrators, packaging companies, 3PL warehouses.",
      "technicalRole": "First commercial candidate. Owns task planning, pallet optimisation, orchestration, telemetry.",
      "duplicateFunctionality": "construction/ vertical pack overlaps the Operations cluster (FloorForge, DryForge) and is under kill-rule review.",
      "strategicValue": "high",
      "ipValue": "medium",
      "revenuePotential": "medium",
      "integrationPotential": "high",
      "securityRisk": "medium",
      "regulatory": "ISO 10218 / ISO/TS 15066 apply to any cell that executes; the software makes no certification claim.",
      "rationale": "The only repository in the cluster with a public package, a test suite and a runnable optimizer. It is CORE because everything else in the cluster is measured against whether it makes this cheaper to deploy.",
      "activity": {
        "id": "palletizer",
        "source": "live",
        "pushedAt": "2026-07-31",
        "stars": 0,
        "openIssues": 0,
        "defaultBranch": "main",
        "language": "TypeScript",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "robot-lidar-fusion",
      "repository": "robot-lidar-fusion (repository path not public)",
      "cluster": "physical-ai",
      "status": "CORE",
      "description": "ROS 2 LiDAR–camera fusion: SE(3) extrinsic projection, pinhole intrinsics, z-buffer occlusion, KITTI calibration loader, diagnostics CLI. Shared perception IP for palletizing and inspection.",
      "language": [
        "Python"
      ],
      "lastCommitSnapshot": null,
      "artifacts": [
        {
          "kind": "pypi",
          "url": "https://pypi.org/project/robot-lidar-fusion/",
          "label": "pypi · robot-lidar-fusion 0.4.0"
        }
      ],
      "architecture": "Python package with a projection pipeline, calibration loaders and a CLI; ROS 2 nodes wrap the pure functions.",
      "dependencies": [
        "Python",
        "NumPy",
        "ROS 2 (optional)"
      ],
      "maturity": "alpha",
      "businessHypothesis": "One calibrated perception layer shared by every cell and every inspection robot lowers integration time and removes a vendor-specific dependency.",
      "customer": "None. Internal consumer: palletizer perception, autonomous inspection.",
      "technicalRole": "Shared IP: perception layer of the stack. Benchmark owner for precision, recall, latency, localisation error.",
      "duplicateFunctionality": "palletizer/ros2_integration carries a LiDAR perception example that should consume this package rather than re-implement it.",
      "strategicValue": "high",
      "ipValue": "high",
      "revenuePotential": "low",
      "integrationPotential": "high",
      "securityRisk": "low",
      "regulatory": "None on its own; inherits the safety case of the cell that uses it.",
      "rationale": "CORE as shared IP, not as a product. The GitHub repository is not public although the PyPI package is — the register says so instead of linking a path that returns 404.",
      "activity": {
        "id": "robot-lidar-fusion",
        "source": "snapshot",
        "pushedAt": null,
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "Python",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "palletizer-simulation",
      "repository": "palletizer/core/simulation · palletizer/web (R3F + Rapier)",
      "cluster": "physical-ai",
      "status": "MODULE",
      "description": "Digital simulation of the palletizing cell: physics demos in the browser and a simulation package in the core. The mandate requires simulation before hardware; this is where the KPI harness has to live.",
      "language": [
        "TypeScript",
        "Python"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer/tree/main/core/simulation",
          "label": "palletizer/core/simulation"
        }
      ],
      "architecture": "Rapier physics in React Three Fiber for the browser; Python simulation package for headless runs.",
      "dependencies": [
        "palletizer"
      ],
      "maturity": "prototype",
      "businessHypothesis": "A cycles/hour and intervention-rate number produced in simulation is the cheapest evidence a customer will accept before hardware.",
      "customer": "Internal.",
      "technicalRole": "Simulator layer of the stack; must emit the twelve palletizing KPIs as JSON.",
      "duplicateFunctionality": "None.",
      "strategicValue": "high",
      "ipValue": "low",
      "revenuePotential": "none",
      "integrationPotential": "medium",
      "securityRisk": "low",
      "regulatory": "None.",
      "rationale": "MODULE of palletizer, not a repository. Listed because the next experiment depends on it.",
      "activity": {
        "id": "palletizer-simulation",
        "source": "snapshot",
        "pushedAt": "2026-07-31",
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "TypeScript",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "palletizer-ros2",
      "repository": "palletizer/ros2_integration",
      "cluster": "physical-ai",
      "status": "MODULE",
      "description": "ROS 2 node, LiDAR perception bridge and vendor-neutral robot bridge examples. Imports without ROS 2 installed.",
      "language": [
        "Python"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer/tree/main/ros2_integration",
          "label": "palletizer/ros2_integration"
        }
      ],
      "architecture": "Lazy-loaded ROS 2 package bridging the orchestrator to a robot controller.",
      "dependencies": [
        "palletizer",
        "robot-lidar-fusion",
        "ROS 2"
      ],
      "maturity": "prototype",
      "businessHypothesis": "Robot-agnostic only counts if at least one real controller is driven through this seam.",
      "customer": "Internal.",
      "technicalRole": "Robot controller / actuation seam of the stack.",
      "duplicateFunctionality": "LiDAR example duplicates robot-lidar-fusion; to be replaced by a dependency.",
      "strategicValue": "medium",
      "ipValue": "low",
      "revenuePotential": "none",
      "integrationPotential": "high",
      "securityRisk": "medium",
      "regulatory": "Any real actuation goes through the safety gate; the bridge itself is not a safety function.",
      "rationale": "MODULE. No certified vendor driver exists and none is claimed.",
      "activity": {
        "id": "palletizer-ros2",
        "source": "snapshot",
        "pushedAt": "2026-07-31",
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "Python",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "palletizer-mcp",
      "repository": "palletizer/mcp",
      "cluster": "physical-ai",
      "status": "MODULE",
      "description": "MCP stdio JSON-RPC server exposing the optimizer to agents as typed tools.",
      "language": [
        "Python"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer/tree/main/mcp",
          "label": "palletizer/mcp"
        }
      ],
      "architecture": "stdio JSON-RPC; tool schemas map onto optimizer calls.",
      "dependencies": [
        "palletizer"
      ],
      "maturity": "alpha",
      "businessHypothesis": "Agents may plan and propose; this is the controlled interface through which they do so.",
      "customer": "Internal.",
      "technicalRole": "Agentic interface. Plan and simulate tools only — never an actuation tool.",
      "duplicateFunctionality": "None.",
      "strategicValue": "medium",
      "ipValue": "low",
      "revenuePotential": "none",
      "integrationPotential": "medium",
      "securityRisk": "medium",
      "regulatory": "Must never expose a tool that bypasses the safety gate.",
      "rationale": "MODULE. Exists; tested (tests/test_mcp_server.py); bounded by the agent rules on /architecture.",
      "activity": {
        "id": "palletizer-mcp",
        "source": "snapshot",
        "pushedAt": "2026-07-31",
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "Python",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "palletizer-native",
      "repository": "palletizer/native",
      "cluster": "physical-ai",
      "status": "MODULE",
      "description": "C++ shelf/skyline packer bound with pybind11; Python fallback when the extension is absent.",
      "language": [
        "C++",
        "Python"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer/tree/main/native",
          "label": "palletizer/native"
        }
      ],
      "architecture": "CMake extension; invariants tested against the Python implementation.",
      "dependencies": [
        "palletizer",
        "pybind11",
        "CMake"
      ],
      "maturity": "alpha",
      "businessHypothesis": "Throughput of the planner matters only once a cell runs; kept because the invariants are tested.",
      "customer": "Internal.",
      "technicalRole": "Motion/task planner acceleration.",
      "duplicateFunctionality": "None.",
      "strategicValue": "low",
      "ipValue": "medium",
      "revenuePotential": "none",
      "integrationPotential": "low",
      "securityRisk": "low",
      "regulatory": "None.",
      "rationale": "MODULE. No speed-up figure is quoted because none is published.",
      "activity": {
        "id": "palletizer-native",
        "source": "snapshot",
        "pushedAt": "2026-07-31",
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "C++",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "palletizer-construction",
      "repository": "palletizer/construction",
      "cluster": "physical-ai",
      "status": "EXPERIMENT",
      "description": "Construction-materials vertical (drywall, lumber, bagged goods, flooring) on the palletizing optimizer. Its own changelog states the stability and cycle figures are illustrative, not validated.",
      "language": [
        "Python",
        "TypeScript"
      ],
      "lastCommitSnapshot": "2026-07-31",
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/palletizer/tree/main/construction",
          "label": "palletizer/construction"
        }
      ],
      "architecture": "Optimizer variant, SKU library, stability constraints, five tests.",
      "dependencies": [
        "palletizer"
      ],
      "maturity": "prototype",
      "businessHypothesis": "Unproven. A second vertical before the first has a customer violates the mandate (\"no new robot vertical without commercial evidence\").",
      "customer": "None.",
      "technicalRole": "Vertical experiment.",
      "duplicateFunctionality": "Overlaps the Operations cluster (FloorForge, DryForge domain).",
      "strategicValue": "low",
      "ipValue": "low",
      "revenuePotential": "low",
      "integrationPotential": "low",
      "securityRisk": "low",
      "regulatory": "None.",
      "rationale": "EXPERIMENT under kill-rule review: no customer, no measured task, no benchmark advantage. Decision required.",
      "activity": {
        "id": "palletizer-construction",
        "source": "snapshot",
        "pushedAt": "2026-07-31",
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": "Python",
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "autonomous-inspection",
      "repository": "autonomous inspection / HV inspection robotics (no repository located)",
      "cluster": "physical-ai",
      "status": "RESEARCH",
      "description": "Electrical-infrastructure inspection as the strategic bridge to Energy Intelligence: DETECTION → CLASSIFICATION → LOCALISATION → INSPECTION PLAN → SAFE ROBOT EXECUTION → EVIDENCE → REPORT.",
      "language": [],
      "lastCommitSnapshot": null,
      "artifacts": [],
      "architecture": "Not yet built. Would consume robot-lidar-fusion for perception and the safety gate for execution.",
      "dependencies": [
        "robot-lidar-fusion",
        "NeuralBridge safety runtime (Energy cluster, by contract)"
      ],
      "maturity": "concept",
      "businessHypothesis": "Less dangerous human work, lower inspection cost, higher inspection frequency, earlier fault detection.",
      "customer": "None. Not to be commercialised before the seven-step chain is demonstrated.",
      "technicalRole": "Strategic bridge to the Energy cluster via the InspectionResult contract.",
      "duplicateFunctionality": "None.",
      "strategicValue": "high",
      "ipValue": "medium",
      "revenuePotential": "medium",
      "integrationPotential": "high",
      "securityRisk": "high",
      "regulatory": "Work near HV assets is governed by the operator’s safety rules; nothing here involves employer systems or data.",
      "rationale": "RESEARCH. Named in the mandate; no repository exists under this account as of the snapshot date, and the register says so.",
      "activity": {
        "id": "autonomous-inspection",
        "source": "snapshot",
        "pushedAt": null,
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": null,
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "ai-agent-control",
      "repository": "github.com/iceccarelli/ai-agent-control",
      "cluster": "physical-ai",
      "status": "EXPERIMENT",
      "description": "Public repository whose contents are a one-line README and uploaded archives. No robotics-related module has been identified in it.",
      "language": [],
      "lastCommitSnapshot": "2026-09-05",
      "github": {
        "owner": "iceccarelli",
        "name": "ai-agent-control"
      },
      "artifacts": [
        {
          "kind": "github",
          "url": "https://github.com/iceccarelli/ai-agent-control",
          "label": "github.com/iceccarelli/ai-agent-control"
        }
      ],
      "architecture": "None identifiable.",
      "dependencies": [],
      "maturity": "concept",
      "businessHypothesis": "None stated.",
      "customer": "None.",
      "technicalRole": "Mandate names its \"robotics-related parts\"; none located.",
      "duplicateFunctionality": "Unknown until unpacked.",
      "strategicValue": "none",
      "ipValue": "none",
      "revenuePotential": "none",
      "integrationPotential": "none",
      "securityRisk": "low",
      "regulatory": "None.",
      "rationale": "EXPERIMENT under kill-rule review. Fails five of six criteria on inspection; ARCHIVE unless a robotics module is extracted.",
      "activity": {
        "id": "ai-agent-control",
        "source": "live",
        "pushedAt": "2026-09-05",
        "stars": 0,
        "openIssues": 0,
        "defaultBranch": "main",
        "language": null,
        "asOf": "2026-09-05"
      }
    },
    {
      "id": "neuralbridge-safety-runtime",
      "repository": "NeuralBridge (Energy cluster, private)",
      "cluster": "energy",
      "status": "INTERNAL",
      "description": "Safety runtime owned by the Energy Intelligence cluster. Physical AI consumes its authorisation interface by contract; it never imports the code.",
      "language": [],
      "lastCommitSnapshot": null,
      "artifacts": [],
      "architecture": "Private. Interface only: request_authorization → authorised | refused, with provenance.",
      "dependencies": [],
      "maturity": "prototype",
      "businessHypothesis": "One deterministic authorisation boundary shared across clusters reduces certification surface.",
      "customer": "Internal.",
      "technicalRole": "Safety / constraint engine reference for the authorisation step of the gate.",
      "duplicateFunctionality": "None — Physical AI must not build a second safety runtime.",
      "strategicValue": "high",
      "ipValue": "high",
      "revenuePotential": "none",
      "integrationPotential": "high",
      "securityRisk": "high",
      "regulatory": "Any safety claim belongs to its owner cluster, not to this register.",
      "rationale": "INTERNAL and not ours. Listed so the dependency is explicit and nothing is claimed for it here.",
      "activity": {
        "id": "neuralbridge-safety-runtime",
        "source": "snapshot",
        "pushedAt": null,
        "stars": null,
        "openIssues": null,
        "defaultBranch": null,
        "language": null,
        "asOf": "2026-09-05"
      }
    }
  ],
  "boundaries": [
    {
      "name": "FloorForge AI",
      "owner": "operations",
      "rule": "Stays in Operations until there is actual physical robotic execution. Concept renders are not robots.",
      "artifact": "github.com/iceccarelli/floorforge-ai"
    },
    {
      "name": "PaintForge AI",
      "owner": "operations",
      "rule": "Stays in Operations until there is actual physical robotic execution.",
      "artifact": "github.com/iceccarelli/paintforge-ai"
    },
    {
      "name": "DryForge AI",
      "owner": "operations",
      "rule": "Stays in Operations until there is actual physical robotic execution.",
      "artifact": "github.com/iceccarelli/dryforge-ai"
    },
    {
      "name": "GridOS · DERIM · energie-teilen",
      "owner": "energy",
      "rule": "Energy Intelligence. Physical AI talks to them through versioned events only (see /contracts)."
    }
  ]
}