configureImageLayer
Apply image textures to 3D materials in Spline scenes by setting image URLs, adjusting tiling, offset, and rotation parameters for visual customization.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| materialId | Yes | Material ID | |
| layerId | Yes | Layer ID | |
| imageUrl | Yes | URL to image | |
| tiling | No | Image tiling | |
| offset | No | Image offset | |
| rotation | No | Rotation in degrees |
Implementation Reference
- Handler function that configures an image layer on a material by sending a PUT request to the API with image URL, tiling, offset, and rotation parameters.async ({ sceneId, materialId, layerId, imageUrl, tiling, offset, rotation }) => { try { const layerParams = { imageUrl, ...(tiling && { tiling }), ...(offset && { offset }), ...(rotation !== undefined && { rotation }), }; await apiClient.request('PUT', `/scenes/${sceneId}/materials/${materialId}/layers/${layerId}`, { params: layerParams }); return { content: [ { type: 'text', text: `Image layer ${layerId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring image layer: ${error.message}` } ], isError: true }; } }
- Zod schema defining the input parameters for the configureImageLayer tool, including sceneId, materialId, layerId, imageUrl, and optional tiling, offset, rotation.{ sceneId: z.string().min(1).describe('Scene ID'), materialId: z.string().min(1).describe('Material ID'), layerId: z.string().min(1).describe('Layer ID'), imageUrl: z.string().url().describe('URL to image'), tiling: z.object({ x: z.number().min(0).default(1).describe('X tiling'), y: z.number().min(0).default(1).describe('Y tiling'), }).optional().describe('Image tiling'), offset: z.object({ x: z.number().default(0).describe('X offset'), y: z.number().default(0).describe('Y offset'), }).optional().describe('Image offset'), rotation: z.number().default(0).describe('Rotation in degrees'), },
- src/tools/advanced-material-tools.js:198-247 (registration)Registration of the configureImageLayer tool using server.tool(), including schema and handler.'configureImageLayer', { sceneId: z.string().min(1).describe('Scene ID'), materialId: z.string().min(1).describe('Material ID'), layerId: z.string().min(1).describe('Layer ID'), imageUrl: z.string().url().describe('URL to image'), tiling: z.object({ x: z.number().min(0).default(1).describe('X tiling'), y: z.number().min(0).default(1).describe('Y tiling'), }).optional().describe('Image tiling'), offset: z.object({ x: z.number().default(0).describe('X offset'), y: z.number().default(0).describe('Y offset'), }).optional().describe('Image offset'), rotation: z.number().default(0).describe('Rotation in degrees'), }, async ({ sceneId, materialId, layerId, imageUrl, tiling, offset, rotation }) => { try { const layerParams = { imageUrl, ...(tiling && { tiling }), ...(offset && { offset }), ...(rotation !== undefined && { rotation }), }; await apiClient.request('PUT', `/scenes/${sceneId}/materials/${materialId}/layers/${layerId}`, { params: layerParams }); return { content: [ { type: 'text', text: `Image layer ${layerId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring image layer: ${error.message}` } ], isError: true }; } } );