docs(blender): desktop Blender + MCP registration per working session, not per task (Prime 2026-09-28)
This commit is contained in:
@@ -78,7 +78,7 @@ live contract for its API. Fetch it rather than trusting a transcription.
|
||||
|
||||
- **Blender** — Blender 5.2 LTS on fv-ml1 GPU 3 (borrowed, on demand). `scripts/blender-run` for
|
||||
headless one-shot renders and conversions; `scripts/blender-mcp` for agent-driven scenes
|
||||
(register per task).
|
||||
(up and registered per working session, down at its end).
|
||||
*When:* 3D rendering, STL → image, scene building.
|
||||
*Detail:* `/home/lkraven/development/eshpfi-management/docs/fleettools/blender.md`
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ runs only while in use, and this access ends if a big seat moves onto the card.
|
||||
| You are… | Use | Shape |
|
||||
|---|---|---|
|
||||
| a script or CLI caller (renders, conversions) | `scripts/blender-run` | one-shot `docker run --rm`: no desktop, gone when Blender exits |
|
||||
| an agent building scenes interactively | `scripts/blender-mcp` (MCP, per task) | a GUI Blender plus the mcp-for-blender add-on; `up` / `status` / `down` |
|
||||
| an agent building scenes interactively | `scripts/blender-mcp` (MCP, per working session) | a GUI Blender plus the mcp-for-blender add-on; `up` / `status` / `down` |
|
||||
|
||||
Both scripts are in `/home/lkraven/development/eshpfi-management/scripts/` and run from nh3-dev,
|
||||
reaching fv-ml1 as `infra-ops@10.251.50.54` over ssh. **No HTTP API** and no openapi.json.
|
||||
@@ -69,8 +69,11 @@ scripts/blender-run -- --python-expr 'import bpy; print(bpy.app.version_string)'
|
||||
|
||||
## blender-mcp (agents)
|
||||
|
||||
Register it **per task**, never user- or project-wide (Prime, 2026-09-27):
|
||||
Bring it up **once per working session**, never always-on, and never register it user- or
|
||||
project-wide (Prime, 2026-09-28, superseding the 2026-09-27 per-task rule). At session start:
|
||||
`scripts/blender-mcp up`, wait for `status` to say answering, then
|
||||
`claude mcp add blender -- /home/lkraven/development/eshpfi-management/scripts/blender-mcp`.
|
||||
Then run `scripts/blender-mcp up`, wait for `status` to say answering, work, and run `down`
|
||||
when finished. Safe mode is on (no os/open/network in agent code), so the startup hook has
|
||||
At session end: `claude mcp remove blender` (the default local scope persists for the
|
||||
directory) and `scripts/blender-mcp down`. There is one GUI and one scene, so MCP work
|
||||
serializes fleet-wide; parallel work goes through blender-run. Safe mode is on (no os/open/network in agent code), so the startup hook has
|
||||
already pointed Cycles at OptiX. Save to `/work/…`. Details and traps are in the stack README.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Persistent memory — eshpfi-management
|
||||
|
||||
_Last updated: 2026-09-28 ~0850 PT (Zigbee2MQTT live on esh-docker-vm + HA-MQTT macvlan route fixed; Blender on fv-ml1 GPU 3 (MCP per task, blender-run batch for draupnir); semif-serve 0.1.4; Worldtree reward config on demo+personal and instance-configs pushed; restic repository-file move verified all-green 2026-09-28.)_
|
||||
_Last updated: 2026-09-28 ~0850 PT (Zigbee2MQTT live on esh-docker-vm + HA-MQTT macvlan route fixed; Blender on fv-ml1 GPU 3 (MCP per working session, blender-run batch for draupnir); semif-serve 0.1.4; Worldtree reward config on demo+personal and instance-configs pushed; restic repository-file move verified all-green 2026-09-28.)_
|
||||
|
||||
> **Always check for `/tmp/infra-ops-handoff.md`** — if it exists and its
|
||||
> `Written:` stamp is under **8 hours** old, read it (it carries the in-flight
|
||||
@@ -195,7 +195,7 @@ _As of 2026-09-27 ~0900 PT._
|
||||
server runs INSIDE the container, and agents reach it as ssh+docker-exec stdio via
|
||||
`scripts/blender-mcp`. No port is published, and screenshots work because server and Blender
|
||||
share a filesystem. Telemetry is off and safe mode is on. Verified end to end (render, screenshot,
|
||||
safe-mode refusal). **Batch path: `scripts/blender-run`** (one-shot `docker run --rm`, `--job` staging; first user is draupnir). **Access: the shared fleet `infra-ops` login, with no render-only key (Prime, 2026-09-28).** **Registration: PER TASK (Prime, 2026-09-27)**: a session that needs Blender runs `claude mcp add blender -- …/scripts/blender-mcp`. It goes in NO user- or project-wide config.
|
||||
safe-mode refusal). **Batch path: `scripts/blender-run`** (one-shot `docker run --rm`, `--job` staging; first user is draupnir). **Access: the shared fleet `infra-ops` login, with no render-only key (Prime, 2026-09-28).** **Registration + up/down: PER WORKING SESSION (Prime, 2026-09-28, relayed by draupnir; superseded per-task of 09-27)**: `blender-mcp up` + `claude mcp add` at session start, `claude mcp remove` + `down` at its end. Never always-on, never user- or project-wide config.
|
||||
→ `stacks/blender/README.md`
|
||||
- **Extensions (2026-09-28, draupnir; Prime ruled Blender a MANDATORY pipeline stage):** 8 pinned
|
||||
add-ons (`stacks/blender/extensions.lock`) built by `scripts/blender-extensions sync` into
|
||||
|
||||
@@ -79,13 +79,24 @@ not a sandbox.
|
||||
|
||||
### For an agent
|
||||
|
||||
**Per working SESSION** (Prime, 2026-09-28, relayed by draupnir; supersedes the 2026-09-27
|
||||
per-task rule): a session that does design work brings the desktop up once at its start and
|
||||
takes it down at its end. It is still not always-on, and the registration is still never user-
|
||||
or project-wide.
|
||||
|
||||
```bash
|
||||
scripts/blender-mcp up # GPU 3 is borrowed: start only when needed
|
||||
# session start
|
||||
scripts/blender-mcp up # GPU 3 is borrowed: only for a session that needs it
|
||||
scripts/blender-mcp status # wait for "mcp add-on: answering" (~10-40 s)
|
||||
claude mcp add blender -- /home/lkraven/development/eshpfi-management/scripts/blender-mcp # PER TASK (Prime 2026-09-27): never user/project-wide
|
||||
scripts/blender-mcp down # when finished: the card goes back to 0
|
||||
claude mcp add blender -- /home/lkraven/development/eshpfi-management/scripts/blender-mcp
|
||||
# session end
|
||||
claude mcp remove blender # `mcp add` defaults to local scope, which PERSISTS for this directory
|
||||
scripts/blender-mcp down # the card goes back to 0
|
||||
```
|
||||
|
||||
- **One GUI, one scene: MCP work serializes fleet-wide.** Two sessions driving it at once
|
||||
trample each other's scene. Parallel parts belong on `blender-run` (`--cpu` if nothing renders).
|
||||
|
||||
- **Always pass `user_prompt`.** The tools require it; it is a short statement of the user's
|
||||
request.
|
||||
- **Render on the GPU:** set `scene.cycles.device = 'GPU'` on any scene you create. Safe mode
|
||||
|
||||
Reference in New Issue
Block a user