From b893b29d7be4fadb563187d2c6ed20865686aeff Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 6 Jun 2026 23:47:38 +0530 Subject: Add another viz --- README.md | 5 ++++- media/rave.gif | Bin 0 -> 1671479 bytes src/rave.sql | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 media/rave.gif create mode 100644 src/rave.sql diff --git a/README.md b/README.md index 95b047c..d80269a 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,10 @@ Generating some visuals with SQL because nobody stopped me. With the magic of [r

Wavey

- + +

Trigo - the blood dragon remix

+ + diff --git a/media/rave.gif b/media/rave.gif new file mode 100644 index 0000000..dfe2b29 Binary files /dev/null and b/media/rave.gif differ diff --git a/src/rave.sql b/src/rave.sql new file mode 100644 index 0000000..84cca9e --- /dev/null +++ b/src/rave.sql @@ -0,0 +1,32 @@ +INSERT OR REPLACE INTO videos (id, width, height, fps) VALUES ('rave', 400, 400, 10) RETURNING id; + +WITH RECURSIVE + video AS (SELECT * FROM videos WHERE id = 'rave'), + _frames(frame) AS ( + SELECT 1 UNION ALL + SELECT frame + 1 FROM _frames, video WHERE frame < 50 + ) +INSERT INTO images (id, width, height, frame, video_id) SELECT CONCAT('rave/', frame), width, height, frame, 'rave' FROM _frames, video; + +WITH RECURSIVE + video AS (SELECT * FROM videos WHERE id = 'rave'), + horizontal(x) AS (SELECT width FROM video UNION ALL SELECT x - 1 FROM horizontal WHERE x > 1), + vertical(y) AS (SELECT height FROM video UNION ALL SELECT y - 1 FROM vertical WHERE y > 1), + _frames(id, frame) AS (SELECT id, frame FROM images WHERE video_id = (SELECT id FROM video)), + _pixels(frame_id, x, y, r, g, b) AS + (SELECT + frames_id, + x, y, + ROUND(255 * value)*middle, + ROUND(20 * value), + ROUND(180 * value)*(NOT middle) + 75 + FROM (SELECT *, + _frames.id AS frames_id, + (CASE + WHEN SIN((x - 200.0)*(x - 200.0)*0.0004) + TAN((y - 200.0)*(y - 200.0)*0.0004) - 0.1 < COS((10.0 + frame)*(x - 200.0)/(y - 200.0)) THEN 1.0 + ELSE 0.0 + END) AS value, + (y > 140 AND y < 260) AS middle + FROM vertical, horizontal, _frames) + ) +INSERT INTO pixels (image_id, x, y, r, g, b) SELECT frame_id, x, y, r, g, b FROM _pixels; -- cgit v1.3.1