Skip to content

rendering

rendering

MCP tool definitions for Houdini rendering operations.

Provides tools for viewport capture, render node management, render execution, and render progress monitoring.

Functions:

Name Description
create_render_node

Create a new render (ROP) node in /out.

get_render_progress

Get render progress and status of a ROP node.

get_render_settings

Get render settings from a ROP node.

list_render_nodes

List all render (ROP/Driver) nodes in the scene.

render_node_network

Capture a screenshot of a node's network editor view.

render_quad_view

Capture all four viewport panes to separate images.

render_viewport

Capture the current 3D viewport to an image file.

set_render_settings

Set render parameters on a ROP node.

start_render

Execute any node that renders or writes files.

Functions:

create_render_node async

create_render_node(
    ctx: Context,
    renderer: str,
    name: str | None = None,
    camera: str | None = None,
    output_path: str | None = None,
) -> dict

Create a new render (ROP) node in /out.

Parameters:

Name Type Description Default
renderer
str

Renderer type ('karma', 'opengl', 'mantra', 'rop_geometry', 'rop_alembic', 'usdrender', 'fetch', 'merge', 'rop_fbx', 'rop_gltf').

required
name
str | None

Node name.

None
camera
str | None

Camera node path.

None
output_path
str | None

Output file path.

None

get_render_progress async

get_render_progress(ctx: Context, node_path: str) -> dict

Get render progress and status of a ROP node.

Parameters:

Name Type Description Default
node_path
str

ROP node path.

required

get_render_settings async

get_render_settings(ctx: Context, node_path: str) -> dict

Get render settings from a ROP node.

Parameters:

Name Type Description Default
node_path
str

ROP node path.

required

list_render_nodes async

list_render_nodes(ctx: Context) -> dict

List all render (ROP/Driver) nodes in the scene.

render_node_network async

render_node_network(ctx: Context, node_path: str, output_path: str) -> dict

Capture a screenshot of a node's network editor view.

Parameters:

Name Type Description Default
node_path
str

Node path to focus on.

required
output_path
str

Image file path.

required

render_quad_view async

render_quad_view(
    ctx: Context, output_path: str, resolution: list[int] | None = None
) -> dict

Capture all four viewport panes to separate images.

Parameters:

Name Type Description Default
output_path
str

Base image path; viewport names are appended.

required
resolution
list[int] | None

[width, height] in pixels.

None

render_viewport async

render_viewport(
    ctx: Context,
    output_path: str,
    resolution: list[int] | None = None,
    camera: str | None = None,
) -> list[TextContent | ImageContent]

Capture the current 3D viewport to an image file.

Parameters:

Name Type Description Default
output_path
str

Image file path.

required
resolution
list[int] | None

[width, height] in pixels.

None
camera
str | None

Camera node path.

None

set_render_settings async

set_render_settings(
    ctx: Context, node_path: str, settings: dict[str, Any] | None = None
) -> dict

Set render parameters on a ROP node.

Parameters:

Name Type Description Default
node_path
str

ROP node path.

required
settings
dict[str, Any] | None

Parameter name-value pairs.

None

start_render async

start_render(
    ctx: Context, node_path: str, frame_range: list[float] | None = None
) -> dict

Execute any node that renders or writes files.

Not just /out ROPs: a LOP usdrender_rop (which is how Solaris renders), a SOP ROP Geometry, or a File Cache's Save to Disk all work, because what matters is whether the node can be executed rather than its category.

The result reports the output path it wrote to and whether anything is actually on disk there, so a render that succeeds and writes nowhere is visible instead of silent.

Parameters:

Name Type Description Default
node_path
str

Any node with a render() or an 'execute' button.

required
frame_range
list[float] | None

[start, end] or [start, end, increment].

None