SymSim - Creating Symmetry Using Dynamics on Orbifolds
Vladimir Bulatov(bulatov.org),
Joint Mathematics Meeting,
Gray-Scott reaction-diffusion equations
`(del u)/(del t) = D_u Delta u -uv^2 + f (1-u)`
`(del v)/(del v) = D_v Delta v + uv^2 - (f + k) v `
The equations describe the process that consists of reaction and diffusion of reagents `U` and `V`.
`U + 2V -> 3V` (`U` and `V` react and produce more `V`)
`V -> P` (chemical `V` is transformed into inert chemical `P` which is removed)
`u(x,y;t)` and `v(x,y;t)` are concentrations of chemicals `U` and `V`
`D_u` and `D_v` are diffuse coefficients.
`f` (feed) and `k` (kill) are parameters which control the pattern formation
Gray-Scott phase diagram
The boundary between red and blue is the region where non trivial pattern is formed
Gray-Scott unstable loops
The initial perturbations is transformed into mostly static patterns
Gray-Scott straight worms
The fast growing worms avoid each other
Gray-Scott parallel waves
fast moving parallel waves with some instability
Gray-Scott spots and loops
Initial smooth waves create chaotic fast moving spots
Gray-Scott pulsating worms and spots
Worms with unstable ends form pulsatins spots
Gray-Scott mazes
Stable compicated mazes pattern
Gray-Scott static spots
Fast forming static spots
Gray-Scott chaos and holes
Irregular chaotic pattern with large oscillations and some small holes
Gray-Scott mitosis and death
Spots divide and interact with each other kiling each other in the process
Gray-Scott moving spots
Spots move chaotically and die
Gray-Scott U-skate gliders
Rather stable u-shaped gliders move along straing lines and die during collisions
Gray-Scott waves
Regularly spaced waves can exist for long time or can die
Gray-Scott spiral waves
Spiral waves can self reproduce indefinitely
Gray-Scott spiral waves 2
Spiral waves can interact without significant damage
Gray-Scott spiral waves 3
Smooth and nice spiral waves
Pattern → symmetric pattnern
How can we enfoce the pattern to be symmetrical?
Simple Symmetrization Algorithm
Select a symmetry group (✶2222)
Simple Symmetrization Algorithm
1) Build the group's fundamental domain
Simple Symmetrization Algorithm
2) Place Gray-Scott pattern inside the fundamantal domain
Simple Symmetrization Algorithm
3) Use Reverse Pixel Mapping to extend the pattern to the whole plane
Simple Symmetrization Algorithm
3) Use Reverse Pixel Mapping to extend the pattern to the whole plane
Simple Symmetrization Algorithm
Perfectly symmetrical Gray-Scott pattern filling the plane!
Simple Symmetrization Test
The original image
Simple Symmetrization Test (✶2222)
Looks good 🙂
Simple Symmetrization Test (✶442)
Looks very good 🙂🙂
Simple Symmetrization Test (✶442)
Realy nice 🙂🙂🙂
Simple Symmetrization Test (✶333)
Perfect 😃😃😃
Simple Symmetrization Test (442)
Something wrong! 😕
Simple Symmetrization Test (4✶2)
Wrong again! 🙁
Simple Symmetrization Test (632)
Wrong! 😟
Simple Symmetrization Test (3✶3)
Wrong! 😠
Simple Symmetrization Test (333)
Wrong! 😱
Simple Symmetrization Test (2222)
Wrong! 😡
Simple Symmetrization Test (2✶22)
Wrong! 😰
Simple Symmetrization Test (22✶)
Wrong! 😡
Simple Symmetrization Test (✶✶)
Wrong! 😡 😡
Simple Symmetrization Test (✶X)
Wrong! 😡 😡 😡
Simple Symmetrization Test (22X)
Wrong! 😡 😡 😡 😡
Simple Symmetrization Test (XX)
Wrong! 😡 😡 😡 😡 😡
Simple Symmetrization Test (O)
Wrong! 🤕
Simple Symmetrization Analisys 😕
Simple Symmetrization works only for 4 out of 17 wallpaper groups
"Good" groups
(✶2222), (✶632), (✶333), (✶442)
kaleidoscopic groups generated by reflections
"Bad" groups
(632), (333), (442), (2222),
(3✶3), (4✶2), (22✶), (2✶22), (✶✶), (✶X),
(22X), (XX),(O)
The remaining groups. They are generated by rotations, glide reflecitions and translations
Simple Symmetrization Success (✶2222)
Group generated by reflections
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Success (✶2222)
Pattern matches along the fundamental domain sides
Simple Symmetrization Failure (O)
Group (O) generated by translations
Simple Symmetrization Failure (O)
Group (O) generated by translations
Simple Symmetrization Failure (O)
No match along sides
Simple Symmetrization Failure (O)
No match along sides
Simple Symmetrization Failure (O)
No match along sides
What to do?
Let's look at the whole simulation grid
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Let's try to fit together the complete pattern
Tiling the whole pattern
Pattern magically seamlessly matches
Tiling the whole pattern
Pattern magically seamlessly matches
Tiling the whole pattern
Pattern magically seamlessly matches
Tiling the whole pattern
Pattern magically seamlessly matches
Where from comes the magic?
Perfect seamless matching comes from using Periodic Boundary Condition (PBC)
PBC is routinely used for simulations of infinite homogineous system using grid of finite size
Main purpose of PBC is the elimination of the boundary effects
PBC makes all points of grid translationally equivalent
PBC enforces periodicity on the solution
PBC effectively select periodic solutions from all possible solutions of the infinite system
PBC integrated into simulation code (via simple identities like `V_(N+1) = V_1`)
Using PBC is equivalent to a simulation on the wallpaper group orbifold `(O)` - topologital torus
Perfect pattern matching
"Boundary" has no effect on the pattern
How PBC work
We work with finite grid patch
How PBC work
We imagine that it is part of an infinite grid
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
All grid points are matched to the points inside of the patch
How PBC work
The finite patch effectively represents the ininite simulation
How PBC work
The finite patch effectively represents the ininite simulation
How PBC work
As a side effectPBC also makes seamless pattern with symmetry (O)
Can we apply PBC idea to other symmetries?
Main idea of SymSim
We repace simulation step with a pair - (symmetrization + simulation)
Illustration of SymSim (XX)
The group fundamental domain
Illustration of SymSim (XX)
The reverse pixel mapping rules
Illustration of SymSim (XX)
Initial pattern inside of the domain
Illustration of SymSim (XX)
Symmetrization
Illustration of SymSim (XX)
Symmetrization
Illustration of SymSim (XX)
Symmetrization
Illustration of SymSim (XX)
Symmetrical but discontinuous pattern
SymSim steps
view after first symmetrization
SymSim steps
view after 10 SymSim steps
SymSim steps
view after 20 SymSim steps
SymSim steps
view after 30 SymSim steps
SymSim steps
view after 40 SymSim steps
SymSim steps
view after 50 SymSim steps
SymSim steps
view after 60 SymSim steps
SymSim steps
view after 70 SymSim steps
SymSim steps
view after 80 SymSim steps
SymSim steps
view after 90 SymSim steps
SymSim steps
view after 100 SymSim steps
SymSim steps
original wrinkles almost gone
SymSim relaxation video
longer simulation completely eliminates the wrinkles
SymSim relaxation video
We got perfect animated pattern with symmetry (XX)
SymSim for "good" groups
Simple Symmetrization for reflection group (✶2222)
SymSim for "good" groups
SymSim for reflection group (✶2222)
SymSim animation examples
U-gliders with symmetry (333)
SymSim animation examples
Periodic windmill with symmetry (4✶2)
SymSim animation examples
Spirals with symmetry (4✶2)
SymSim animation examples
Oscillating tentackes (333)
SymSim animation examples
Spinning worms (333)
SymSim animation examples
Evolving pattern (22X)
SymSim animation examples
Evolving maze (632)
SymSim animation examples
Oscillating flowers (632)
SymSim animation examples
Symmetric chaos (632)
SymSim animation examples
Interactive pattern (XX)
SymSim animation examples
Complex Ginzburg-Landau equation (22X)
SymSim properties
SymSim can be used in wide range of geometries: Euclidean, Hyperbolic, Spherical, Inversive, etc.
SymSim can be used for wide array of symmetries in those geometries.
The solutions obtained using SymSim procedure are true solutions of the original equations.
The symmetrization procedure effect is to selects symmetrical solution from the wider class of arbitrary solutions.
SymSim computations add very little cost to the original simulation.
On practice the symmetrization step can be used only once per 1000 simulation steps.
SymSim was initially implemented for Gray-Scott Reaction Diffusion equation.
Now it works for Complex Ginzburg-Landau equation (superconductivity phase transitions).
The Navier–Stokes equations (fluid dynamics) support is under development
SymSim is implemented as online applicaition using HTML, JavaScript and WebGL-2.
It runs on any platform which supports these technologies (desktop, teblet, cellphone).