mercurial.impressions.material_memory module

Material memory effects: retention timescales and modality affinities (SPECTRAL A.4).

class mercurial.impressions.material_memory.CompositeMaterial(composition: Dict[Material, float])[source]

Bases: object

Methods

amplify_modality

overall_impression_intensity

update_all

amplify_modality(modality: str, raw_strength: float) float[source]
overall_impression_intensity() float[source]
update_all(dt: float, influx_rate: float)[source]
class mercurial.impressions.material_memory.Material(value)[source]

Bases: Enum

An enumeration.

AIR = 'air'
IRON = 'iron'
LIMESTONE = 'limestone'
QUARTZ = 'quartz'
WATER = 'water'
WOOD = 'wood'
class mercurial.impressions.material_memory.MaterialMemory(material: Material = Material.QUARTZ)[source]

Bases: object

Methods

update_impression(dt, influx_rate)

dI/dt = influx_rate * (1 - I) - decay_rate * I This bounds I between 0 and 1.

amplify_modality

decay_factor

get_retention_percentage

amplify_modality(modality: str, raw_strength: float) float[source]
decay_factor(time: float) float[source]
get_retention_percentage(time: float) float[source]
update_impression(dt: float, influx_rate: float)[source]

dI/dt = influx_rate * (1 - I) - decay_rate * I This bounds I between 0 and 1.

class mercurial.impressions.material_memory.MaterialSpec(name: mercurial.impressions.material_memory.Material, retention_timescale: float, modality_affinities: Dict[str, float], decay_exponent: float)[source]

Bases: object

decay_exponent: float
modality_affinities: Dict[str, float]
name: Material
retention_timescale: float