cook_frame_range
Cook a node across a frame range to advance sequential solvers and report per-frame changes, errors, counts, bounds, and attributes in one call instead of looping.
Instructions
Cook a node frame by frame and report what changed on each frame.
This is how you advance a sequential solver and how you prove a simulation
is doing something. Frames are cooked in order, so a SOP solver, a DOP
network or an animated chain all accumulate correctly, and per-frame cook
time, errors, counts, bounding box and attribute aggregates come back in
ONE round trip instead of one per frame. static: true means counts and
bounds never changed over the range: the node cooks but does nothing.
Past 25 frames the rows are 25 evenly spaced frames plus every frame with
an error or warning (frames_shown); totals, static and
slowest_frame still cover every frame.
Prefer this over set_frame in a loop, and over stepping by hand: a 100-frame check is one call rather than 100. The frame is left where the cook ended, ready to screenshot.
No deadline: a heavy sim runs under Houdini's progress bar for as long as it
takes; wait for the verdict and call nothing else meanwhile. Stopped from
that bar, it answers interrupted: true with the frames cooked so far. A
node that keeps a cache across frames (Trail, SOP Solver) starts from what it
holds: press_button its reset (Trail: clear) or reset_simulation first.
Args: node_path: Node to cook; its output is what gets measured. start: First frame. Defaults to the playbar start. end: Last frame, inclusive. Defaults to the playbar end. step: Frame increment. Keep at 1.0 for any solver, since skipping frames gives it a discontinuous time step and invalid results. attribs: Point attributes to aggregate per frame (min/max/mean/sum). volumes: Also report per-volume name, resolution and value range.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| step | No | ||
| start | No | ||
| attribs | No | ||
| volumes | No | ||
| node_path | Yes |