larvaworld.portal.models_architecture.module_inspector_data
Pure data layer for the portal Module Inspector (no Panel/Bokeh).
Builds standalone module instances from moduleDB and steps them per “kind”:
“effector” (crawler, turner):
step(A_in=<scalar>)with a constant A_in.“feeder”:
start_effector()once, thenstep()(self-oscillator, no input).“sensor” (olfactor, toucher, windsensor, thermosensor): driven by a time-varying stimulus converted to the per-sensor dict input,
step(A_in=<dict>).
- Determinism:
Initial oscillator phase is randomized by default; after construction this layer sets
phi = 0.0when the attribute exists so repeated traces match for the same parameters (exceptNeuralOscillatorwarm-up, which uses stdlibrandom; tests should seed RNGs and assert structure, not exact floats).
Attributes
Functions
|
|
|
|
|
|
|
|
|
Return a copy of the canonical default config for |
|
|
|
|
|
|
|
|
|
Return the active |
|
Map a scalar stimulus onto the sensor input dict. |
|
Module Contents
- larvaworld.portal.models_architecture.module_inspector_data.INSPECTABLE_MODULES: tuple[str, Ellipsis] = ('crawler', 'turner', 'feeder', 'olfactor', 'toucher', 'windsensor', 'thermosensor')
- larvaworld.portal.models_architecture.module_inspector_data.EXCLUDED_MODES: frozenset[str]
- larvaworld.portal.models_architecture.module_inspector_data.MODULE_KINDS: dict[str, str]
- larvaworld.portal.models_architecture.module_inspector_data.EFFECTOR_SIGNALS: tuple[str, Ellipsis] = ('input', 'activation', 'phi', 'output')
- larvaworld.portal.models_architecture.module_inspector_data.CANDIDATE_SIGNALS: tuple[str, Ellipsis] = ('input', 'activation', 'phi', 'output')
- larvaworld.portal.models_architecture.module_inspector_data.FEEDER_SIGNALS: tuple[str, Ellipsis] = ('phi', 'complete_iteration')
- larvaworld.portal.models_architecture.module_inspector_data.SENSOR_SIGNALS: tuple[str, Ellipsis] = ('stimulus', 'output')
- larvaworld.portal.models_architecture.module_inspector_data.ALL_SIGNALS: tuple[str, Ellipsis] = ('input', 'activation', 'phi', 'output', 'complete_iteration', 'stimulus')
- larvaworld.portal.models_architecture.module_inspector_data.DEFAULT_STEPS: int = 100
- larvaworld.portal.models_architecture.module_inspector_data.DEFAULT_DT: float = 0.1
- larvaworld.portal.models_architecture.module_inspector_data.DEFAULT_A_IN: float = 0.0
- larvaworld.portal.models_architecture.module_inspector_data.FALLBACK_INPUT_RANGE: tuple[float, float]
- larvaworld.portal.models_architecture.module_inspector_data.DEFAULT_STIMULUS: larvaworld.portal.models_architecture.module_inspector_models.StimulusSpec
- larvaworld.portal.models_architecture.module_inspector_data.module_kind(module_id: str) str
- larvaworld.portal.models_architecture.module_inspector_data.signals_for_kind(kind: str) tuple[str, Ellipsis]
- larvaworld.portal.models_architecture.module_inspector_data.module_modes(module_id: str) tuple[str, Ellipsis]
- larvaworld.portal.models_architecture.module_inspector_data.mode_label(module_id: str, mode: str) str
- larvaworld.portal.models_architecture.module_inspector_data.default_module_config(module_id: str, mode: str) Any
Return a copy of the canonical default config for
module_id/mode.MD.module_confmay return a shareddefault_dictentry; callers must not mutate the returned object without copying. This function always returns an independent copy so portal callers and tests cannot corrupt moduleDB defaults.
- larvaworld.portal.models_architecture.module_inspector_data.build_standalone_module(module_id: str, mode: str, conf: Any | None = None, *, dt: float = DEFAULT_DT) Any
- larvaworld.portal.models_architecture.module_inspector_data.detect_signals(module: Any, kind: str) tuple[str, Ellipsis]
- larvaworld.portal.models_architecture.module_inspector_data.module_input_range(module: Any) tuple[float, float]
- larvaworld.portal.models_architecture.module_inspector_data.list_inspectable_modules() tuple[larvaworld.portal.models_architecture.module_inspector_models.ModuleVariantSpec, Ellipsis]
- larvaworld.portal.models_architecture.module_inspector_data.stimulus_series(stim: larvaworld.portal.models_architecture.module_inspector_models.StimulusSpec, steps: int, dt: float) list[float]
- larvaworld.portal.models_architecture.module_inspector_data.sensor_gain_keys(module: Any) list[str]
Return the active
gain_dictkeys of a built sensor instance.
- larvaworld.portal.models_architecture.module_inspector_data.stimulus_to_input(module_id: str, value: float, baseline: float, *, gain_keys: list[str] | None = None) dict[str, float]
Map a scalar stimulus onto the sensor input dict.
The input keys must match the instance
gain_dictkeys; otherwise the sensor treats the stimulus as a novel input with gain 0.0 and the output goes flat. Whengain_keysis provided (the built module’s active keys), the stimulus follows whatever keys the user configured. Without it, the canonical per-sensor keys are used (backward-compatible default).
- larvaworld.portal.models_architecture.module_inspector_data.run_module_trace(module_id: str, mode: str, conf: Any | None = None, *, steps: int = DEFAULT_STEPS, dt: float = DEFAULT_DT, a_in: float = DEFAULT_A_IN, stimulus: larvaworld.portal.models_architecture.module_inspector_models.StimulusSpec | None = None) larvaworld.portal.models_architecture.module_inspector_models.ModuleTraceResult