An interactive guide to moving sources, expanding wavefronts, and what an observer sees when they arrive.
Interaktív bevezető a Teremtők Tánca építőelemeihez: mozgó forrásokhoz, a táguló hullámfrontokhoz, és ahhoz, mit érzékel a megfigyelő, amikor azok megérkeznek.
1. What is this project about? 1. Mi ez a projekt?
This little modelling program is the continuation of an old research project I wrote back in 2003. That early version was clumsy to extend and nowhere near able to exploit the possibilities we have today. The goal of the project is to help experiment with foundational time-physics concepts, and to serve as a tool for finding parameters of stable, self-sustaining source systems. Or just for generating pretty illustrations. :)
Divine Dance is currently in a "beta" phase — it is only suitable for getting acquainted with it and for testing. I still want to extend it with a comprehensive interaction system that will make it genuinely fit for experimentation. It can already compute push and pull interactions of various magnitudes between sources and their past-fields, but it is still too easy to get lost in those and to figure out what actually makes sense.
The program is best tried on a PC or Mac; mobile and tablet browsers are only partially supported at the moment. For this reason I am also planning a mobile app, where touch control and the interface itself will be much more usable on those devices.
It is important to point out that the whole simulation owes its peculiar character to the fact that the past-field generated by the sources is continuous, not sequenced and discrete. That is, the "interaction" does not happen on the surfaces of the circles/spheres that depict the past — those are merely visual aids of an actually fully continuous informational past-field. The interaction is defined between a source and the vision it perceives in that field. The character of the past-field itself does not matter, only where it maps the perceived visions.
Not yet available in this simulator, but very much on the roadmap: that what a source — a thing that exists — radiates should not be merely its bare existence, but also what it perceives of the others. That is what will make this world truly exciting: if it is not only the being-wave but the full perception that travels along with the past, then new chapters of long-forgotten mysteries become interpretable.
I can be reached at the email address shown in the help widget.
Ez a kis modellező program egy régi, 2003-ban megírt kutatási projektnek a folytatása. Az akkori verzió nehézkesen volt bővíthető és messze nem aknázta ki azokat a lehetőségeket, ahova mára eljutottunk. A projekt célja, hogy segítsen kísérletezni az időfizikai alapfogalmakkal és eszközül szolgáljon stabil, önfenntartó forrásrendszerek paramétereinek megtalálásához. Vagy csak szép illusztrációk generálásához. :)
A Teremtők Tánca jelenlegi "béta" fázisban van, még csak ismerkedésre és tesztelésre alkalmas, még szeretném kiegészíteni egy átfogó kölcsönhatási rendszerrel, amivel tényleg alkalmasnak minősül majd a kísérletezésre. Most ugyan tud különböző mértékű, taszító-vonzó kölcsönhatásokat számolni a források és azok múltterei között, de ezekben még túl könnyű elveszni és kitalálni, hogy minek is van valóban értelme.
A programot PC-n vagy Mac-en javasolt kipróbálni, a mobil és tablet böngészők jelenleg részlegesen támogatottak csak. Emiatt tervezek még egy mobilalkalmazást is, amiben az érintésvezérlés és maga a felület is sokkal használhatóbb lesz ezeken az eszközökön is.
Fontos kiemelni, hogy az egész szimuláció attól számít különlegesnek, hogy a források keltette múlttér folyamatos, nem pedig szekventált és diszkrét. Tehát nem a múltakat ábrázoló körök/gömbök felületén történik az "ütközés", hanem ezek csak vizualizációt segítő megjelentítései egy valójában teljesen folytonos információs múlttérnek. A kölcsönhatás egy forrás és az általa e térben érzékelt látomás között értelmezett. A múlttér jellege nem számít, csak abban, hogy hova képzi le az érzékelt látomásokat.
Ebben a szimulátorban még nem elérhető, de később mindenképpen fontos cél, hogy ne csak a puszta létezése legyen sugározva a források, létezők által, hanem az is, amit egymásból érzékelnek. Ettől lesz majd nagyon izgalmas ez a világ, mert ha nem csak a léthullám, hanem a teljes érzékelés is vele-utazik a múlttal, akkor értelmezhetővé válnak újabb fejezetek a réges-régi titkokból.
A súgóban látható email címen vagyok elérhető.
2. What is a wavefront? 2. 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 note on terminology: the rings you see here are a visualization aid. Physically each source generates a continuous past-field (also called its wave space — we use the two terms as synonyms throughout this guide); we draw discrete rings only to make that field intelligible.
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.
Egy szó a megnevezésekről: a látható gyűrűk csupán vizualizációs eszközök. Fizikailag minden forrás folytonos múlteret kelt (ezt hullámtérnek is hívjuk — a két kifejezést szinonimaként használjuk az ismertető során); a diszkrét gyűrűket csak az érthetőség kedvéért rajzoljuk ki.
c.
Egy álló forrás. A gyűrű egy hullámfront, ami c sebességgel tágul.
3. Water-like and fire-like sources 3. 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ő |
4. Visions — what the observer detects 4. 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.
Formally, density is the derivative of the experienced self-time t with respect to the observer's
clock: the denser the past-field is at a point, the faster the vision moves through it — the same mechanism
that produces the Doppler effect. A vision approaching head-on packs many emission moments
into a short interval (high density, blue-shift); a receding vision spreads them out (low density, red-shift).
Anatomy of a vision glyph
When you hover with the mouse — or when one source detects another — the simulator draws a small composite marker at the apparent location. Each piece carries information:
- Inner filled disc — colored with the seen source's color. This is "who is being seen".
- Outer thin ring — colored with the observing source's color, or black when the observer is the generic mouse spectator. This is "who is doing the seeing".
- Dashed intersecting circle — the wavefront the vision rides on, i.e. where the observer meets the source's past-field at this instant.
- Arrow — the experienced motion vector of the vision: the direction and speed the apparent source is seen to move now, not the source's actual velocity at the time of emission.
- Label
t— the self-time of the vision: the moment when this past-field was emitted and the source was at this apparent position. - Label
d— the local density at the vision's point. Equal todt/dT(or equivalentlydr/dR); larged⇒ Doppler blue-shift, smalld⇒ red-shift.
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.
Formálisan a sűrűség a megélt t sajátidő deriváltja a megfigyelő órája szerint: minél sűrűbb a
múlttér egy pontban, annál gyorsabban halad rajta keresztül a vízió — ugyanez a mechanizmus okozza a
Doppler-effektust is. Egy szembe érkező vízió sok kibocsátási pillanatot zsúfol rövid
intervallumba (magas sűrűség, kékeltolódás); egy távolodó vízió szétkeni őket (alacsony sűrűség, vöröseltolódás).
Egy vízió-jelölő anatómiája
Amikor az egérrel az ábra fölé viszed a kurzort — vagy amikor egy forrás egy másikat észlel — a szimulátor egy kis összetett jelölőt rajzol a látszólagos pozícióba. Minden eleme információt hordoz:
- Belső kitöltött korong — a látott forrás színével. Ez az "akit látunk".
- Külső vékony gyűrű — a megfigyelő forrás színével, vagy fekete, ha a megfigyelő a generikus egér-szemlélő. Ez a "ki látja".
- Szaggatott metsző kör — az a hullámfront, amelyen a vízió ül; vagyis ahol a megfigyelő épp metszi a forrás múltterét.
- Nyíl — a vízió megélt mozgásvektora: az az irány és sebesség, ahogyan a látszólagos forrás most mozogni látszik — nem pedig a forrás tényleges sebessége a kibocsátás pillanatában.
tcímke — a vízió sajátideje: az az időpillanat, amikor ez a múlttér kibocsátódott, és a forrás ezen a látszólagos helyen volt.dcímke — a helyi sűrűség a vízió pontjában. Egyenlődt/dT-vel (vagydr/dR-rel); nagyd⇒ Doppler-kékeltolódás, kicsid⇒ vöröseltolódás.
5. Interaction and forces 5. Kölcsönhatás és erők
Sources can interact through each other's wave spaces (i.e. their past-fields). 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. Tuning these forces is the route to the stable, self-sustaining source systems mentioned in the introduction.
A források egymás hullámterein (azaz múlttereiken) 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. Ezeknek az erőknek a hangolása vezet a bevezetőben említett stabil, önfenntartó forrásrendszerekhez.
6. Path functions — artificial trajectories 6. 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.
7. The math behind it all 7. 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.