Skip to content
Back to skills

Maya Materials

ASecurity

Create and assign materials in Maya via MCP - Arnold (aiStandardSurface), Lambert, Blinn, and USD Preview Surface. Use for shader creation, texture assignment, material assignment to geometry, and look dev workflows. Triggers on "maya material", "assign shader", "aiStandardSurface", "maya texture", "look dev".

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
ai-agentspythongobashnode

Works with

  • mcp

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add sideshowroberto/vfx-agent-toolkit --skill maya-materials --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Maya Materials?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Maya Materials
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sideshowroberto-maya-materials/badge)](https://www.skillsdirectory.com/skills/sideshowroberto-maya-materials)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: maya-materials
description: Create and assign materials in Maya via MCP - Arnold (aiStandardSurface), Lambert, Blinn, and USD Preview Surface. Use for shader creation, texture assignment, material assignment to geometry, and look dev workflows. Triggers on "maya material", "assign shader", "aiStandardSurface", "maya texture", "look dev".
allowed-tools: Read,Write,Bash
---

# Maya Materials Skill

Creates and assigns shaders in a live Maya session via the commandPort bridge.

## Prerequisites

- Maya is open with commandPort active
- For Arnold shaders: Arnold for Maya (MtoA) loaded

## Standard Surface (Arnold - preferred for production)

```python
import maya.cmds as cmds

# Create shader + shading group
shader = cmds.shadingNode('aiStandardSurface', asShader=True, name='hero_mat')
sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name='hero_matSG')
cmds.connectAttr(f'{shader}.outColor', f'{sg}.surfaceShader')

# Set base color
cmds.setAttr(f'{shader}.baseColor', 0.8, 0.2, 0.1, type='double3')
cmds.setAttr(f'{shader}.metalness', 0.0)
cmds.setAttr(f'{shader}.specularRoughness', 0.3)

# Assign to geometry
cmds.sets('hero_geo', edit=True, forceElement='hero_matSG')
```

## File Texture

```python
import maya.cmds as cmds

file_node = cmds.shadingNode('file', asTexture=True, name='diffuse_tex')
p2d = cmds.shadingNode('place2dTexture', asUtility=True)
cmds.connectAttr(f'{p2d}.outUV', f'{file_node}.uvCoord')
cmds.setAttr(f'{file_node}.fileTextureName', r'D:/textures/hero_diffuse.png', type='string')
cmds.connectAttr(f'{file_node}.outColor', f'{shader}.baseColor')
```

## Lambert (fast lookdev)

```python
import maya.cmds as cmds

shader = cmds.shadingNode('lambert', asShader=True, name='quick_mat')
sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name='quick_matSG')
cmds.connectAttr(f'{shader}.outColor', f'{sg}.surfaceShader')
cmds.setAttr(f'{shader}.color', 0.5, 0.7, 0.9, type='double3')
cmds.sets('hero_geo', edit=True, forceElement='quick_matSG')
```

## Gotchas

- **Arnold plugin** must be loaded: `cmds.loadPlugin('mtoa', quiet=True)` before using `aiStandardSurface`
- **ColorSpace** - set `file_node.colorSpace` to `'sRGB'` for diffuse, `'Raw'` for normal/roughness maps
- **UDP paths** - use forward slashes or raw strings for texture paths on Windows

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.