# Blender: Assign PBR Material

> Blender: Assign PBR Material is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-16).

Applies a solid-color metallic/roughness PBR material to a 3D mesh, running locally in Blender with configurable color, metallic, and roughness values.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-assign-pbr?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/blender-assign-pbr-material-b00fc574
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_jao_RKro0N37bIpmg47Ys

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability blender-assign-pbr-material-b00fc574 -d '<json body>'
```

Example prompt: Apply a metallic blue PBR material to my uploaded GLB model — use hex color #6688bb, set metallic to 0.8 and roughness to 0.3, and render at 256px resolution.

## When to prefer this

Choose this endpoint when you need to programmatically assign a physically-based rendering (PBR) material with specific metallic and roughness properties to a 3D mesh using Blender as the backend. It is ideal for automated 3D asset pipelines, prototyping material appearances, or batch material assignment at low cost ($0.02/call). Prefer it over general 3D rendering services when you specifically need Blender-native PBR material assignment with controllable color, metallic, and roughness parameters on mesh JSON, GLB, or OBJ inputs.

## Known failure modes

- Mesh exceeds 10,000 vertices or 20,000 faces — rejected with validation error
- base64 model_base64 payload exceeds 512 KiB decoded limit
- mesh and model_base64 provided simultaneously (mutually exclusive)
- Worker busy at request time — returns error before payment settlement
- Invalid hex color format not matching #RRGGBB pattern
- model_format does not match actual file format of model_base64
- resolution value outside 128–512 range

## How this service works

Blender: Assign Pbr: Apply a solid-color metallic/roughness PBR material. Accepts mesh JSON, small GLB or OBJ; without input uses an explicitly labelled demo mesh. Runs locally in Blender. Bounded small-model processing, normally under 60 seconds; a busy worker returns an error before payment settlement.

## Output

Returns a processed 3D model or rendered output with the specified PBR material (solid color, metallic, and roughness values) applied in Blender. If the demo sample is used, the response explicitly identifies it as such. Processing is bounded under 60 seconds; a busy worker returns an error before any payment is settled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mesh": {
   "type": "object",
   "required": [
    "vertices",
    "faces"
   ],
   "properties": {
    "faces": {
     "type": "array",
     "items": {
      "type": "array",
      "items": {
       "type": "integer",
       "minimum": 0
      },
      "maxItems": 16,
      "minItems": 3
     },
     "maxItems": 20000
    },
    "vertices": {
     "type": "array",
     "items": {
      "type": "array",
      "items": {
       "type": "number"
      },
      "maxItems": 3,
      "minItems": 3
     },
     "maxItems": 10000
    }
   },
   "description": "Optional mesh in Blender Z-up coordinates. Max 10,000 vertices and 20,000 faces; each face has 3..16 indices.",
   "additionalProperties": false
  },
  "seed": {
   "type": "integer",
   "default": 42,
   "maximum": 2147483647,
   "minimum": 0
  },
  "angle": {
   "type": "number",
   "default": 45,
   "maximum": 180,
   "minimum": -180
  },
  "color": {
   "type": "string",
   "default": "#6688bb",
   "pattern": "^#[0-9a-fA-F]{6}$"
  },
  "count": {
   "type": "integer",
   "default": 3,
   "maximum": 8,
   "minimum": 2
  },
  "amount": {
   "type": "number",
   "default": 0.05,
   "maximum": 0.5,
   "minimum": 0.001
  },
  "factor": {
   "type": "number",
   "default": 1,
   "maximum": 5,
   "minimum": 0.1
  },
  "sample": {
   "enum": [
    "demo"
   ],
   "type": "string",
   "default": "demo",
   "description": "If no model is supplied, process the included demonstration mesh; response identifies this explicitly."
  },
  "metallic": {
   "type": "number",
   "default": 0,
   "maximum": 1,
   "minimum": 0
  },
  "roughness": {
   "type": "number",
   "default": 0.5,
   "maximum": 1,
   "minimum": 0
  },
  "resolution": {
   "type": "integer",
   "default": 256,
   "maximum": 512,
   "minimum": 128
  },
  "model_base64": {
   "type": "string",
   "maxLength": 699052,
   "description": "Optional base64 GLB (geometry and PBR values, without images/animations) or OBJ geometry, at most 512 KiB decoded. Mutually exclusive with mesh. No URLs or local paths."
  },
  "model_format": {
   "enum": [
    "glb",
    "obj"
   ],
   "type": "string",
   "default": "glb"
  },
  "target_faces": {
   "type": "integer",
   "default": 500,
   "maximum": 20000,
   "minimum": 20
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/blender-assign-pbr-material-b00fc574/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from market.datapackvibe.com](https://www.zero.xyz/host/market.datapackvibe.com/llms.txt)
