executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
scene-and-renderingConfigure MolecularNodes Blender scenes, cameras, engines, materials, compositor/world settings, and still or animation renders with host-aware recovery.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the scene already contains MolecularNodes entities and the
next task is to make a reproducible Blender view, render, snapshot, animation, or
annotation overlay. The runtime is a Blender 5.2-compatible bpy host; ordinary
Python is useful for planning and validation but is not a substitute for Blender.
The detailed contracts are in Canvas API, engines and compositor, and rendering recovery.
Inputs
bpy.types.Object,
MolecularEntity, or entity view/bounding box to frame."EEVEE", "CYCLES", mn.scene.EEVEE, or
mn.scene.Cycles), (width, height), transparency, frame/range, output path,
image format, world/compositor edits, and an existing style material socket.bpy module. Do not assume a viewport or a GPU from package facts.Outputs
mn.Canvas and camera whose settings can be read back from
canvas.scene, canvas.camera, and the engine object.snapshot() path, or an MP4 copied to
the exact requested animation() path; callers create parent directories and
validate non-zero output. With no path, display is notebook-dependent.mn_annotations overlay.canvas = mn.Canvas(engine="EEVEE", resolution=(320, 240), transparent=False, template="Molecular Nodes").
The default/template constructor path is destructive. template=None on the
constructor preserves the current scene; call canvas.scene_reset(None) only
for an intentional Blender factory-startup reset. Canvas registers the add-on,
installs assets, selects the engine, creates a camera helper, and installs the
annotation compositor.canvas.fps,
canvas.frame_range, canvas.frame, canvas.render_scale,
canvas.samples, color management, canvas.world.background,
canvas.transparent, and the required canvas.passes.canvas.frame_object(entity, viewpoint="front") or
canvas.frame_view(entity.get_view(...), viewpoint="front"). In background
or headless mode, prepare the camera with the data API or a saved scene;
these helpers depend on Blender's view3d operator. Re-frame after changing
the lens if a new camera distance is desired.canvas.snapshot(path, frame=..., file_format="PNG"), and validate a
non-zero file plus the scene/camera/frame read-back. Use
canvas.animation(path, frame_start=..., frame_end=..., render_scale=...)
for MP4 output and apply the same file validation.default, front, back, top, bottom, left, and
right (case-insensitive). canvas.camera.rotation is an XYZ degree tuple;
canvas.camera.set_viewpoint() accepts a named view or a custom Euler sequence
in radians. Prefer the degree property when writing human-readable angles.mn.scene.Cycles(device="CPU") and read back the device for
a CPU device selection. This does not claim GPU availability, speed, or
universal material compatibility.canvas.resolution, canvas.render_scale, canvas.frame_range,
canvas.frame, canvas.engine.name, canvas.samples, camera rotation/lens,
and canvas.passes before rendering.canvas.passes = [...] is a replacement set, not an additive update; unknown
pass names must be corrected after the resulting ValueError.canvas.compositor.reset() is a context manager; enter it with with ....
Its reset removes annotations until canvas.compositor.add_annotations() is
called. After canvas.world.reset(), the background and hdri_strength
convenience sockets are unavailable until the template world node is rebuilt
or reloaded.snapshot()/animation(). In an
interactive area, use context overrides only for operators that truly require
a window/area/region; UI/viewport behavior remains host-specific.This skill does not define structure/trajectory/density import, selection
semantics, or the depth of add_style(). It owns only the scene, camera, render,
material-selection, compositor/world, snapshot/animation, and Blender context
boundary after those upstream objects exist.