An interactive guide to moving sources, expanding wavefronts, and what an observer sees when they arrive.
Interaktív bevezető a mozgó forrásokhoz, a táguló hullámfrontokhoz, és ahhoz, mit érzékel a megfigyelő, amikor azok megérkeznek.
1. What is a wavefront? 1. Mi a hullámfront?
A wavefront is the surface traced by a disturbance as it travels outward from its source.
Drop a stone into still water: the expanding ring you see is a wavefront. In this simulator every source
continuously emits circular wavefronts that spread at a fixed wave speed c = 1.
If the source does not move, the wavefronts are perfectly concentric rings centered on it. Everything that happens later is just a consequence of the source moving while still emitting these ever-expanding rings.
A hullámfront az a felület, amit egy zavarás a forrásától kifelé haladva kirajzol.
Dobj egy követ nyugodt vízbe: a táguló gyűrű, amit látsz, egy hullámfront. Ebben a szimulátorban minden forrás
folyamatosan köralakú hullámfrontokat bocsát ki, amelyek rögzített c = 1 sebességgel terjednek.
Ha a forrás nem mozog, a hullámfrontok tökéletesen koncentrikus gyűrűk. Minden, ami ezután történik, csupán annak a következménye, hogy a forrás mozogni kezd, miközben továbbra is ezeket a táguló gyűrűket bocsátja ki.
c.
Egy álló forrás. A gyűrű egy hullámfront, ami c sebességgel tágul.
2. Water-like and fire-like sources 2. Víz-szerű és tűz-szerű források
The most important distinction in the entire simulator is whether the source moves
slower than or faster than its own wavefronts.
We normalize the wave speed to c = 1, so "the source's speed" and "its Mach number" are the same number.
A szimulátor legfontosabb megkülönböztetése az, hogy a forrás lassabban
vagy gyorsabban mozog-e, mint a saját hullámfrontjai.
A hullámsebességet c = 1-re normáljuk, így "a forrás sebessége" és "a Mach-száma" ugyanaz.
| Regime | Speed | Visions | Analogy |
|---|---|---|---|
| Subsonic | v < c | One | Boat on water |
| Sonic | v = c | Degenerate | Sound barrier |
| Supersonic | v > c | Two (inside cone) | Jet aircraft |
| Tartomány | Sebesség | Víziók | Analógia |
|---|---|---|---|
| Szubszonikus | v < c | Egy | Csónak a vízen |
| Hangsebesség | v = c | Elfajuló | Hangsebesség-korlát |
| Szuperszonikus | v > c | Kettő (a kúpban) | Sugárhajtású repülő |
3. Visions — what the observer detects 3. Víziók — amit a megfigyelő észlel
A vision is a detection event: a moment when one of the source's wavefronts reaches the observer's location. In Detection mode the simulator colors each pixel by how many visions it currently has, and how tightly packed those wavefronts are (the density).
Density is the ratio dr/dR — how much the apparent distance r to the source changes per unit of true wavefront radius R. High density means many wavefronts compress into a small region (the leading edge of a moving source, or the Mach cone). Low density means the wavefronts are stretched apart.
A vízió egy észlelési esemény: az a pillanat, amikor a forrás egyik hullámfrontja eléri a megfigyelő helyét. Észlelési módban a szimulátor minden pixelt aszerint színez, hogy hány víziója van éppen, és milyen sűrűn helyezkednek el a hullámfrontok (sűrűség).
A sűrűség a dr/dR arány — az, hogy a látszólagos r távolság mennyit változik egységnyi valódi R hullámfront-sugár változásra. Magas sűrűség azt jelenti, hogy sok hullámfront tömörül kis térbe (a mozgó forrás eleje, vagy a Mach-kúp). Alacsony sűrűség azt jelenti, hogy a hullámfrontok szétszakadnak.
4. Interaction and forces 4. Kölcsönhatás és erők
Sources can interact through each other's wave spaces. When source A "sees" source B via a vision, the simulator applies a force that nudges A toward or away from the apparent position of B. Key settings:
- Force factor (0–1): how strongly detected visions influence motion. 0 = pure ballistic momentum. 1 = full response.
- Interaction mode:
push(sources repel) orpull(attract). - Path interaction mode: whether the source is free to deviate from its path function (
breakFree) or locked to it. - Self-interaction: how a supersonic source reacts to its own past wavefronts.
Because every force is delayed by the travel time of the wavefront, the dynamics are inherently non-local and time-delayed — that is what makes the system visually fascinating.
A források egymás hullámterein keresztül hatnak kölcsön. Amikor az A forrás "látja" a B forrást egy vízión keresztül, a szimulátor egy erőt alkalmaz, amely A-t B látszólagos pozíciója felé vagy attól el mozdítja. Fontos beállítások:
- Erő-faktor (0–1): mennyire befolyásolják az észlelt víziók a mozgást. 0 = tiszta ballisztika. 1 = teljes reakció.
- Kölcsönhatás-mód:
push(taszítás) vagypull(vonzás). - Pályakölcsönhatás-mód: eltérhet-e a forrás a pályafüggvényétől (
breakFree), vagy ahhoz kötött. - Önkölcsönhatás: hogyan reagál egy szuperszonikus forrás a saját múltbeli hullámfrontjaira.
Mivel minden erőt a hullámfront terjedési ideje késleltet, a dinamika eredendően nemlokális és időkésleltetéses — ez az, ami vizuálisan lenyűgözővé teszi a rendszert.
5. Path functions — artificial trajectories 5. Pályafüggvények — mesterséges trajektóriák
Beyond simple constant velocities, each source can follow a user-defined parametric path:
where f and g are math expressions you type (or pick from presets).
The simulator compiles them at runtime and lets you animate arbitrary curves — circles, Lissajous figures, spirals,
even accelerating motions that cross the sonic barrier mid-flight.
Available functions include sin, cos, tan, exp, log, sqrt,
abs, pow(a,b), and the constants pi, e.
The only free variable is t, the elapsed time since the source was created.
A konstans sebesség mellett minden forrás követhet egy felhasználó által definiált paraméteres pályát:
ahol f és g általad beírt (vagy sablonból választott) matematikai kifejezések.
A szimulátor ezeket futásidőben fordítja le, és tetszőleges görbék animálását teszi lehetővé — köröket, Lissajous-görbéket, spirálokat,
sőt olyan gyorsuló mozgásokat is, amelyek menet közben átlépik a hangsebesség-határt.
Elérhető függvények: sin, cos, tan, exp, log, sqrt,
abs, pow(a,b), és a pi, e konstansok.
Az egyetlen szabad változó t, a forrás létrejötte óta eltelt idő.
x = 2·cos(0.5·t), y = 2·sin(0.5·t).
Kör alakú pálya: x = 2·cos(0.5·t), y = 2·sin(0.5·t).
x = 2·sin(0.5·t), y = 2·sin(t).
Lissajous-nyolcas: x = 2·sin(0.5·t), y = 2·sin(t).
x = 0.3·t·cos(t), y = 0.3·t·sin(t). The speed grows linearly with time — this source crosses sonic mid-flight.
Bővülő spirál: x = 0.3·t·cos(t), y = 0.3·t·sin(t). A sebesség lineárisan nő az idővel — ez a forrás menet közben lép át a hangsebességen.
6. The math behind it all 6. A háttérben álló matematika
When does a wavefront emitted at source time τ reach an observer at (x, y)?
If the source position is (x₀ + τ·vₓ, y₀ + τ·vᵧ) and the wavefront has radius r₀ + (t − τ)·c at observer time t, the arrival condition is:
This is a quadratic in τ. Rearranging gives Aτ² + Bτ + C = 0 with discriminant Δ = B² − 4AC, where A = |v|² − c².
| Sign of A | Regime | Solutions | Meaning |
|---|---|---|---|
| A < 0 | Subsonic | One valid τ | Exactly one vision — always |
| A = 0 | Sonic | Degenerate (linear) | A single τ or none |
| A > 0 | Supersonic | 0, 1, or 2 valid τ | Inside Mach cone → 2 visions; outside → 0 |
The fragment shader evaluates this per pixel every frame, which is why the dense hyperbolic boundaries appear automatically without any explicit geometry. The density field plotted across the canvas is exactly dr/dR, the derivative of apparent distance with respect to true wavefront radius.
Mikor ér el egy τ időpontban kibocsátott hullámfront egy (x, y) pontban lévő megfigyelőt?
Ha a forrás pozíciója (x₀ + τ·vₓ, y₀ + τ·vᵧ), és a hullámfront sugara r₀ + (t − τ)·c a megfigyelő t idejében, az érkezési feltétel:
Ez másodfokú egyenlet τ-ban. Átrendezve: Aτ² + Bτ + C = 0, diszkrimináns Δ = B² − 4AC, ahol A = |v|² − c².
| A előjele | Tartomány | Megoldások | Jelentés |
|---|---|---|---|
| A < 0 | Szubszonikus | Egy érvényes τ | Mindig pontosan egy vízió |
| A = 0 | Hangsebesség | Elfajuló (lineáris) | Egyetlen τ, vagy egy sem |
| A > 0 | Szuperszonikus | 0, 1 vagy 2 érvényes τ | Mach-kúpon belül → 2 vízió; kívül → 0 |
A fragment-shader pixelenként, minden képkockán kiszámolja ezt, ezért jelennek meg automatikusan a sűrű hiperbolikus határok bármiféle geometria nélkül. A vásznon ábrázolt sűrűségmező pontosan dr/dR, a látszólagos távolság deriváltja a valódi hullámfront-sugár szerint.