Divine Dance  Wavefront TutorialHullámfront oktatóanyag

AI-generated contentMI által generált tartalom: this text was drafted by an AI and is primarily here to exercise the embedded widget. It will be reviewed and rewritten by a human. ezt a szöveget mesterséges intelligencia készítette, elsődleges célja a beágyazott widget tesztelése. Egy ember át fogja nézni és átírja.

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.

A stationary source. The ring marks a single wavefront expanding at speed 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.

Water-like (subsonic, v < 1). Imagine a boat on a pond. Each ripple spreads outward faster than the boat moves, so the boat stays inside all its past wavefronts. An observer ahead hears each ripple exactly once — compressed in frequency (Doppler blue-shift), but with no ambiguity about where the boat is.
Fire-like (supersonic, v > 1). A bullet or a jet outruns its own sound. The wavefronts pile up behind it into a V-shaped Mach cone. An observer inside this cone receives two wavefronts at once — one from an earlier source position and one from a later one. They literally see the source in two places at the same instant.

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.

Víz-szerű (szubszonikus, v < 1). Képzelj el egy csónakot a tavon. Minden fodor gyorsabban terjed, mint ahogy a csónak halad, így a csónak belül marad minden korábbi hullámfrontján. Egy előtte lévő megfigyelő minden fodrot pontosan egyszer hall — frekvenciában összenyomva (Doppler-kékeltolódás), de egyértelmű forráspozícióval.
Tűz-szerű (szuperszonikus, v > 1). Egy puskagolyó vagy sugárhajtású gép kilép a saját hangjából. A hullámfrontok V-alakba, egy Mach-kúpba halmozódnak mögötte. Egy megfigyelő a kúp belsejében egyszerre két hullámfrontot kap — egyet egy korábbi, egyet egy későbbi forráspozícióból. Szó szerint egyszerre két helyen látja a forrást.
Subsonic (v = 0.5c) — offset concentric wavefronts, water ripples. Szubszonikus (v = 0.5c) — eltolt koncentrikus hullámfrontok, vízfodrok.
Sonic (v = c) — the edge case. All wavefronts pile up on the source itself. Hangsebesség (v = c) — határeset. Minden hullámfront a forráson halmozódik.
Supersonic (v = 2c) — Mach cone. Observers inside see the source in two places at once. Szuperszonikus (v = 2c) — Mach-kúp. A belül lévő megfigyelők két helyen látják egyszerre a forrást.
RegimeSpeedVisionsAnalogy
Subsonicv < cOneBoat on water
Sonicv = cDegenerateSound barrier
Supersonicv > cTwo (inside cone)Jet aircraft
TartománySebességVíziókAnalógia
Szubszonikusv < cEgyCsónak a vízen
Hangsebességv = cElfajulóHangsebesség-korlát
Szuperszonikusv > cKettő (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:

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:

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.

Two subsonic sources heading toward each other with no interaction. Their wavefronts overlap and each "sees" the other's past, but the sources themselves pass straight through — this is a pure geometry demonstration. Két szubszonikus forrás közeledik egymáshoz, kölcsönhatás nélkül. Hullámfrontjaik átfednek, és mindegyik a másik múltját "látja", de maguk a források áthaladnak egymáson — ez tisztán geometriai bemutató.
Same two sources, now with the default push interaction enabled. Each source's past wavefronts physically repel the other's present position — watch how they slow, bend sideways and recoil before ever touching. The visible past trails reveal the curved worldlines the interaction carves out. Ugyanaz a két forrás, most a bekapcsolt alapértelmezett taszító kölcsönhatással. Mindkét forrás múltbeli hullámfrontjai fizikailag eltaszítják a másik jelenlegi pozícióját — figyeld meg, hogyan lassulnak, oldalra hajolnak és fordulnak vissza, mielőtt egyáltalán érintenék egymást. A látható múltbeli nyomvonal felfedi a kölcsönhatás által megrajzolt ívelt világvonalakat.

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:

x(t) = f(t)     y(t) = g(t)

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:

x(t) = f(t)     y(t) = g(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ő.

Circular path: 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).
Lissajous figure-8: x = 2·sin(0.5·t), y = 2·sin(t). Lissajous-nyolcas: x = 2·sin(0.5·t), y = 2·sin(t).
Expanding spiral: 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:

(x − x₀ − τ·vₓ)² + (y − y₀ − τ·vᵧ)² = (r₀ + (t − τ)·c)²

This is a quadratic in τ. Rearranging gives Aτ² + Bτ + C = 0 with discriminant Δ = B² − 4AC, where A = |v|² − c².

Sign of ARegimeSolutionsMeaning
A < 0SubsonicOne valid τExactly one vision — always
A = 0SonicDegenerate (linear)A single τ or none
A > 0Supersonic0, 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:

(x − x₀ − τ·vₓ)² + (y − y₀ − τ·vᵧ)² = (r₀ + (t − τ)·c)²

Ez másodfokú egyenlet τ-ban. Átrendezve: Aτ² + Bτ + C = 0, diszkrimináns Δ = B² − 4AC, ahol A = |v|² − c².

A előjeleTartományMegoldásokJelentés
A < 0SzubszonikusEgy érvényes τMindig pontosan egy vízió
A = 0HangsebességElfajuló (lineáris)Egyetlen τ, vagy egy sem
A > 0Szuperszonikus0, 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.

→ Open the full simulator → Nyisd meg a teljes szimulátort