Simulation · Published v2
Azure Geysers
Five copper vents emit translucent blue plumes above an obsidian platform. Mist rises by creating weaker cells above itself, then dissipates. The vents continuously refill gaps for a repeating fountain.
No preview
Inside this simulation
Every named building block is public and reusable. These are the exact versions published with this simulation.
Source
property Emitter { power: Float<1.0> [0.0 1.0]; }
property Plume { density: Float<0.85> [0.0 1.0]; age: Float<0.0> [0.0 1.0]; }
property Stone { hardness: Float<1.0> [0.0 1.0]; }
model Mist : Plume;
model Platform : Stone;
model Vent : Emitter;
world { dimensions 3; cell Cube; neighborhood VonNeumann; }
behavior EmitMist for Emitter { expand with Mist toward +Z { set target.density = self.power; set target.age = 0.0; } }
behavior MistRise for Plume { expand toward +Z when self.density > 0.24 && self.age < 0.20 { set target.density = self.density * 0.94; set target.age = 0.0; } }
behavior MistFade for Plume { update { set self.density = max(0.0, self.density - 0.018); set self.age = min(1.0, self.age + 0.055); } }
behavior MistCleanup for Plume { delete when self.age > 0.95 || self.density < 0.08; }
phase emission { run EmitMist on Vent; run MistRise on Mist; }
phase diffusion { run MistFade on Mist; }
phase cleanup { run MistCleanup on Mist; }
visual BlueVapor for Plume { color { rgba(0.12 + self.age * 0.38, 0.65 + self.density * 0.25, 1.0, 0.35 + self.density * 0.45) } }
visual Obsidian for Stone { color { rgba(0.10, 0.13, 0.20, 1.0) } }
visual Copper for Emitter { color { rgba(0.85, 0.45, 0.20, 1.0) } }
visualize Mist with BlueVapor;
visualize Platform with Obsidian;
visualize Vent with Copper;