<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
meshy-dev/meshy-dcc-adapters/3dsmax-materials
──Details
PublishedOctober 24, 2026 at 09:34 AM
Content Hashsha256:ddbd694203871743...
Git SHAd28c24863dc7
──Files
Files (1 file, 4.1 KB)
SKILL.md4.1 KBactive
SKILL.md · 96 lines · 4.1 KB

version: "1.0.0" name: 3dsmax-materials description: >- Domain skill - inspect, create, edit, and assign 3ds Max materials and bitmap maps on the main thread. Use when authoring Standard, Physical, or PBR-friendly materials, assigning node materials, and reporting texture connections. license: MIT compatibility: "meshy-dcc-core 0.17+, 3ds Max 2024+" metadata: meshy-dcc: dcc: 3dsmax version: "1.0.0" layer: domain stage: authoring search-hint: "3ds Max material create inspect assign bitmap texture map physical pbr roughness metalness missing paths" tags: "3dsmax, materials, shader, assignment, bitmap, pbr" tools: tools.yaml intent: "Create, inspect, edit, and assign 3ds Max materials and bitmap textures." search_aliases: ["materials", "materials"] recall_context: app_type: "3dsmax" domain: "materials" workflow_stage: "authoring" task_category: "mutate" preconditions:

  • type: software

name: "3ds Max" version: ">=2024" side_effects: creates: true modifies: true deletes: false exports: false imports: false file_output: false render: false targets: ["material", "bitmap", "scene_node"] produces: ["material:standard", "material:physical", "material:assignment", "bitmap_connection"]


3ds Max Material Tools

Inspect, create, edit, and assign 3ds Max materials in the current scene. All tools touch the live scene through pymxs, so they declare affinity: main.

Tool contracts live in tools.yaml. apply_material uses current selection when node_names is omitted.

Verified writes

Every write in this skill is verified by readback and reported per attribute or per node, so a caller can always tell "written" from "not written":

  • create_standard_material, create_physical_material, and

create_pbr_material return applied / applied_count / errors and fail when a requested attribute did not land.

  • apply_material reports skipped (node names that could not be resolved)

and errors (nodes whose assignment the host did not keep) and fails when either is non-empty; applied_count counts only verified assignments.

  • reset_material verifies each reset and fails when a node still reports its

previous material.

Renderer-aware parameters and slots

create_material_from_textures, assign_bitmap_texture, and set_material_attributes resolve canonical PBR controls onto the renderer-native property and verify every write by readback:

CanonicalVRayMtlArnoldPhysical
roughnessreflectionRoughness (needs brdf_useRoughness = true), else reflection_glossiness invertedspecular_roughnessbase_roughness
metalnessmetalnessmetalnessbase_metalness
diffuse maptexmap_diffusebaseColorMapbase_color_map
roughness maptexmap_roughness / texmap_reflectionRoughnessspecularRoughnessMapbase_roughness_map, else roughness_map
metalness maptexmap_metalnessmetalnessMapbase_metalness_map, else metalness_map
normal maptexmap_bump (Normal Bump wrapper)normalMapbump_map
bump maptexmap_bumpbumpMapbump_map
displacement maptexmap_displacementdisplacementMapdisplacement_map
opacity maptexmap_opacityopacityMapcutout_map

A parameter or slot the material class does not expose fails the tool call and rolls the created material back; it is never reported as a silent success. Generic attribute names that fall outside the renderer tables go through the same readback check: a host that refuses every candidate, or silently accepts one it never persists, is reported as an error rather than a success.

assign_bitmap_texture reports the resulting connections through the same renderer-native slot names, so a write to texmap_roughness shows up in connections instead of returning an empty list.

Texture-set files are matched on filename tokens (basecolor, albedo, diffuse, roughness, metalness, normal, bump, displacement, height, opacity, alpha, specular, emission, reflection, ao).

All versions