Probability Field Generator
Mathematical Foundation: Normal Distribution Function
The Gaussian function implements the fundamental normal distribution that appears throughout nature, from quantum mechanics to statistical analysis.
Mathematical Definition:
For multidimensional vectors:
Parameter Analysis:
- or : Distance value (scalar or vector)
- : Spread parameter controlling distribution width
- When : Distribution approaches Dirac delta function
- When : Distribution approaches uniform distribution
Properties:
- Bell-shaped curve with maximum value of 1 at distance 0
- Smooth falloff with infinite tail behavior
- Rotational symmetry for multidimensional cases
- Mathematical elegance enabling analytical solutions
Mathematical Beauty in Natural Distribution
By manipulating the distance parameter and spread factor, infinite variations of smooth falloff patterns emerge, creating everything from subtle ambient glows to dramatic energy concentrations that pulse with mathematical precision.
ライブエディター
const fragment = () => { const center = vec2(0.5) const distance = uv.sub(center).length() const spread = iTime.mul(0.5).sin().add(1).div(2).mul(0.3).add(0.1) const intensity = gaussian(distance, spread) return vec4(vec3(intensity.mul(2)), 1) }
Multiple Gaussian Interaction
Multiple Gaussian distributions can be combined to create complex patterns. Each distribution acts as a separate "hotspot" that can move and interact with others, useful for creating organic blob-like effects or modeling multiple light sources.
ライブエディター
const fragment = () => { const time = iTime.mul(0.4) const center1 = vec2(time.sin().mul(0.2).add(0.3), time.mul(1.2).cos().mul(0.15).add(0.4)) const center2 = vec2(time.mul(0.8).cos().mul(0.25).add(0.7), time.mul(1.5).sin().mul(0.2).add(0.6)) const center3 = vec2(time.mul(1.3).sin().mul(0.18).add(0.5), time.mul(0.6).cos().mul(0.22).add(0.3)) const dist1 = uv.sub(center1).length() const dist2 = uv.sub(center2).length() const dist3 = uv.sub(center3).length() const cloud1 = gaussian(dist1, 0.15) const cloud2 = gaussian(dist2, 0.12) const cloud3 = gaussian(dist3, 0.18) const interference = cloud1.add(cloud2).add(cloud3) const energy = interference.pow(1.5) return vec4(energy.mul(0.6), energy.mul(1.2), energy.mul(0.9), 1) }