-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
47 lines (41 loc) · 1.9 KB
/
index.html
File metadata and controls
47 lines (41 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE html>
<!--
*****~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*****
Created by Jonas Kjeldmand Jensen
February 2026
"Hallucinatory Phantasmagoria"
A real-time generative shader experience rendered entirely on the GPU
via WebGL2. The fragment shader constructs an infinite, looping
abstract landscape by mapping screen-space coordinates into a
logarithmic-polar domain, then folding, distorting, and recolouring
the result with time-driven transformations. Colour is derived from
procedural hue functions and luminance-based tone mapping, producing
saturated, dreamlike forms that ripple and breathe across the screen.
The piece fills the full browser viewport and is designed to be viewed
full-screen. An optional live GLSL editor (toggle with Ctrl+L or the
controls in the top-right corner) lets you inspect and modify the
shader source in real time.
*****~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*****
-->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hallucinatory Phantasmagoria</title>
<link rel="stylesheet" href="src/styles/style.css">
</head>
<body>
<canvas id="canvas"></canvas>
<textarea id="codeEditor" class="editor" spellcheck="false" autocorrect="off" autocapitalize="off" translate="no" oninput="render()"></textarea>
<pre id="error"></pre>
<div id="indicator"></div>
<div id="controls">
<div class="controls">
<input id="btnToggleView" class="icon" type="checkbox" name="toggleView" onclick="toggleView()">
<input id="btnToggleResolution" class="icon" type="checkbox" name="toggleResolution" onchange="toggleResolution()">
<input id="btnReset" class="icon" type="checkbox" name="reset" onclick="reset()">
</div>
</div>
<script src="src/javascript/script.js"></script>
</body>
</html>