murk-obs 0.1.7

Observation specification and extraction for Murk simulations
Documentation

murk-obs

Observation specification and tensor extraction for the Murk simulation engine.

Build ObsSpec descriptions of what to observe (fields, regions, transforms, pooling), compile them into ObsPlans, and extract flat f32 tensors with validity masks. Supports foveation, multi-agent batching, and normalization.

Available via the top-level murk crate as murk::obs.

Installation

cargo add murk-obs

Most users should depend on the top-level murk crate, which re-exports this as murk::obs.

Usage

use murk_obs::{ObsSpec, ObsEntry, ObsDtype, ObsTransform, ObsRegion};
use murk_core::FieldId;
use murk_space::RegionSpec;

let spec = ObsSpec {
    entries: vec![
        ObsEntry {
            field_id: FieldId(0),
            region: ObsRegion::Fixed(RegionSpec::All),
            pool: None,
            transform: ObsTransform::Identity,
            dtype: ObsDtype::F32,
        },
        ObsEntry {
            field_id: FieldId(1),
            region: ObsRegion::AgentDisk { radius: 3 },
            pool: None,
            transform: ObsTransform::Normalize { min: 0.0, max: 100.0 },
            dtype: ObsDtype::F32,
        },
    ],
};

Documentation