#6 Amazing Morphing Equations: 3D Perspective, Grid, Rotate, Complex Sine
July 28, 2024. Showcasing an array of fascinating equations, each morphing into the next. I lined up the equations to be mostly incremental changes from prior to produce a flow and also make interesting morphing patterns. The finale is my invention of the 3D formula which makes all 3D graphics on a 2D screen possible -- the Holy Grail of 3D graphics -- changed into a 2D equation. Many of the equations have a T variable which is the passage of time in seconds, though this can and is adjusted in real-time. Enjoy!
Showcases:
---------------------
- smooth transition equation morphing
- 3D formulas
- rotation, via the xrot() and yrot() functions, which are simply the 2D rotation matrix:
xrot(x, y, t) = x * sin(t) + y * cos(t)
yrot(x, y, t) = x * cos(t) - y * sin(t)
- T animation speed adjustment
Equations:
------------------
(In order, and grouped by category / pattern)
- patterns that eventually make a grid
(sin(y * x) * cos(x * y)) - (cos(y - x) * sin(x - y))
(sin(y * x * x) * cos(x * y * y)) - (cos(y - x) * sin(x - y))
(sin(y * x * x + t) * cos(x * y * y - t)) - (cos(y - x + t) * sin(x - y - t))
(sin(y * x / t) * cos(x * y / t)) - (cos(y - x * t) * sin(x - y * t))
- pixelated circle
y*y + x*x - t
(y - sin(y * t)) * (y + sin(y * t)) + (x - sin(x * t)) * (x + sin(x * t)) - t,
- void circles
sin(x + y) + cos(y - x) - sin(x * y)
sin(x + y + t) + cos(y - x + t) - sin(x * y)
(sin(y * t * x) * cos(x * t * y)) - (cos(y - t) * sin(x - t))
- wavy grid
(sin(x + t) + cos(y - t)) - (sin(y - t) * cos(x + t))
(sin(x + t) + cos(y - t)) - (sin(y - t) * cos(x * t))
- bubbly
y - (sin(x * x) + cos(y * y) + sin(x * y) + cos(x * y))
y - (sin(x * x + t) + cos(y * y + t) + sin(x * y + t) + cos(x * y + t))
- funky
(cos(x) * y) - (sin(x + y * x) - y)
(cos(x + t) * y) - (sin(x + y * x - t) - y)
(cos(x+y) * (y-t)) - (sin((x-t) + (y-t) * (x-t)) - (y*t))
- 2D grid
sin(x)
sin(y)
sin(x) * sin(y)
sin(xrot(x,y,t)) * sin(yrot(x,y,t))
- 3D perspective
sin(x * 5.0 / y)
sin(5.0 / y)
sin(x * 5.0 / y) * sin(5.0 / y)
sin(x * 5.0 / y) * sin((5.0 / y) + t * 8.0)
sin(xrot(x,y,t) * 5.0 / yrot(x,y,t)) * sin((5.0 / yrot(x,y,t)) + t * 8.0)
Hardware / Processing:
---------------------------------------
Rendering is entirely on the CPU! No GPU used except to upload the already rendered software buffer.
- Alienware m18 R2
- NVIDIA GeForce RTX 4090 16GB GDDR6 (laptop version)
- 14th Gen Intel Core i9 14900HX (24-Core, 36MB L3 Cache, up to 5.8GHz Max Turbo Frequency)
- (16 E-Cores, and 8 P-Cores hyperthreaded = 32 V-Cores total)
- 64 GB: 2 x 32 GB, DDR5, 5200 MT/s, non-ECC, dual-channel
- 18" FHD+ (1920 x 1200) 480Hz, 3ms, ComfortView Plus, NVIDIA G-SYNC + DDS, 100% DCI-P3, FHD IR Camera
- AlienFX RGB backlit Alienware CherryMX ultra low-profile mechanical keyboard
- 4 TB, M.2, PCIe NVMe, SSD
Playlists:
--------------
- Xona System 8: https://youtube.com/watch?v=PqFQv60p-0E&list=PLjnbT4UISq0YwheLThIhm3LDxIkwpmKeb
- Voxel: https://youtube.com/watch?v=uadGU-stF-w&list=PLjnbT4UISq0bQF1g85tE9jTrKfEtdRYlY
- Ray Cast: https://youtube.com/watch?v=SkaPYZOKPQg&list=PLjnbT4UISq0YcFtRFjFQqK0g6ONNCtrvY
- Graph-All: https://youtube.com/watch?v=kLSc7bZW2Bs&list=PLjnbT4UISq0YLgynFSpLzml4BMC6TDZL2
- Scroll Shmup: https://youtube.com/watch?v=l9bIYkZepPo&list=PLjnbT4UISq0Y_7IAN_zUzxgZnfhXxo_0Q
- Road: https://youtube.com/watch?v=rA4g4VX7ys8&list=PLjnbT4UISq0bnfd1RC3M4PgTgkmhlkikV
- Arena Shmup: https://youtube.com/watch?v=VKjiuq437t0&list=PLjnbT4UISq0adw__Y9B2eXA0LL35TyORU
- Wave Function: https://youtube.com/watch?v=ngctVd9VK8I&list=PLjnbT4UISq0Y8vYnrSauHkBKgOBHXFFdf
- 3D Polygon: https://youtube.com/watch?v=0Qq_euAMP48&list=PLjnbT4UISq0YyjqBGG8Q34Kng5gqDmYrT
- GW-BASIC: https://youtube.com/watch?v=QMQJ7o8e-GI&list=PLjnbT4UISq0bMjb81xFBIWOLhBKFCVkuB
Websites:
---------------
- GitHub: https://github.com/JDoucette
- Blog: http://thefirstpixel.com
- Studio: http://xona.com