{
 "schema": "aiblocks-page/1",
 "id": "agency-macos-spatial-metal-engineer",
 "type": "agent",
 "name": "macOS Metal rendering planner",
 "summary": "Plan a Swift and Metal 3D renderer for Mac and Apple Vision Pro, with GPU drawing for large scenes, gaze and hand input, and frame rate checks.",
 "headline": "macOS Metal rendering planner",
 "subhead": "Describe what you want to draw and which Apple devices must show it. It plans the Metal drawing, the Vision Pro link, the layout and the input. You get a design, draft Swift and Metal code and a profiling list to run.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "What you want to draw and how many items, such as a graph of 25,000 nodes or one 3D model",
  "Which devices must show it, such as a Mac only or a Mac and Vision Pro",
  "Your frame rate and memory goals",
  "Where the data comes from and how often it changes",
  "Your existing Swift or Metal code, or notes from a GPU capture, pasted as text (optional)"
 ],
 "you_get": [
  "A frame budget and a rendering plan for the scene",
  "A Vision Pro plan with the stereo link, input and comfort rules, if you need it",
  "A layout plan for how items are placed, if your data is a graph",
  "A table of speed targets to test, marked as targets",
  "Draft Swift and Metal code for the parts you ask for, marked as not run",
  "A profiling checklist to run in Xcode"
 ],
 "use_when": [
  "You want to draw tens of thousands of items, such as a graph or a point cloud, in a Mac app with Metal.",
  "You want the same scene in a window on a Mac and in an immersive view on Vision Pro.",
  "Your Metal drawing drops frames and you want a plan for fixing it.",
  "You need gaze and pinch picking, so a person can select an item in 3D."
 ],
 "skip_when": [
  "You are building the windows and buttons of a visionOS app, with no custom GPU drawing. Use the visionOS Spatial Engineer agent.",
  "You want a 3D experience that runs in a web browser. Use the WebXR experience designer.",
  "Your game runs in Unity or Unreal. Use the Unity software architect or the Unreal gameplay systems engineer.",
  "You want an iPhone or iPad app. Use the Mobile app builder."
 ],
 "output_sample": {
  "input": [
   "What you want to draw and how many items",
   "Which devices must show it, such as Mac and Vision Pro",
   "Your frame rate and memory goals",
   "Your existing Swift or Metal code (optional)"
  ],
  "prerequisites": [
   "An AI that can read files, such as Claude, ChatGPT or Gemini",
   "A Mac with Xcode to build and profile the draft code",
   "An Apple Vision Pro, if that is a target"
  ],
  "output": [
   {
    "name": "Goal and assumptions",
    "contains": "What is drawn, on which devices, the frame and memory goals and what the plan assumes."
   },
   {
    "name": "Rendering plan",
    "contains": "Each drawing technique, why it helps and its risk."
   },
   {
    "name": "Layout plan",
    "contains": "How items are placed and whether the GPU or the CPU does it."
   },
   {
    "name": "Vision Pro plan",
    "contains": "The stereo link, gaze and pinch input and the comfort rules."
   },
   {
    "name": "Speed targets",
    "contains": "A table of targets to test with how to capture each one."
   },
   {
    "name": "Profiling checklist",
    "contains": "What to capture in Xcode, what to look for and what to change."
   }
  ]
 },
 "output_shape": "GOAL AND ASSUMPTIONS\n  <what is drawn> | <devices> | <frame and memory goals> | <data source> | <assumptions>\n\nRENDERING PLAN\n  <technique> | <why it helps> | <risk>\n\nLAYOUT PLAN\n  <method> | <runs on CPU or GPU> | <when it recalculates>\n\nVISION PRO PLAN\n  <stereo link> | <input> | <comfort and access rules>\n\nSPEED TARGETS (TO TEST)\n  <measure> | <target> | <how to capture it>\n\nDRAFT CODE (NOT RUN)\n  <file name> | <what it does>\n\nPROFILING CHECKLIST AND NEXT STEP\n  <capture> | <what to look for> | <what to change>",
 "how_to_use": [
  "Download the pack and add it to your AI as a skill. If you cannot, paste SKILL.md and then references/source-agent.md into a new chat.",
  "Describe what to draw, how many items, which devices, and your frame rate goal. Paste any Swift or Metal code you already have.",
  "Type \"Plan the rendering and give me a frame budget, then draft the pipeline.\" Your AI asks once for anything missing.",
  "Read the speed targets first. Replace any that do not match your needs with your own numbers.",
  "Build the draft in Xcode and run a GPU capture on your own Mac. Your AI cannot build or profile for you.",
  "If Vision Pro is a target, test on the device and check comfort over a long session before you trust the plan."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "vLLM model server setup planner",
   "url": "https://useaiblocks.com/skills/vllm-model-server-setup",
   "why": "Build it"
  },
  {
   "name": "Mixture of experts trainer",
   "url": "https://useaiblocks.com/skills/mixture-of-experts-trainer",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/spatial-computing/macos-spatial-metal-engineer.md",
  "licence": "MIT",
  "original_name": "macOS Spatial/Metal Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "macOS Spatial/Metal Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/spatial-computing/macos-spatial-metal-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-macos-spatial-metal-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-macos-spatial-metal-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-macos-spatial-metal-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-macos-spatial-metal-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-macos-spatial-metal-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-macos-spatial-metal-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-macos-spatial-metal-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
