larvaworld.lib.model.modules.basic
Classes
Base effector module for behavioral output generation. |
|
Step-based effector with amplitude control. |
|
Step oscillator combining oscillation with step-based activation. |
|
Sinusoidal oscillator with sine-wave phase modulation. |
|
Nengo-compatible effector with frequency-based activation control. |
Module Contents
- class larvaworld.lib.model.modules.basic.Effector(**kwargs: Any)
Bases:
larvaworld.lib.model.modules.oscillator.TimerBase effector module for behavioral output generation.
Abstract base class for all behavioral modules that produce motor outputs (crawlers, turners, feeders, sensors). Provides noise application, activation control, and input/output processing.
- Attributes:
input_noise: Gaussian noise magnitude applied to input (0-1) output_noise: Gaussian noise magnitude applied to output (0-1) input_range: Valid input range (min, max) output_range: Valid output range (min, max) input: Current input value output: Current output value active: Whether effector is currently active
- Example:
>>> # Use concrete subclasses like StepEffector, Crawler, Turner >>> effector = StepEffector(amp=0.5, input_noise=0.1) >>> output = effector.step(A_in=0.3)
- input_noise
- output_noise
- input_range
- output_range
- input = 0
- output = 0
- update_output(output: Any) Any
- update_input(input: Any) Any
- apply_noise(value: Any, noise: float = 0, range: Any | None = None) Any
- get_output(t: float) float
- update() None
- act(**kwargs: Any) None
- inact(**kwargs: Any) None
- step(A_in: float = 0, **kwargs: Any) Any
- class larvaworld.lib.model.modules.basic.StepEffector(**kwargs: Any)
Bases:
EffectorStep-based effector with amplitude control.
Extends Effector with amplitude-based activation (Act = amp × phase). Base class for step-driven behaviors (crawling, constant turning).
- Attributes:
amp: Oscillation amplitude coefficient Act_coef: Activation coefficient (returns amp) Act_Phi: Activation phase modulation (returns 1 for constant) Act: Total activation (Act_coef × Act_Phi)
- Example:
>>> step_eff = StepEffector(amp=0.8) >>> output = step_eff.step()
- amp
- property Act_coef: float
- property Act_Phi: float
- property Act: float
- set_amp(v: float) None
- get_amp(t: float) float
- act() None
- inact() None
- class larvaworld.lib.model.modules.basic.StepOscillator(random_phi: bool = True, **kwargs: Any)
Bases:
larvaworld.lib.model.modules.oscillator.Oscillator,StepEffectorStep oscillator combining oscillation with step-based activation.
Merges Oscillator phase tracking with StepEffector amplitude control. Base class for oscillatory behaviors (peristaltic crawling, sinusoidal turning).
- Example:
>>> step_osc = StepOscillator(freq=1.5, amp=0.7) >>> output = step_osc.step()
- act() None
- class larvaworld.lib.model.modules.basic.SinOscillator(random_phi: bool = True, **kwargs: Any)
Bases:
StepOscillatorSinusoidal oscillator with sine-wave phase modulation.
Extends StepOscillator with sinusoidal activation (Act_Phi = sin(φ)). Used for smooth oscillatory behaviors like sinusoidal turning.
- Example:
>>> sin_osc = SinOscillator(freq=0.58, amp=0.4) >>> output = sin_osc.step()
- property Act_Phi: float
- class larvaworld.lib.model.modules.basic.NengoEffector(random_phi: bool = True, **kwargs: Any)
Bases:
StepOscillatorNengo-compatible effector with frequency-based activation control.
Extends StepOscillator with automatic frequency setting on start/stop. Used for Nengo neural simulator integration.
- Example:
>>> nengo_eff = NengoEffector(freq=1.2, amp=0.5) >>> nengo_eff.start_effector() # Sets freq to initial_freq >>> nengo_eff.stop_effector() # Sets freq to 0
- start_effector() None
- stop_effector() None