larvaworld.lib.model.modules.basic

Classes

Effector

Base effector module for behavioral output generation.

StepEffector

Step-based effector with amplitude control.

StepOscillator

Step oscillator combining oscillation with step-based activation.

SinOscillator

Sinusoidal oscillator with sine-wave phase modulation.

NengoEffector

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.Timer

Base 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: Effector

Step-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, StepEffector

Step 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: StepOscillator

Sinusoidal 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: StepOscillator

Nengo-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