Skip to content

Unable to run with camera specification in YAML file #1730

Description

@dmhensi

A successful output pipeline that contains a camera and is written to a YAML file with the "save" command {actions.save("foo.yaml","yaml")} does not function when bought in with the "load" command.
The following error presents:

  msg: |
    Ascent::execute failed 
    file: /scratch/dmhensi/smash/smash_with_ascent_2026-05-26-2/source/conduit/src/libs/conduit/conduit_node.cpp
    line: 15121
    message: 
    Node::as_int32() const -- DataType int64 at path params/renders/r1/auto_camera/samples does not equal expected DataType int32
[Error] Ascent::execute 
file: /scratch/dmhensi/smash/smash_with_ascent_2026-05-26-2/source/conduit/src/libs/conduit/conduit_node.cpp
line: 15121
message: 
Node::as_int32() const -- DataType int64 at path params/renders/r1/auto_camera/samples does not equal expected DataType int32

Here is snippet form the yaml file.

    s3:
      plots:
        p1:
          type: "pseudocolor"
          field: "alternating"
      renders:
        r1:
          image_prefix: "econduits3r1"
          type: "auto_camera"
          auto_camera:
            metric: "dds_entropy"
            field: "alternating"
            samples: 5

Removing the "samples 5" from the offending yaml file produces an error:

    Ascent::execute failed 
    file: /scratch/dmhensi/smash/smash_with_ascent_2026-05-26-2/source/ascent/src/libs/ascent/runtimes/flow_filters/ascent_runtime_rendering_filters.cpp
    line: 1506
    message: 
    Auto Camera must specify number of 'samples'
[Error] Ascent::execute 
file: /scratch/dmhensi/smash/smash_with_ascent_2026-05-26-2/source/ascent/src/libs/ascent/runtimes/flow_filters/ascent_runtime_rendering_filters.cpp
line: 1506
message: 
Auto Camera must specify number of 'samples'

Visiting ascent_runtime_rendering_filters.cpp reveals the offending code:

            if(!render_node.has_path("auto_camera/field"))
                    ASCENT_ERROR("Auto Camera must specify a 'field'");
            if(!render_node.has_path("auto_camera/metric"))
                    ASCENT_ERROR("Auto Camera must specify a 'metric'");
            if(!render_node.has_path("auto_camera/samples"))
                    ASCENT_ERROR("Auto Camera must specify number of 'samples'");

            std::string field_name = render_node["auto_camera/field"].as_string();
            std::string metric     = render_node["auto_camera/metric"].as_string();
            int samples            = render_node["auto_camera/samples"].as_int32();

The "as_int32(); appears to defeat the parsing of the int from the YAML file. I haven't gone further on this.
If this is already fixed I'd like to know a version to move up to.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions