diff options
| author | Akshay Nair <phenax5@gmail.com> | 2026-06-06 16:15:14 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2026-06-06 16:43:29 +0530 |
| commit | 9fb9a94aa2d3bdb90f088f7188053374155a6715 (patch) | |
| tree | 49d1ccd866133b278a9b310e90277f0de5ee9075 /src | |
| parent | 9d178c66ef3b9f50c62d05c53f1dc772cc0f25fe (diff) | |
| download | sqlite-creative-coding-9fb9a94aa2d3bdb90f088f7188053374155a6715.tar.gz sqlite-creative-coding-9fb9a94aa2d3bdb90f088f7188053374155a6715.zip | |
Add video/gif generation + add wavey example
Diffstat (limited to 'src')
| -rw-r--r-- | src/wavey.sql | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/wavey.sql b/src/wavey.sql new file mode 100644 index 0000000..70da417 --- /dev/null +++ b/src/wavey.sql @@ -0,0 +1,33 @@ +INSERT OR REPLACE INTO videos (id, width, height, fps) VALUES ('wavey', 400, 400, 10) RETURNING id; + +WITH RECURSIVE + video AS (SELECT * FROM videos WHERE id = 'wavey'), + _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('wavey/', frame), width, height, frame, 'wavey' FROM _frames, video; + +WITH RECURSIVE + video AS (SELECT * FROM videos WHERE id = 'wavey'), + 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(100 * value), + ROUND(240 * value*value), + ROUND(255 * value) + FROM (SELECT *, + (CASE + WHEN SIN((x - 4.0*frame) / 20.0)*10.0 > y - 150 THEN 1.0 + WHEN SIN((x - 0.5*frame) / 20.0)*10.0 > y - 200 THEN 0.75 + WHEN SIN((x + 8.0*frame) / 20.0)*10.0 > y - 280 THEN 0.5 + ELSE 0.3 + END) AS value, + _frames.id AS frames_id + FROM vertical, horizontal, _frames) + ) +INSERT INTO pixels (image_id, x, y, r, g, b) SELECT frame_id, x, y, r, g, b FROM _pixels; |
