Ambience is a particle system slowed down: N tiny dots, slow drift, wrap at the edges, gentle alpha pulse. Change one texture and one gravity number and this same code is snow, dust motes, or fireflies.
Deliberately calm: 6 px/s drift, 0.4 Hz twinkle. Low-frequency motion soothes; high-frequency jitter exhausts. This is a design stance, not a limitation.
vy: rand(8, 20), white, size up, and a flutter — s.x += Math.sin(t * 1.4 + s.phase) * 9 * dt before the wrap, so a flake rides the air instead of falling dead straight · fireflies: warm colour "#D6A878", COUNT 15, bigger twinkle range · dust motes: COUNT 30, DRIFT 3, alpha max 0.25 · a "warp" starfield: multiply both velocities by 40 and watch calm become momentum.In Godot: the same five calm numbers, with preset costumes on keys 1–4 (stars, snow, motes, fireflies) — download starfield.gd; the node version is one CPUParticles2D with a low emission rate and a long lifetime. In Unity: a Particle System with Rate over Time 2–8, Start Lifetime 10+, tiny Start Size, gravity 0, and the Shape module widened to cover the screen. In Unreal: a Niagara emitter with those same five numbers — the Fountain template with the urgency deleted. Chapter 06 (ambient atmosphere).