Behavior · Published v1

PlanCheeseSpread

PlanCheeseSpread from Golden Fondue.

From Golden Fondue · v2. Edit this definition in its source simulation.

Source

behavior PlanCheeseSpread for FondueMatter + FondueHeat {
	update {
		let below = (neighbors[FondueMatter using VonNeumann, -Z].mass else 1.0);
		let support = clamp((below - 0.6) / 0.4, 0.0, 1.0);
		let mobility = clamp((self.temperature - 0.25) / 0.4, 0.0, 1.0) * support * 0.2;
		set self.left = max(self.mass - (neighbors[FondueMatter using VonNeumann, -X].mass else self.mass), 0.0) * mobility;
		set self.right = max(self.mass - (neighbors[FondueMatter using VonNeumann, +X].mass else self.mass), 0.0) * mobility;
		set self.front = max(self.mass - (neighbors[FondueMatter using VonNeumann, -Y].mass else self.mass), 0.0) * mobility;
		set self.back = max(self.mass - (neighbors[FondueMatter using VonNeumann, +Y].mass else self.mass), 0.0) * mobility;
	}
}

Building blocks

These exact versions are included when you reuse this artifact.

PropertyFondueMatter@hyle · v1PropertyFondueHeat@hyle · v1