Sceneplane
AI 에이전트용 클라우드 블렌더: 호스팅된 원격 MCP를 통한 영구 프로젝트, 불변 리비전, 안전한 씬 작업, 렌더, MP4, STL, GLB.
문서
Documentation
Sceneplane gives AI agents isolated Blender compute in the cloud: durable projects, versioned scene state, and asynchronous rendering — through one remote MCP endpoint. Every output is yours to download: renders, GLB/OBJ/STL exports, and the.blend project files. Everything below applies equally to agents and to humans driving the dashboard.
Quickstart
For a first result without agent setup, sign up and choose a browser starter. You explicitly start a small preset job within your account allowance, see its progress, and get an editable project plus a 3D preview and image. Custom creation uses a connected agent.
- Sign up free. You get 30 compute minutes per UTC month; no credit card is needed.
- Open Connect your agent in the dashboard and choose your client. Supported clients get an install link or a ready-to-copy command.
- Complete the browser sign-in and select your workspace when prompted. Your Personal organization and default deployment are provisioned automatically on first connection.
- Copy the first-project prompt shown there into your agent. It builds a simple planter, renders a 512-pixel preview and exports a GLB using the Free allowance. Ask the agent to share your live preview and completed download links.
Make a useful first project
Each link selects a browser preset after sign-in. Nothing runs until you click Create starter project. Allow a few compute minutes; actual worker time comes from your account allowance. Free accounts have 30 minutes per UTC month and need no credit card. These presets use no paid external generation services.
A product scene
- Choose the ceramic planter starter and create it.
- Watch the live page until the job completes, then download the preview GLB or image. The saved Blender scene stays in the project workspace.
- Use Change it with your agent on that same page. Copy its project-specific prompt, then ask: “Keep this project. Change the ceramic to sage green and make a 512px product render within my remaining compute.”
A prop for your game
- Choose the game-prop starter and create it.
- Inspect the crate in the GLB preview. The preview includes the studio scene; it is not a claim of a game-ready asset.
- Connect your agent from its live page and ask: “In this existing project, select only the crate parts, remove the studio from the export, check game-asset validation and export a GLB for my engine. Keep materials and check my compute first.” Tell it which engine you use.
A model at real scale
- Choose the 20 mm scale-model starter and create it.
- Inspect the block and its rounded edges. The browser preset gives a scene and preview, not a validated print file.
- Connect your agent and ask: “Inspect the 20 mm block in this project. Check dimensions and run deep 3D-print validation. Resolve any reported issues before exporting only the block as STL in millimetres. Exclude Studio Floor. Give me the editable.blend too and check my compute first.”
Continue from your usual agent
In the dashboard’s connection dialog, select your client. Cursor and VS Code have install links. Claude Code uses claude mcp add --transport http sceneplane https://mcp.sceneplane.online/v1, followed by /mcp to sign in. Codex uses codex mcp add sceneplane --url https://mcp.sceneplane.online/v1, then codex mcp login sceneplane. No file editing is needed for these OAuth paths. Your chosen client is remembered on this device.
ChatGPT and Claude custom connectors depend on plan and workspace permission. The dialog explains those requirements and keeps a scoped API-key fallback under Advanced. Client and model-provider charges are separate from Sceneplane’s Free allowance. If a job fails, open its project workspace to retry initialization; refreshing the live page does not create a new project.
Client references: Cursor MCP, VS Code MCP, Codex MCP, Claude Code MCP.
Advanced: API-key setup
For a header-capable client that needs manual configuration, create an API key under Home → API keys and connect to https://mcp.sceneplane.online/v1 with its bearer header:
{
"mcpServers": {
"sceneplane": {
"url": "https://mcp.sceneplane.online/v1",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}
Run platform_status to confirm readiness and current limits, then ask your agent to create a project. project_create returns an initialization job; wait for completion with job_wait before editing the scene.
Authentication
API keys (for header-capable clients)
Keys look like sp_…, are created in the dashboard, shown exactly once, and stored server-side only as a SHA-256 hash. Revoking a key locks it out on its next request. A key acts as your account: its permissions in each deployment follow your organization role (owner, admin, editor, viewer).
OAuth (for OAuth-capable connectors)
Web-based connectors (for example Claude web custom connectors) run OAuth authorization-code + PKCE instead — against the same URL: add https://mcp.sceneplane.online/v1 with no Authorization header and leave the client ID empty (dynamic registration is supported). You will be redirected to sign in and pick the deployment the connector is bound to during consent.
Deployments & binding
A deployment is an isolated Blender compute environment with its own policy and projects. Compute and storage limits are shared across the account. Each MCP request binds to one deployment:
- one deployment on the account → bound automatically;
- none → a default deployment is provisioned on first call;
- several → the most recently updated is bound; pin explicitly with
https://mcp.sceneplane.online/v1?deployment=<slug>(seedeployments_list).
Tool catalog
Scene & project tools (deployment-scoped)
| Tool | What it does |
|---|---|
projects_list | List Blender projects in the bound deployment (cursor pagination). |
project_create | Create a project from a template (empty, product_studio, three_point_lighting, low_poly, print_ready); returns the async init job. |
project_get | Project detail: head revision, recent revisions, active jobs, preview artifact. |
scene_inspect | Structured scene summary of a revision. Objects, materials, cameras and lights page independently by requested detail; full mode pages each collection at the same offset. Follow nextCursor until null. |
scene_apply | Apply a validated batch of scene operations against the head revision; commits a new immutable revision (async job). |
scene_validate | Validate a revision against a profile (general, render, game_asset, three_d_print). deep=true runs real mesh analysis in Blender — watertightness, overhangs, and a 3D-print report with dimensions, volume, filament estimate, and bed fit. |
scene_snapshot | Read a stored thumbnail or PNG inline without rendering. Check source revision, engine and framing: inherited images show earlier work. New previews use the active camera/aspect, scene bounds without a camera, and 16-sample Cycles for lit transmission (EEVEE for other lit scenes, Workbench fallback). platform_status and docs_operations guide=true return the versioned live snapshotPolicy when cached descriptions differ; refresh discovery or reconnect stale clients. |
scene_script | Run arbitrary Blender Python (bpy) against a revision, committing the result. Disabled by default — an owner enables scripting per deployment (Settings → Policy). Runs in an isolated, credential-free container. |
docs_bpy_lookup / docs_bpy_search | Authoritative Blender Python API reference as tools — agents verify bpy signatures, members, and enums before writing scene_script code, with namespace discovery and did-you-mean suggestions. |
docs_manual_search / docs_manual_get | Full-text search over the entire Blender user manual (2,100+ pages) — conceptual answers about how modifiers, shading, physics, and workflows behave, with ranked snippets and full-page reads. |
asset_preview / assets_categories | See an asset's thumbnail as an actual image before importing, and browse Poly Haven categories with counts. |
assets_search | Search free asset sources by keyword: Poly Haven CC0 (HDRIs, PBR texture sets, models — no setup) or Sketchfab downloadable models (BYO token). Returns slugs for asset_library_import. |
asset_library_import | Import a library asset by slug: HDRIs become the world environment, models are added to the scene, texture sets become a wired PBR material you can auto-assign to objects (async job). Sources: polyhaven, sketchfab, hyper3d, hunyuan3d, tripo3d. |
material_from_image | Create a material from one validated image. The surface/decal workflow prepares role-labeled maps; the legacy mask workflow remains available. Image-derived roughness and relief are approximations, not measured material properties (async job). |
texture_maps_create / material_from_maps | Prepare downloadable maps, ZIP, manifest and repeat preview without changing the scene; then apply the completed package with material_from_maps. Assigning to objects replaces the requested material slots and commits a new revision; mesh UVs are preserved. |
image_prompt_assist / material_recipe / material_nodes | Plan source images for your harness's image generator, propose editable procedural/hybrid shader graphs, and inspect supported node sockets. These tools return guidance or proposals without calling an image provider or using Blender compute; execute reviewed shader operations with scene_apply. |
presets_list / preset_apply | Curated one-call presets: PBR materials (glass, chrome, gold, neon…), lighting rigs (studio three-point, softbox, sunset…), camera framings (hero, top-down, isometric…), and render profiles (draft, production). Compile to validated scene operations. |
webhooks_set / webhooks_list / webhook_test / webhooks_delete | Push instead of polling: register an https URL and get HMAC-signed POSTs on job.completed / job.failed / job.cancelled. Signing secret shown once; test deliveries on demand. |
job_wait | Long-poll a job up to 25s per call — returns the moment it hits a terminal state. Chain calls for longer jobs. |
platform_status | Capability discovery: whether Blender execution is currently available, open job counts, and the deployment's policy limits — fail fast instead of queueing doomed jobs. |
project_update / project_delete | Rename or soft-delete projects (delete refuses while jobs are open). |
deployment_policy_update | Self-service policy tuning over MCP: timeouts, queue depth, render caps, and enabling scene_script (owner only) — no dashboard required. |
asset_generate_3d / asset_generate_status | Text or image → 3D model via Hyper3D Rodin, Tencent Hunyuan3D, or Tripo3D (BYO keys). Start, poll, then import the finished model with asset_library_import — optionally scaled to a real-world targetSize. |
integrations_set / integrations_list / integrations_delete | Agent-managed third-party source credentials (Sketchfab, Hyper3D, Hunyuan3D, Tripo3D), encrypted at rest — configure once over MCP, no dashboard needed. |
upload_create / upload_complete | Two-step direct upload for assets (signed PUT, then finalize + scan). |
asset_import | Import a validated uploaded asset (blend, glb, gltf, obj, stl, image or font) into a project as a new revision (async job). |
render_create | Queue a Cycles render of a revision (width/height/samples/transparency; policy-capped; async job). |
render_turntable | 2-12 evenly spaced orbit views in ONE job — near-instant Workbench previews or lit Cycles frames, each viewable inline via scene_snapshot. targetObjectIds orbits and frames only those objects, so product shots keep floors and backdrops out of frame without hiding them. |
render_animation | Keyframed sequence → H.264 MP4 in one job (up to 600 frames; Cycles or fast preview). Long sequences render as parallel segment jobs over contiguous frame ranges — concat-safe MP4 segments. |
export_create | Export a revision to glb, obj, stl, or blend. Engine presets apply target conventions — unity, unreal, godot, and print (STL scaled meters→millimeters so slicers read true size). |
revision_diff | Compare two revisions without changing the scene: added/removed objects, transforms, materials and render settings. Review this before restoring an earlier scene. |
revision_restore | Replace the active scene with an older revision as a new head commit; later edits leave the active view, while earlier revisions remain available. Requires the exact current head and may require interactive approval (async job). |
artifact_get | Metadata + expiring download URL for a render, export, or preview artifact. |
job_get / jobs_list / job_cancel / job_report | Poll one job, find recent jobs, request cooperative cancellation, or read complete report pages. Cancellation is a request, not a terminal result; poll job_get/job_wait to confirm what happened. |
Account tools (subject to credential scope)
OAuth grants are limited to the consented workspace. API keys follow their scopes and your organization role.
| Tool | What it does |
|---|---|
organizations_list | Organizations this account belongs to, with your role. |
deployments_list | Every accessible deployment; flags which one this session is bound to. |
deployment_create | Create a new isolated deployment (owner/admin). |
deployment_update | Rename or enable/disable a deployment (owner/admin). |
deployment_delete | Delete an empty deployment (owner/admin). |
Scene operations
scene_apply takes a batch of typed, validated operations — not arbitrary code. Every batch is checked against the current scene (references must exist, names must be unique) and committed atomically as one new revision with a fresh preview.
| Family | Operations |
|---|---|
object.* | create_primitive, transform, rename, duplicate, delete, parent, unparent, set_visibility |
collection.* | create, rename, link_object, unlink_object |
material.* | create, update_principled (PBR params), assign, remove_assignment |
modifier.* | add / update / remove — bevel, subdivision, solidify, array, mirror, boolean |
mesh.* | apply_modifier, bevel, subdivide, recalculate_normals, shade_smooth, merge_vertices, center_origin, lay_flat, fill_holes, dissolve_degenerate, decimate (collapse/planar reduction), remesh (voxel/QuadriFlow retopology), tris_to_quads, make_printable (one-op print prep: watertight remesh + triangle budget + bed placement), lathe (revolve a [radius,z] profile — cans, bottles, glasses) |
uv.cylindrical_project | parametric label placement on cylinders: arc coverage, center azimuth, vertical span, cap pinning |
light.* | upsert (point/sun/spot/area with energy & color), delete |
camera.* | upsert (lens, clip, sensor, depth of field: fstop / focusDistance / focusObject — focus tracks the object through camera moves), look_at (auto-refocuses at the aim target when DOF is on), set_active, delete |
world.update | background color / strength |
render_settings.update | resolution, samples, engine settings |
animation.* | set_range (frame span + fps), keyframe_transform (explicit location / scale / lookAt aim per moment — atomic set-and-key), keyframe_camera (lens / aperture / focus pulls), remove_keyframes — interpolation control incl. constant-hold for hard cuts |
Batches execute inside real Blender (bpy) in an isolated container. Use scene_validate for a free dry-run before committing.
Jobs & revisions
Anything that touches Blender is asynchronous: the tool returns a job handle immediately (jobId, status, pollAfterMs); poll with job_get. Statuses: queued → awaiting_capacity → preparing → starting_container → running → uploading_outputs → committing → completed (or failed / cancelled). Progress streams live into the dashboard.
Scene state is a chain of immutable revisions. Concurrent writers are safe: a batch commits only if the head it was built against is still the head (compare-and-swap); otherwise the job fails cleanly and the agent retries against the new head. revision_restore rolls back by copying an old revision forward — history is never rewritten.
Live preview
Your agent shares a Watch live preview link as soon as it creates your project, before it starts building. You can also open Live preview from the project workspace. Sign in with an account that has access to the project. The same liveUrl returned by project_create or project_get works throughout your conversation.
The page shows job progress, completed renders, and an interactive model as soon as its 3D export is ready, while the preview image finishes rendering. Your camera stays in place across updates. Use Image view for a lighter preview, or pause updates at any time. Viewing the page does not consume Blender compute minutes.
Limits & policies (Free plan)
| Policy | Default |
|---|---|
| Concurrent jobs per deployment | 1 (queued up to 10) |
| Job timeout | 300 s |
| Render caps | 1024 × 1024 px, 128 samples |
| Upload limit | 100 MB per file |
| Tool requests | 120 / minute per deployment |
| Arbitrary Python (scene_script) | disabled by default; owner opt-in per deployment |
Owners can tune policies per deployment in the dashboard; hard platform caps apply.
Client setup
— choose your client for install links, browser sign-in, or a ready-to-copy command. No config file editing for supported OAuth clients. Your workspace is provisioned automatically on first connection.
Smithery
Open Sceneplane on Smithery to browse the live tools, resources, and prompts or add the server to your MCP client. Sign in to your Sceneplane account when your client asks for OAuth consent.
Claude Code
claude mcp add sceneplane https://mcp.sceneplane.online/v1 \
--transport http --header "Authorization: Bearer <YOUR_API_KEY>"
Claude Desktop / any header-capable JSON-config client
Use the API-key JSON block from the Quickstart in your MCP servers config.
Claude web (OAuth-capable custom connector)
Web connectors cannot send custom headers — OAuth handles it on the same URL: add https://mcp.sceneplane.online/v1, leave the OAuth client ID empty, and complete the sign-in prompt (you pick the deployment during consent).