# Blender Render Preview

> Blender Render Preview is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-13).

Renders a transparent product preview PNG from a 3D mesh (or demo mesh) using Blender with a fitted camera and configurable material settings.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-render-preview?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/blender-render-preview-f1d5077b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2Z3x0NPbXoAdFIS1fmjik

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-render-preview-f1d5077b -d '<json body>'
```

Example prompt: Can you render a product preview PNG of my 3D model — I'll give you the mesh as JSON with vertices and faces, set the color to #aa3344, roughness 0.3, metallic 0.8, camera angle 30 degrees, and render at 256px resolution?

## When to prefer this

Use this endpoint when you need a quick, transparent-background product preview PNG rendered directly in Blender from mesh data, a GLB, or an OBJ file. It is ideal for e-commerce thumbnail generation, 3D model visualization, and automated product photography pipelines where you control the mesh input and want configurable PBR material settings (color, roughness, metallic). Prefer this over general image generation APIs when you have actual 3D geometry and need a photorealistic render with a fitted camera rather than an AI-generated illustration.

## Known failure modes

- Mesh too large: exceeds 10,000 vertices or 20,000 faces — returns error
- model_base64 and mesh both supplied — mutually exclusive, returns validation error
- base64-encoded model exceeds 512 KiB decoded limit — returns error
- Worker busy at time of request — returns error before payment is settled
- Invalid color hex format (not matching ^#[0-9a-fA-F]{6}$) — returns validation error
- Resolution out of range (must be 128–512) — returns validation error
- Invalid model_format value — returns validation error

## How this service works

Blender: Render Preview: Render one transparent product preview PNG with a fitted camera. 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

A transparent-background PNG image of the rendered 3D model, captured with a fitted camera in Blender. The response includes the rendered image data. If the demo sample was used (no mesh supplied), the response explicitly labels it as a demo render. Busy workers return an error before payment settlement.

## 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-render-preview-f1d5077b/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)
