Material Semantic Patch
packages/material-semantic-patch/src/index.ts, packages/protocol/src/index.ts.This generated snapshot is derived from packages/material-semantic-patch. Material semantic patches are intent-level material edits: the package validates each operation against its op schema, applies it to the material graph document, revalidates the graph, and compiles the target artifacts, returning a receipt. The ai_safe, mcp_safe, and sdk_basic packs advertise the same operation alphabet as the visual editor; replaceGraph is the only operation withheld from every interactive author and is reserved for import and test sources.
Patch version: material-semantic-patch.v1. Operation catalog version: material-semantic-patch-ops.v1. Operation catalog hash: sha256:56b9abeafdb710e94658bdd7e9f77c83cb473b5e78421862f3c010816a269c75. Operation count: 23.
Operations
| Operation | Title | Description | Changed surfaces | Allowed sources | Undo |
|---|---|---|---|---|---|
createBasicPbrSurface | Create Basic PBR Surface | Create or reset a graph-native OpenPBR surface from semantic PBR values. | graph, pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setPbrBaseColor | Set Base Color | Set the OpenPBR base color without exposing node ids. | pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setPbrColor | Set PBR Color Field | Set a color-valued OpenPBR compatibility field. | pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setPbrScalar | Set PBR Scalar Field | Set a scalar OpenPBR compatibility field. | pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setAlphaMode | Set Alpha Mode | Set alpha mode with explicit compatibility projection. | pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setDoubleSided | Set Double Sided | Set double-sided material rendering intent. | pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setTextureSlot | Set Texture Slot | Assign a texture asset to a known material slot. | pbr, textures | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
clearTextureSlot | Clear Texture Slot | Remove a texture asset from a known material slot. | pbr, textures | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setInstanceAtlas | Set Instance Atlas | Declare the per-instance texture-array atlas an instance may select a tile from. | pbr, instance | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
clearInstanceAtlas | Clear Instance Atlas | Remove the per-instance atlas declaration from the material. | pbr, instance | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
setPreviewGeometry | Set Preview Geometry | Set editor preview geometry metadata only. | editor | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
createWaterFoamMaterial | Create Water Foam Material | Create an appearance-only water material graph with explicit fallback diagnostics. | graph, water, pbr | visual_editor, ai, mcp, sdk, template, test, internal | receipt-data |
addCatalogNode | Add Catalog Node | Add a node by catalog id (catalog nodes only; trusted-only nodes rejected for every source). | topology | visual_editor, ai, mcp, sdk, import, test | receipt-data |
connectSockets | Connect Sockets | Connect two catalog sockets. | topology | visual_editor, ai, mcp, sdk, import, test | receipt-data |
disconnectEdge | Disconnect Edge | Remove a graph edge. | topology | visual_editor, ai, mcp, sdk, import, test | receipt-data |
replaceGraph | Replace Graph | Replace with a fully validated graph document for import/test paths. | topology | import, test | receipt-data |
removeNode | Remove Node | Remove a graph node and its incident edges. | topology | visual_editor, ai, mcp, sdk, import, test | receipt-data |
setNodePosition | Set Node Position | Set a graph node's canvas position (layout only). | editor | visual_editor, ai, mcp, sdk, import, test | receipt-data |
setNodeParameter | Set Node Parameter | Set a generic node parameter by key. | topology | visual_editor, ai, mcp, sdk, import, test | receipt-data |
addComment | Add Comment | Add or replace a canvas comment annotation (layout only). | editor | visual_editor, ai, mcp, sdk, import, test | receipt-data |
removeComment | Remove Comment | Remove a canvas comment annotation by id. | editor | visual_editor, ai, mcp, sdk, import, test | receipt-data |
groupNodes | Group Nodes | Add or replace a canvas node group (layout only). | editor | visual_editor, ai, mcp, sdk, import, test | receipt-data |
removeGroup | Remove Group | Remove a canvas node group by id. | editor | visual_editor, ai, mcp, sdk, import, test | receipt-data |
Operation reference
createBasicPbrSurface
Create or reset a graph-native OpenPBR surface from semantic PBR values.
- Title: Create Basic PBR Surface.
- Changed surfaces:
graph,pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setPbrBaseColor
Set the OpenPBR base color without exposing node ids.
- Title: Set Base Color.
- Changed surfaces:
pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setPbrColor
Set a color-valued OpenPBR compatibility field.
- Title: Set PBR Color Field.
- Changed surfaces:
pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setPbrScalar
Set a scalar OpenPBR compatibility field.
- Title: Set PBR Scalar Field.
- Changed surfaces:
pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
Scalar field ranges enforced at the operation boundary:
metallicmust be between0and1.roughnessmust be between0and1.alphaCutoffmust be between0and1.emissiveIntensitymust be between0and100.normalStrengthmust be between0and4.occlusionIntensitymust be between0and4.clearcoatmust be between0and1.clearcoatRoughnessmust be between0and1.sheenmust be between0and1.sheenRoughnessmust be between0and1.transmissionmust be between0and1.transmissionRoughnessmust be between0and1.iormust be between1and2.333.attenuationDistancemust be between0and1000000.anisotropymust be between0and1.anisotropyRotationmust be between-25.132741228718345and25.132741228718345.
setAlphaMode
Set alpha mode with explicit compatibility projection.
- Title: Set Alpha Mode.
- Changed surfaces:
pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setDoubleSided
Set double-sided material rendering intent.
- Title: Set Double Sided.
- Changed surfaces:
pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setTextureSlot
Assign a texture asset to a known material slot.
- Title: Set Texture Slot.
- Changed surfaces:
pbr,textures. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
clearTextureSlot
Remove a texture asset from a known material slot.
- Title: Clear Texture Slot.
- Changed surfaces:
pbr,textures. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setInstanceAtlas
Declare the per-instance texture-array atlas an instance may select a tile from.
- Title: Set Instance Atlas.
- Changed surfaces:
pbr,instance. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
clearInstanceAtlas
Remove the per-instance atlas declaration from the material.
- Title: Clear Instance Atlas.
- Changed surfaces:
pbr,instance. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
setPreviewGeometry
Set editor preview geometry metadata only.
- Title: Set Preview Geometry.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
createWaterFoamMaterial
Create an appearance-only water material graph with explicit fallback diagnostics.
- Title: Create Water Foam Material.
- Changed surfaces:
graph,water,pbr. - Allowed sources:
visual_editor,ai,mcp,sdk,template,test,internal. - Undo:
receipt-data.
addCatalogNode
Add a node by catalog id (catalog nodes only; trusted-only nodes rejected for every source).
- Title: Add Catalog Node.
- Changed surfaces:
topology. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
connectSockets
Connect two catalog sockets.
- Title: Connect Sockets.
- Changed surfaces:
topology. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
disconnectEdge
Remove a graph edge.
- Title: Disconnect Edge.
- Changed surfaces:
topology. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
replaceGraph
Replace with a fully validated graph document for import/test paths.
- Title: Replace Graph.
- Changed surfaces:
topology. - Allowed sources:
import,test. - Undo:
receipt-data.
removeNode
Remove a graph node and its incident edges.
- Title: Remove Node.
- Changed surfaces:
topology. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
setNodePosition
Set a graph node's canvas position (layout only).
- Title: Set Node Position.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
setNodeParameter
Set a generic node parameter by key.
- Title: Set Node Parameter.
- Changed surfaces:
topology. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
addComment
Add or replace a canvas comment annotation (layout only).
- Title: Add Comment.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
removeComment
Remove a canvas comment annotation by id.
- Title: Remove Comment.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
groupNodes
Add or replace a canvas node group (layout only).
- Title: Group Nodes.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
removeGroup
Remove a canvas node group by id.
- Title: Remove Group.
- Changed surfaces:
editor. - Allowed sources:
visual_editor,ai,mcp,sdk,import,test. - Undo:
receipt-data.
Operation packs
Each pack is an allowlisted operation alphabet advertised to a source class. The agent-facing tool for a source binds the schema union to its pack, so an operation absent from the pack is not a member of the schema the caller can submit.
| Pack | Operation count | Operations |
|---|---|---|
visual_editor | 22 | createBasicPbrSurface, setPbrBaseColor, setPbrColor, setPbrScalar, setAlphaMode, setDoubleSided, setTextureSlot, clearTextureSlot, setInstanceAtlas, clearInstanceAtlas, setPreviewGeometry, createWaterFoamMaterial, addCatalogNode, connectSockets, disconnectEdge, removeNode, setNodePosition, setNodeParameter, addComment, removeComment, groupNodes, removeGroup |
ai_safe | 22 | createBasicPbrSurface, setPbrBaseColor, setPbrColor, setPbrScalar, setAlphaMode, setDoubleSided, setTextureSlot, clearTextureSlot, setInstanceAtlas, clearInstanceAtlas, setPreviewGeometry, createWaterFoamMaterial, addCatalogNode, connectSockets, disconnectEdge, removeNode, setNodePosition, setNodeParameter, addComment, removeComment, groupNodes, removeGroup |
mcp_safe | 22 | createBasicPbrSurface, setPbrBaseColor, setPbrColor, setPbrScalar, setAlphaMode, setDoubleSided, setTextureSlot, clearTextureSlot, setInstanceAtlas, clearInstanceAtlas, setPreviewGeometry, createWaterFoamMaterial, addCatalogNode, connectSockets, disconnectEdge, removeNode, setNodePosition, setNodeParameter, addComment, removeComment, groupNodes, removeGroup |
sdk_basic | 22 | createBasicPbrSurface, setPbrBaseColor, setPbrColor, setPbrScalar, setAlphaMode, setDoubleSided, setTextureSlot, clearTextureSlot, setInstanceAtlas, clearInstanceAtlas, setPreviewGeometry, createWaterFoamMaterial, addCatalogNode, connectSockets, disconnectEdge, removeNode, setNodePosition, setNodeParameter, addComment, removeComment, groupNodes, removeGroup |
import | 11 | replaceGraph, addCatalogNode, connectSockets, disconnectEdge, removeNode, setNodePosition, setNodeParameter, addComment, removeComment, groupNodes, removeGroup |
Patch sources
The patch source is one of visual_editor, ai, mcp, sdk, template, import, test, internal.
Texture slots
Known material texture slots: baseColor, normal, metallicRoughness, emissive, occlusion, lightMap, clearcoatNormal, sheenColor, transmission.
Eval corpus
| Case | Title | Operations |
|---|---|---|
red_metal | Red Metallic PBR | createBasicPbrSurface, setPbrBaseColor, setPbrScalar, setPbrScalar |
water_foam | Water Foam Appearance | createWaterFoamMaterial |
canvas_annotations | Graph Canvas Annotations (comment + group, layout only) | addComment, groupNodes |
Backend integration
- Action Catalog id:
project.material.patch.apply. - HTTP:
POST /api/games/:gameId/project/assets/:assetId/material/patches/apply. - MCP:
project_apply_material_semantic_patch. - AI metadata:
apply_material_semantic_patch. - SDK:
project.materials.applySemanticPatch.