Behavior · Published v1

Absorb

Absorb from Quantum Double Slit.

From Quantum Double Slit · v2. Edit this definition in its source simulation.

Source

behavior Absorb for Quantum {
    update when self.open > 0.5 {
        let p = self.real * self.real + self.imag * self.imag;
        let lost = p * (1.0 - self.absorb * self.absorb);
        set self.received = clamp(self.received + self.detector * lost, 0.0, 2.0);
        set self.sink = clamp(self.sink + (1.0 - self.detector) * lost, 0.0, 2.0);
        set self.real = clamp(self.real * self.absorb, -2.0, 2.0);
        set self.imag = clamp(self.imag * self.absorb, -2.0, 2.0);
    }
}

Building blocks

These exact versions are included when you reuse this artifact.

PropertyQuantum@hyle · v1