Joe-C-Wales commited on
Commit
748379a
·
verified ·
1 Parent(s): f913693

apply new UX

Browse files
Files changed (5) hide show
  1. api.html +349 -0
  2. index.html +200 -74
  3. quantum.html +169 -65
  4. synthesizer.html +285 -78
  5. visualization.html +236 -81
api.html ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>API Documentation - Quantum Music Synthesizer</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <style>
13
+ :root {
14
+ --quantum-purple: #6e45e2;
15
+ --quantum-teal: #88d3ce;
16
+ --quantum-pink: #ff2a6d;
17
+ --quantum-blue: #05d9e8;
18
+ --quantum-dark: #0c0f1f;
19
+ --quantum-darker: #080a1a;
20
+ }
21
+
22
+ .quantum-bg {
23
+ background: linear-gradient(135deg, var(--quantum-dark), var(--quantum-darker));
24
+ position: relative;
25
+ overflow: hidden;
26
+ }
27
+
28
+ .quantum-bg::before {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background:
36
+ radial-gradient(circle at 10% 20%, rgba(110, 69, 226, 0.1) 0%, transparent 20%),
37
+ radial-gradient(circle at 90% 80%, rgba(136, 211, 206, 0.1) 0%, transparent 20%),
38
+ radial-gradient(circle at 50% 50%, rgba(5, 217, 232, 0.05) 0%, transparent 30%);
39
+ z-index: 0;
40
+ }
41
+
42
+ .quantum-card {
43
+ background: rgba(255, 255, 255, 0.05);
44
+ backdrop-filter: blur(10px);
45
+ border: 1px solid rgba(255, 255, 255, 0.1);
46
+ border-radius: 16px;
47
+ transition: all 0.3s ease;
48
+ }
49
+
50
+ .quantum-card:hover {
51
+ transform: translateY(-5px);
52
+ box-shadow: 0 10px 30px rgba(110, 69, 226, 0.2);
53
+ border-color: rgba(110, 69, 226, 0.3);
54
+ }
55
+
56
+ .quantum-header {
57
+ background: rgba(12, 15, 31, 0.8);
58
+ backdrop-filter: blur(10px);
59
+ position: sticky;
60
+ top: 0;
61
+ z-index: 100;
62
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
63
+ }
64
+
65
+ .quantum-nav a {
66
+ position: relative;
67
+ padding: 8px 0;
68
+ }
69
+
70
+ .quantum-nav a::after {
71
+ content: '';
72
+ position: absolute;
73
+ bottom: 0;
74
+ left: 0;
75
+ width: 0;
76
+ height: 2px;
77
+ background: var(--quantum-blue);
78
+ transition: width 0.3s ease;
79
+ }
80
+
81
+ .quantum-nav a:hover::after {
82
+ width: 100%;
83
+ }
84
+
85
+ .endpoint-card {
86
+ background: rgba(26, 30, 45, 0.7);
87
+ border: 1px solid rgba(110, 69, 226, 0.2);
88
+ border-radius: 12px;
89
+ padding: 1.5rem;
90
+ margin-bottom: 1.5rem;
91
+ }
92
+
93
+ .method-badge {
94
+ display: inline-block;
95
+ padding: 0.25rem 0.75rem;
96
+ border-radius: 20px;
97
+ font-weight: bold;
98
+ font-size: 0.875rem;
99
+ }
100
+
101
+ .get { background: rgba(5, 217, 232, 0.2); color: #05d9e8; }
102
+ .post { background: rgba(110, 69, 226, 0.2); color: #6e45e2; }
103
+ .put { background: rgba(255, 42, 109, 0.2); color: #ff2a6d; }
104
+ .delete { background: rgba(255, 90, 90, 0.2); color: #ff5a5a; }
105
+
106
+ .param-table {
107
+ width: 100%;
108
+ border-collapse: collapse;
109
+ margin: 1rem 0;
110
+ }
111
+
112
+ .param-table th {
113
+ background: rgba(110, 69, 226, 0.1);
114
+ padding: 0.75rem;
115
+ text-align: left;
116
+ }
117
+
118
+ .param-table td {
119
+ padding: 0.75rem;
120
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
121
+ }
122
+
123
+ .code-block {
124
+ background: rgba(0, 0, 0, 0.3);
125
+ border-radius: 8px;
126
+ padding: 1rem;
127
+ font-family: monospace;
128
+ overflow-x: auto;
129
+ margin: 1rem 0;
130
+ }
131
+
132
+ .token {
133
+ display: inline-block;
134
+ padding: 0.125rem 0.25rem;
135
+ border-radius: 4px;
136
+ font-size: 0.875rem;
137
+ }
138
+
139
+ .token.required { background: rgba(255, 42, 109, 0.2); color: #ff2a6d; }
140
+ .token.optional { background: rgba(5, 217, 232, 0.2); color: #05d9e8; }
141
+ </style>
142
+ </head>
143
+ <body class="bg-gray-900 text-white min-h-screen">
144
+ <div class="quantum-bg min-h-screen">
145
+ <!-- Header -->
146
+ <header class="quantum-header container mx-auto py-4 px-4">
147
+ <div class="flex justify-between items-center">
148
+ <h1 class="text-3xl font-bold">Quantum Music Synthesizer</h1>
149
+ <nav class="quantum-nav">
150
+ <ul class="flex space-x-8">
151
+ <li><a href="index.html" class="hover:text-purple-300 font-medium">Home</a></li>
152
+ <li><a href="synthesizer.html" class="hover:text-purple-300 font-medium">Synthesizer</a></li>
153
+ <li><a href="quantum.html" class="hover:text-purple-300 font-medium">Quantum</a></li>
154
+ <li><a href="visualization.html" class="hover:text-purple-300 font-medium">Visualization</a></li>
155
+ <li><a href="about.html" class="hover:text-purple-300 font-medium">About</a></li>
156
+ <li><a href="api.html" class="hover:text-purple-300 font-medium">API</a></li>
157
+ </ul>
158
+ </nav>
159
+ </div>
160
+ </header>
161
+
162
+ <!-- API Documentation Section -->
163
+ <section class="container mx-auto py-16 px-4">
164
+ <h1 class="text-4xl font-bold text-center mb-4">API Documentation</h1>
165
+ <p class="text-xl text-center mb-12 text-gray-300">Integrate quantum music generation into your applications</p>
166
+
167
+ <div class="max-w-4xl mx-auto">
168
+ <div class="quantum-card p-8 mb-12">
169
+ <h2 class="text-2xl font-bold mb-4">Getting Started</h2>
170
+ <p class="mb-4">The Quantum Music API allows developers to integrate quantum-generated music into their applications. All endpoints require authentication with an API key.</p>
171
+
172
+ <div class="bg-gray-800 p-4 rounded-lg mt-6">
173
+ <h3 class="font-bold mb-2">Base URL</h3>
174
+ <div class="code-block">https://api.quantummusic.io/v1</div>
175
+ </div>
176
+
177
+ <div class="bg-gray-800 p-4 rounded-lg mt-6">
178
+ <h3 class="font-bold mb-2">Authentication</h3>
179
+ <p class="mb-2">Include your API key in the Authorization header:</p>
180
+ <div class="code-block">Authorization: Bearer YOUR_API_KEY</div>
181
+ </div>
182
+ </div>
183
+
184
+ <div class="mb-12">
185
+ <h2 class="text-3xl font-bold mb-6">Endpoints</h2>
186
+
187
+ <!-- Generate Music Endpoint -->
188
+ <div class="endpoint-card">
189
+ <div class="flex items-center justify-between mb-4">
190
+ <h3 class="text-xl font-bold">Generate Music</h3>
191
+ <span class="method-badge post">POST</span>
192
+ </div>
193
+ <div class="code-block mb-4">/music/generate</div>
194
+ <p class="mb-4">Generates a new piece of quantum music based on specified parameters.</p>
195
+
196
+ <h4 class="font-bold mb-2">Parameters</h4>
197
+ <table class="param-table mb-4">
198
+ <thead>
199
+ <tr>
200
+ <th>Name</th>
201
+ <th>Type</th>
202
+ <th>Required</th>
203
+ <th>Description</th>
204
+ </tr>
205
+ </thead>
206
+ <tbody>
207
+ <tr>
208
+ <td>mode</td>
209
+ <td>string</td>
210
+ <td><span class="token required">Required</span></td>
211
+ <td>Music mode (cinematic, ambient, electronic, classical)</td>
212
+ </tr>
213
+ <tr>
214
+ <td>complexity</td>
215
+ <td>number</td>
216
+ <td><span class="token required">Required</span></td>
217
+ <td>Complexity factor (0.0 - 1.0)</td>
218
+ </tr>
219
+ <tr>
220
+ <td>duration</td>
221
+ <td>integer</td>
222
+ <td><span class="token required">Required</span></td>
223
+ <td>Duration in seconds (5-60)</td>
224
+ </tr>
225
+ <tr>
226
+ <td>harmonic_richness</td>
227
+ <td>integer</td>
228
+ <td><span class="token optional">Optional</span></td>
229
+ <td>Harmonic richness level (0-100, default: 75)</td>
230
+ </tr>
231
+ </tbody>
232
+ </table>
233
+
234
+ <h4 class="font-bold mb-2">Response</h4>
235
+ <div class="code-block">
236
+ {<br>
237
+ &nbsp;&nbsp;"id": "qm_abc123xyz",<br>
238
+ &nbsp;&nbsp;"status": "processing",<br>
239
+ &nbsp;&nbsp;"estimated_completion": "2023-06-15T14:30:00Z"<br>
240
+ }
241
+ </div>
242
+ </div>
243
+
244
+ <!-- Get Music Status Endpoint -->
245
+ <div class="endpoint-card">
246
+ <div class="flex items-center justify-between mb-4">
247
+ <h3 class="text-xl font-bold">Get Music Status</h3>
248
+ <span class="method-badge get">GET</span>
249
+ </div>
250
+ <div class="code-block mb-4">/music/status/{id}</div>
251
+ <p class="mb-4">Retrieves the status of a music generation request.</p>
252
+
253
+ <h4 class="font-bold mb-2">Parameters</h4>
254
+ <table class="param-table mb-4">
255
+ <thead>
256
+ <tr>
257
+ <th>Name</th>
258
+ <th>Type</th>
259
+ <th>Required</th>
260
+ <th>Description</th>
261
+ </tr>
262
+ </thead>
263
+ <tbody>
264
+ <tr>
265
+ <td>id</td>
266
+ <td>string</td>
267
+ <td><span class="token required">Required</span></td>
268
+ <td>Music generation ID</td>
269
+ </tr>
270
+ </tbody>
271
+ </table>
272
+
273
+ <h4 class="font-bold mb-2">Response</h4>
274
+ <div class="code-block">
275
+ {<br>
276
+ &nbsp;&nbsp;"id": "qm_abc123xyz",<br>
277
+ &nbsp;&nbsp;"status": "completed",<br>
278
+ &nbsp;&nbsp;"download_url": "https://api.quantummusic.io/v1/music/download/qm_abc123xyz"<br>
279
+ }
280
+ </div>
281
+ </div>
282
+
283
+ <!-- Get Quantum Data Endpoint -->
284
+ <div class="endpoint-card">
285
+ <div class="flex items-center justify-between mb-4">
286
+ <h3 class="text-xl font-bold">Get Quantum Data</h3>
287
+ <span class="method-badge get">GET</span>
288
+ </div>
289
+ <div class="code-block mb-4">/quantum/data/{id}</div>
290
+ <p class="mb-4">Retrieves quantum state information for a generated piece.</p>
291
+
292
+ <h4 class="font-bold mb-2">Parameters</h4>
293
+ <table class="param-table mb-4">
294
+ <thead>
295
+ <tr>
296
+ <th>Name</th>
297
+ <th>Type</th>
298
+ <th>Required</th>
299
+ <th>Description</th>
300
+ </tr>
301
+ </thead>
302
+ <tbody>
303
+ <tr>
304
+ <td>id</td>
305
+ <td>string</td>
306
+ <td><span class="token required">Required</span></td>
307
+ <td>Music generation ID</td>
308
+ </tr>
309
+ </tbody>
310
+ </table>
311
+
312
+ <h4 class="font-bold mb-2">Response</h4>
313
+ <div class="code-block">
314
+ {<br>
315
+ &nbsp;&nbsp;"id": "qm_abc123xyz",<br>
316
+ &nbsp;&nbsp;"qubits": 4,<br>
317
+ &nbsp;&nbsp;"entanglement": "GHZ",<br>
318
+ &nbsp;&nbsp;"measurements": [<br>
319
+ &nbsp;&nbsp;&nbsp;&nbsp;{"basis": "X", "result": 0},<br>
320
+ &nbsp;&nbsp;&nbsp;&nbsp;{"basis": "Y", "result": 1}<br>
321
+ &nbsp;&nbsp;]<br>
322
+ }
323
+ </div>
324
+ </div>
325
+ </div>
326
+
327
+ <div class="quantum-card p-8">
328
+ <h2 class="text-2xl font-bold mb-4">Rate Limits</h2>
329
+ <p>The API has the following rate limits:</p>
330
+ <ul class="list-disc pl-6 mt-2 space-y-2">
331
+ <li>Free tier: 10 requests per minute</li>
332
+ <li>Pro tier: 100 requests per minute</li>
333
+ <li>Enterprise tier: 1000 requests per minute</li>
334
+ </ul>
335
+ <p class="mt-4">Exceeding these limits will result in a 429 (Too Many Requests) response.</p>
336
+ </div>
337
+ </div>
338
+ </section>
339
+
340
+ <!-- Footer -->
341
+ <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-800">
342
+ <p class="text-gray-400">Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
343
+ </footer>
344
+ </div>
345
+ <script>
346
+ feather.replace();
347
+ </script>
348
+ </body>
349
+ </html>
index.html CHANGED
@@ -10,83 +10,217 @@
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
 
 
 
 
 
 
 
 
 
13
  .quantum-bg {
14
- background: linear-gradient(135deg, #6e45e2, #88d3ce);
15
- background-size: 400% 400%;
16
- animation: gradient 15s ease infinite;
17
  }
18
- @keyframes gradient {
19
- 0% { background-position: 0% 50%; }
20
- 50% { background-position: 100% 50%; }
21
- 100% { background-position: 0% 50%; }
 
 
 
 
 
 
 
 
 
22
  }
23
- .pulse {
24
- animation: pulse 2s infinite;
 
 
 
 
 
25
  }
26
- @keyframes pulse {
27
- 0% { transform: scale(1); }
28
- 50% { transform: scale(1.05); }
29
- 100% { transform: scale(1); }
 
30
  }
31
- .hovered-element {
32
- transition: transform 0.3s ease, box-shadow 0.3s ease;
 
 
 
 
 
 
 
 
33
  }
34
- .hovered-element:hover {
35
- transform: translateY(-5px);
36
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
38
- .stylized-font {
39
- font-family: 'Arial Rounded MT Bold', 'Helvetica Rounded', Arial, sans-serif;
40
- letter-spacing: 1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
42
  </style>
43
  </head>
44
  <body class="bg-gray-900 text-white min-h-screen">
45
- <div class="quantum-bg min-h-screen hovered-element">
46
  <!-- Header -->
47
- <header class="container mx-auto py-6 px-4 hovered-element">
48
  <div class="flex justify-between items-center">
49
- <h1 class="text-3xl font-bold stylized-font">Quantum Music Synthesizer</h1>
50
- <nav>
51
- <ul class="flex space-x-6">
52
- <li><a href="index.html" class="hover:text-purple-300">Home</a></li>
53
- <li><a href="synthesizer.html" class="hover:text-purple-300">Synthesizer</a></li>
54
- <li><a href="quantum.html" class="hover:text-purple-300">Quantum</a></li>
55
- <li><a href="visualization.html" class="hover:text-purple-300">Visualization</a></li>
 
56
  </ul>
57
  </nav>
58
- </div>
59
  </header>
60
 
61
  <!-- Hero Section -->
62
- <section class="container mx-auto py-16 px-4 text-center hovered-element">
63
- <h2 class="text-5xl font-bold mb-6 stylized-font">Create Music with Quantum Computing</h2>
64
- <p class="text-xl mb-8 max-w-2xl mx-auto hovered-element">Harness the power of quantum entanglement to generate unique musical compositions</p>
65
- <div class="pulse inline-block">
66
- <button class="bg-purple-600 hover:bg-purple-700 text-white font-bold py-3 px-8 rounded-full text-lg transition duration-300">
67
  Start Synthesizing
68
  </button>
69
  </div>
70
  </section>
71
 
72
  <!-- Features Section -->
73
- <section class="container mx-auto py-16 px-4 hovered-element">
74
- <h3 class="text-3xl font-bold text-center mb-12 stylized-font">How It Works</h3>
75
  <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
76
- <div class="bg-gray-800 bg-opacity-50 p-6 rounded-lg hovered-element">
77
- <i data-feather="cpu" class="w-12 h-12 mb-4 text-purple-400"></i>
78
- <h4 class="text-xl font-bold mb-2 stylized-font">Quantum Circuits</h4>
79
- <p>Create complex musical patterns using quantum superposition and entanglement</p>
 
 
80
  </div>
81
- <div class="bg-gray-800 bg-opacity-50 p-6 rounded-lg hovered-element">
82
- <i data-feather="music" class="w-12 h-12 mb-4 text-purple-400"></i>
83
- <h4 class="text-xl font-bold mb-2 stylized-font">Sonic Sequences</h4>
84
- <p>Transform quantum measurements into rich, harmonic musical sequences</p>
 
 
85
  </div>
86
- <div class="bg-gray-800 bg-opacity-50 p-6 rounded-lg hovered-element">
87
- <i data-feather="zap" class="w-12 h-12 mb-4 text-purple-400"></i>
88
- <h4 class="text-xl font-bold mb-2 stylized-font">Real-time Synthesis</h4>
89
- <p>Generate and modify compositions in real-time with our quantum engine</p>
 
 
90
  </div>
91
  </div>
92
  </section>
@@ -94,40 +228,32 @@
94
  <!-- Stats Section -->
95
  <section class="container mx-auto py-16 px-4">
96
  <div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
97
- <div class="hovered-element">
98
- <div class="text-4xl font-bold text-purple-400">99.5%</div>
99
- <div>Fidelity Score</div>
100
  </div>
101
- <div class="hovered-element">
102
- <div class="text-4xl font-bold text-purple-400">1024</div>
103
- <div>Quantum Shots</div>
104
  </div>
105
- <div class="hovered-element">
106
- <div class="text-4xl font-bold text-purple-400">5</div>
107
- <div>Note Motifs</div>
108
  </div>
109
- <div class="hovered-element">
110
- <div class="text-4xl font-bold text-purple-400">∞</div>
111
- <div>Possibilities</div>
112
  </div>
113
  </div>
114
  </section>
115
 
116
  <!-- Footer -->
117
- <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-700">
118
- <p>Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
119
  </footer>
120
  </div>
121
- <script>
122
  feather.replace();
123
- anime({
124
- targets: '.pulse',
125
- scale: 1.05,
126
- duration: 1000,
127
- loop: true,
128
- direction: 'alternate',
129
- easing: 'easeInOutSine'
130
- });
131
  </script>
132
  </body>
133
- </html>
 
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
13
+ :root {
14
+ --quantum-purple: #6e45e2;
15
+ --quantum-teal: #88d3ce;
16
+ --quantum-pink: #ff2a6d;
17
+ --quantum-blue: #05d9e8;
18
+ --quantum-dark: #0c0f1f;
19
+ --quantum-darker: #080a1a;
20
+ }
21
+
22
  .quantum-bg {
23
+ background: linear-gradient(135deg, var(--quantum-dark), var(--quantum-darker));
24
+ position: relative;
25
+ overflow: hidden;
26
  }
27
+
28
+ .quantum-bg::before {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background:
36
+ radial-gradient(circle at 10% 20%, rgba(110, 69, 226, 0.1) 0%, transparent 20%),
37
+ radial-gradient(circle at 90% 80%, rgba(136, 211, 206, 0.1) 0%, transparent 20%),
38
+ radial-gradient(circle at 50% 50%, rgba(5, 217, 232, 0.05) 0%, transparent 30%);
39
+ z-index: 0;
40
  }
41
+
42
+ .quantum-card {
43
+ background: rgba(255, 255, 255, 0.05);
44
+ backdrop-filter: blur(10px);
45
+ border: 1px solid rgba(255, 255, 255, 0.1);
46
+ border-radius: 16px;
47
+ transition: all 0.3s ease;
48
  }
49
+
50
+ .quantum-card:hover {
51
+ transform: translateY(-5px);
52
+ box-shadow: 0 10px 30px rgba(110, 69, 226, 0.2);
53
+ border-color: rgba(110, 69, 226, 0.3);
54
  }
55
+
56
+ .quantum-btn {
57
+ background: linear-gradient(45deg, var(--quantum-purple), var(--quantum-teal));
58
+ border: none;
59
+ border-radius: 30px;
60
+ padding: 12px 30px;
61
+ font-weight: 600;
62
+ transition: all 0.3s ease;
63
+ position: relative;
64
+ overflow: hidden;
65
  }
66
+
67
+ .quantum-btn:hover {
68
+ transform: translateY(-3px);
69
+ box-shadow: 0 5px 20px rgba(110, 69, 226, 0.4);
70
+ }
71
+
72
+ .quantum-btn::after {
73
+ content: '';
74
+ position: absolute;
75
+ top: -50%;
76
+ left: -50%;
77
+ width: 200%;
78
+ height: 200%;
79
+ background: rgba(255, 255, 255, 0.1);
80
+ transform: rotate(30deg);
81
+ transition: all 0.6s ease;
82
+ }
83
+
84
+ .quantum-btn:hover::after {
85
+ transform: rotate(30deg) translate(20%, 20%);
86
+ }
87
+
88
+ .quantum-header {
89
+ background: rgba(12, 15, 31, 0.8);
90
+ backdrop-filter: blur(10px);
91
+ position: sticky;
92
+ top: 0;
93
+ z-index: 100;
94
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
95
+ }
96
+
97
+ .quantum-nav a {
98
+ position: relative;
99
+ padding: 8px 0;
100
+ }
101
+
102
+ .quantum-nav a::after {
103
+ content: '';
104
+ position: absolute;
105
+ bottom: 0;
106
+ left: 0;
107
+ width: 0;
108
+ height: 2px;
109
+ background: var(--quantum-blue);
110
+ transition: width 0.3s ease;
111
+ }
112
+
113
+ .quantum-nav a:hover::after {
114
+ width: 100%;
115
  }
116
+
117
+ .quantum-hero {
118
+ position: relative;
119
+ overflow: hidden;
120
+ border-radius: 20px;
121
+ margin-top: 2rem;
122
+ }
123
+
124
+ .quantum-hero::before {
125
+ content: '';
126
+ position: absolute;
127
+ top: -50%;
128
+ left: -50%;
129
+ width: 200%;
130
+ height: 200%;
131
+ background: linear-gradient(45deg, transparent, rgba(110, 69, 226, 0.1), transparent);
132
+ transform: rotate(30deg);
133
+ animation: shine 4s infinite;
134
+ }
135
+
136
+ @keyframes shine {
137
+ 0% { transform: rotate(30deg) translate(-20%, -20%); }
138
+ 100% { transform: rotate(30deg) translate(20%, 20%); }
139
+ }
140
+
141
+ .quantum-stat {
142
+ transition: all 0.3s ease;
143
+ }
144
+
145
+ .quantum-stat:hover {
146
+ transform: scale(1.05);
147
+ }
148
+
149
+ .quantum-stat-number {
150
+ font-size: 3rem;
151
+ font-weight: 700;
152
+ background: linear-gradient(45deg, var(--quantum-purple), var(--quantum-teal));
153
+ -webkit-background-clip: text;
154
+ -webkit-text-fill-color: transparent;
155
+ background-clip: text;
156
+ }
157
+
158
+ .quantum-icon {
159
+ width: 60px;
160
+ height: 60px;
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ border-radius: 16px;
165
+ margin: 0 auto 20px;
166
+ background: rgba(110, 69, 226, 0.1);
167
+ border: 1px solid rgba(110, 69, 226, 0.2);
168
  }
169
  </style>
170
  </head>
171
  <body class="bg-gray-900 text-white min-h-screen">
172
+ <div class="quantum-bg min-h-screen">
173
  <!-- Header -->
174
+ <header class="quantum-header container mx-auto py-4 px-4">
175
  <div class="flex justify-between items-center">
176
+ <h1 class="text-3xl font-bold">Quantum Music Synthesizer</h1>
177
+ <nav class="quantum-nav">
178
+ <ul class="flex space-x-8">
179
+ <li><a href="index.html" class="hover:text-purple-300 font-medium">Home</a></li>
180
+ <li><a href="synthesizer.html" class="hover:text-purple-300 font-medium">Synthesizer</a></li>
181
+ <li><a href="quantum.html" class="hover:text-purple-300 font-medium">Quantum</a></li>
182
+ <li><a href="visualization.html" class="hover:text-purple-300 font-medium">Visualization</a></li>
183
+ <li><a href="about.html" class="hover:text-purple-300 font-medium">About</a></li>
184
  </ul>
185
  </nav>
186
+ </div>
187
  </header>
188
 
189
  <!-- Hero Section -->
190
+ <section class="container mx-auto py-16 px-4">
191
+ <div class="quantum-hero quantum-card p-12 text-center">
192
+ <h2 class="text-5xl font-bold mb-6">Create Music with Quantum Computing</h2>
193
+ <p class="text-xl mb-8 max-w-2xl mx-auto">Harness the power of quantum entanglement to generate unique musical compositions</p>
194
+ <button class="quantum-btn text-white font-bold py-3 px-8 text-lg">
195
  Start Synthesizing
196
  </button>
197
  </div>
198
  </section>
199
 
200
  <!-- Features Section -->
201
+ <section class="container mx-auto py-16 px-4">
202
+ <h3 class="text-3xl font-bold text-center mb-12">How It Works</h3>
203
  <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
204
+ <div class="quantum-card p-8">
205
+ <div class="quantum-icon">
206
+ <i data-feather="cpu" class="w-8 h-8 text-purple-400"></i>
207
+ </div>
208
+ <h4 class="text-xl font-bold mb-4 text-center">Quantum Circuits</h4>
209
+ <p class="text-center">Create complex musical patterns using quantum superposition and entanglement</p>
210
  </div>
211
+ <div class="quantum-card p-8">
212
+ <div class="quantum-icon">
213
+ <i data-feather="music" class="w-8 h-8 text-teal-400"></i>
214
+ </div>
215
+ <h4 class="text-xl font-bold mb-4 text-center">Sonic Sequences</h4>
216
+ <p class="text-center">Transform quantum measurements into rich, harmonic musical sequences</p>
217
  </div>
218
+ <div class="quantum-card p-8">
219
+ <div class="quantum-icon">
220
+ <i data-feather="zap" class="w-8 h-8 text-blue-400"></i>
221
+ </div>
222
+ <h4 class="text-xl font-bold mb-4 text-center">Real-time Synthesis</h4>
223
+ <p class="text-center">Generate and modify compositions in real-time with our quantum engine</p>
224
  </div>
225
  </div>
226
  </section>
 
228
  <!-- Stats Section -->
229
  <section class="container mx-auto py-16 px-4">
230
  <div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
231
+ <div class="quantum-stat quantum-card p-6">
232
+ <div class="quantum-stat-number">99.5%</div>
233
+ <div class="text-gray-300">Fidelity Score</div>
234
  </div>
235
+ <div class="quantum-stat quantum-card p-6">
236
+ <div class="quantum-stat-number">1024</div>
237
+ <div class="text-gray-300">Quantum Shots</div>
238
  </div>
239
+ <div class="quantum-stat quantum-card p-6">
240
+ <div class="quantum-stat-number">5</div>
241
+ <div class="text-gray-300">Note Motifs</div>
242
  </div>
243
+ <div class="quantum-stat quantum-card p-6">
244
+ <div class="quantum-stat-number">∞</div>
245
+ <div class="text-gray-300">Possibilities</div>
246
  </div>
247
  </div>
248
  </section>
249
 
250
  <!-- Footer -->
251
+ <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-800">
252
+ <p class="text-gray-400">Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
253
  </footer>
254
  </div>
255
+ <script>
256
  feather.replace();
 
 
 
 
 
 
 
 
257
  </script>
258
  </body>
259
+ </html>
quantum.html CHANGED
@@ -10,139 +10,241 @@
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
 
 
 
 
 
 
 
 
 
13
  .quantum-bg {
14
- background: linear-gradient(135deg, #6e45e2, #88d3ce);
15
- background-size: 400% 400%;
16
- animation: gradient 15s ease infinite;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
- @keyframes gradient {
19
- 0% { background-position: 0% 50%; }
20
- 50% { background-position: 100% 50%; }
21
- 100% { background-position: 0% 50%; }
22
  }
 
23
  .circuit-board {
24
- background: #1a202c;
25
- border-radius: 8px;
26
  padding: 20px;
27
  min-height: 300px;
28
  position: relative;
29
  overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
 
31
  .circuit-line {
32
  position: absolute;
33
- height: 2px;
34
- background: #8b5cf6;
35
  transform-origin: left;
 
36
  }
 
37
  .quantum-gate {
38
  position: absolute;
39
  width: 50px;
40
  height: 50px;
41
- background: #8b5cf6;
42
  border-radius: 50%;
43
  display: flex;
44
  align-items: center;
45
  justify-content: center;
46
  font-weight: bold;
47
  color: white;
 
 
 
48
  }
49
- .hovered-element {
50
- transition: transform 0.3s ease, box-shadow 0.3s ease;
 
 
51
  }
52
- .hovered-element:hover {
53
- transform: translateY(-5px);
54
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
55
  }
56
- .stylized-font {
57
- font-family: 'Arial Rounded MT Bold', 'Helvetica Rounded', Arial, sans-serif;
58
- letter-spacing: 1px;
 
 
 
 
 
 
 
 
 
59
  }
60
  </style>
61
  </head>
62
  <body class="bg-gray-900 text-white min-h-screen">
63
- <div class="quantum-bg min-h-screen hovered-element">
64
  <!-- Header -->
65
- <header class="container mx-auto py-6 px-4 hovered-element">
66
  <div class="flex justify-between items-center">
67
- <h1 class="text-3xl font-bold stylized-font">Quantum Music Synthesizer</h1>
68
- <nav>
69
- <ul class="flex space-x-6">
70
- <li><a href="index.html" class="hover:text-purple-300">Home</a></li>
71
- <li><a href="synthesizer.html" class="hover:text-purple-300">Synthesizer</a></li>
72
- <li><a href="quantum.html" class="hover:text-purple-300">Quantum</a></li>
73
- <li><a href="visualization.html" class="hover:text-purple-300">Visualization</a></li>
 
74
  </ul>
75
  </nav>
76
- </div>
77
  </header>
78
 
79
  <!-- Quantum Operations Section -->
80
- <section class="container mx-auto py-16 px-4 hovered-element">
81
- <h2 class="text-4xl font-bold text-center mb-12 stylized-font">Quantum Operations</h2>
82
 
83
- <div class="max-w-4xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-8">
84
- <div class="bg-gray-800 bg-opacity-50 rounded-xl p-8 hovered-element">
85
- <h3 class="text-2xl font-bold mb-4 stylized-font">Quantum Circuit</h3>
86
  <div class="circuit-board">
 
87
  <!-- Circuit visualization will be animated here -->
88
- <div class="circuit-line" style="top: 50px; left: 50px; width: 200px;"></div>
89
- <div class="circuit-line" style="top: 100px; left: 50px; width: 200px;"></div>
90
- <div class="circuit-line" style="top: 150px; left: 50px; width: 200px;"></div>
 
91
 
92
- <div class="quantum-gate" style="top: 35px; left: 100px;">H</div>
93
- <div class="quantum-gate" style="top: 85px; left: 150px;">X</div>
94
- <div class="quantum-gate" style="top: 135px; left: 200px;">Z</div>
 
95
  </div>
96
  </div>
97
 
98
- <div class="space-y-8">
99
- <div class="bg-gray-800 bg-opacity-50 rounded-xl p-6 hovered-element">
100
- <h3 class="text-xl font-bold mb-2 stylized-font">Superposition</h3>
101
  <p>Quantum bits exist in multiple states simultaneously, creating rich harmonic possibilities.</p>
102
  </div>
103
 
104
- <div class="bg-gray-800 bg-opacity-50 rounded-xl p-6 hovered-element">
105
- <h3 class="text-xl font-bold mb-2 stylized-font">Entanglement</h3>
106
  <p>Correlated quantum states produce complex musical relationships and patterns.</p>
107
  </div>
108
 
109
- <div class="bg-gray-800 bg-opacity-50 rounded-xl p-6 hovered-element">
110
- <h3 class="text-xl font-bold mb-2 stylized-font">Measurement</h3>
111
  <p>Collapsing quantum states into musical notes through probabilistic outcomes.</p>
112
  </div>
 
 
 
 
 
113
  </div>
114
  </div>
115
 
116
- <div class="max-w-4xl mx-auto mt-16 bg-gray-800 bg-opacity-50 rounded-xl p-8 hovered-element">
117
- <h3 class="text-2xl font-bold mb-4 stylized-font">Quantum Parameters</h3>
118
  <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
119
- <div class="text-center hovered-element">
120
- <div class="text-4xl font-bold text-purple-400 mb-2">99.5%</div>
121
- <div>Adiabatic Success</div>
122
  </div>
123
- <div class="text-center hovered-element">
124
- <div class="text-4xl font-bold text-purple-400 mb-2">Φ+</div>
125
- <div>Bell State</div>
126
  </div>
127
- <div class="text-center hovered-element">
128
- <div class="text-4xl font-bold text-purple-400 mb-2">GHZ</div>
129
- <div>4-Qubit Entanglement</div>
130
  </div>
131
  </div>
132
  </div>
133
  </section>
134
 
135
  <!-- Footer -->
136
- <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-700">
137
- <p>Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
138
  </footer>
139
  </div>
140
- <script>
141
  feather.replace();
142
  // Animate circuit lines
143
  anime({
144
  targets: '.circuit-line',
145
- width: [0, 200],
146
  delay: anime.stagger(200),
147
  duration: 1000,
148
  easing: 'easeInOutQuad'
@@ -154,8 +256,10 @@
154
  scale: [0, 1],
155
  delay: anime.stagger(300, {start: 500}),
156
  duration: 800,
157
- elasticity: 600
 
 
158
  });
159
  </script>
160
  </body>
161
- </html>
 
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
13
+ :root {
14
+ --quantum-purple: #6e45e2;
15
+ --quantum-teal: #88d3ce;
16
+ --quantum-pink: #ff2a6d;
17
+ --quantum-blue: #05d9e8;
18
+ --quantum-dark: #0c0f1f;
19
+ --quantum-darker: #080a1a;
20
+ }
21
+
22
  .quantum-bg {
23
+ background: linear-gradient(135deg, var(--quantum-dark), var(--quantum-darker));
24
+ position: relative;
25
+ overflow: hidden;
26
+ }
27
+
28
+ .quantum-bg::before {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background:
36
+ radial-gradient(circle at 10% 20%, rgba(110, 69, 226, 0.1) 0%, transparent 20%),
37
+ radial-gradient(circle at 90% 80%, rgba(136, 211, 206, 0.1) 0%, transparent 20%),
38
+ radial-gradient(circle at 50% 50%, rgba(5, 217, 232, 0.05) 0%, transparent 30%);
39
+ z-index: 0;
40
+ }
41
+
42
+ .quantum-card {
43
+ background: rgba(255, 255, 255, 0.05);
44
+ backdrop-filter: blur(10px);
45
+ border: 1px solid rgba(255, 255, 255, 0.1);
46
+ border-radius: 16px;
47
+ transition: all 0.3s ease;
48
+ }
49
+
50
+ .quantum-card:hover {
51
+ transform: translateY(-5px);
52
+ box-shadow: 0 10px 30px rgba(110, 69, 226, 0.2);
53
+ border-color: rgba(110, 69, 226, 0.3);
54
+ }
55
+
56
+ .quantum-header {
57
+ background: rgba(12, 15, 31, 0.8);
58
+ backdrop-filter: blur(10px);
59
+ position: sticky;
60
+ top: 0;
61
+ z-index: 100;
62
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
63
+ }
64
+
65
+ .quantum-nav a {
66
+ position: relative;
67
+ padding: 8px 0;
68
+ }
69
+
70
+ .quantum-nav a::after {
71
+ content: '';
72
+ position: absolute;
73
+ bottom: 0;
74
+ left: 0;
75
+ width: 0;
76
+ height: 2px;
77
+ background: var(--quantum-blue);
78
+ transition: width 0.3s ease;
79
  }
80
+
81
+ .quantum-nav a:hover::after {
82
+ width: 100%;
 
83
  }
84
+
85
  .circuit-board {
86
+ background: rgba(10, 12, 25, 0.7);
87
+ border-radius: 12px;
88
  padding: 20px;
89
  min-height: 300px;
90
  position: relative;
91
  overflow: hidden;
92
+ border: 1px solid rgba(110, 69, 226, 0.2);
93
+ }
94
+
95
+ .circuit-grid {
96
+ position: absolute;
97
+ top: 0;
98
+ left: 0;
99
+ width: 100%;
100
+ height: 100%;
101
+ background:
102
+ linear-gradient(rgba(110, 69, 226, 0.1) 1px, transparent 1px),
103
+ linear-gradient(90deg, rgba(110, 69, 226, 0.1) 1px, transparent 1px);
104
+ background-size: 20px 20px;
105
+ opacity: 0.3;
106
  }
107
+
108
  .circuit-line {
109
  position: absolute;
110
+ height: 3px;
111
+ background: linear-gradient(90deg, var(--quantum-purple), var(--quantum-teal));
112
  transform-origin: left;
113
+ border-radius: 2px;
114
  }
115
+
116
  .quantum-gate {
117
  position: absolute;
118
  width: 50px;
119
  height: 50px;
120
+ background: linear-gradient(135deg, var(--quantum-purple), var(--quantum-teal));
121
  border-radius: 50%;
122
  display: flex;
123
  align-items: center;
124
  justify-content: center;
125
  font-weight: bold;
126
  color: white;
127
+ box-shadow: 0 0 15px rgba(110, 69, 226, 0.5);
128
+ border: 2px solid rgba(255, 255, 255, 0.1);
129
+ transition: all 0.3s ease;
130
  }
131
+
132
+ .quantum-gate:hover {
133
+ transform: scale(1.1);
134
+ box-shadow: 0 0 20px rgba(110, 69, 226, 0.8);
135
  }
136
+
137
+ .quantum-param {
138
+ transition: all 0.3s ease;
139
  }
140
+
141
+ .quantum-param:hover {
142
+ transform: scale(1.05);
143
+ }
144
+
145
+ .quantum-param-number {
146
+ font-size: 2.5rem;
147
+ font-weight: 700;
148
+ background: linear-gradient(45deg, var(--quantum-purple), var(--quantum-teal));
149
+ -webkit-background-clip: text;
150
+ -webkit-text-fill-color: transparent;
151
+ background-clip: text;
152
  }
153
  </style>
154
  </head>
155
  <body class="bg-gray-900 text-white min-h-screen">
156
+ <div class="quantum-bg min-h-screen">
157
  <!-- Header -->
158
+ <header class="quantum-header container mx-auto py-4 px-4">
159
  <div class="flex justify-between items-center">
160
+ <h1 class="text-3xl font-bold">Quantum Music Synthesizer</h1>
161
+ <nav class="quantum-nav">
162
+ <ul class="flex space-x-8">
163
+ <li><a href="index.html" class="hover:text-purple-300 font-medium">Home</a></li>
164
+ <li><a href="synthesizer.html" class="hover:text-purple-300 font-medium">Synthesizer</a></li>
165
+ <li><a href="quantum.html" class="hover:text-purple-300 font-medium">Quantum</a></li>
166
+ <li><a href="visualization.html" class="hover:text-purple-300 font-medium">Visualization</a></li>
167
+ <li><a href="about.html" class="hover:text-purple-300 font-medium">About</a></li>
168
  </ul>
169
  </nav>
170
+ </div>
171
  </header>
172
 
173
  <!-- Quantum Operations Section -->
174
+ <section class="container mx-auto py-16 px-4">
175
+ <h2 class="text-4xl font-bold text-center mb-12">Quantum Operations</h2>
176
 
177
+ <div class="max-w-6xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-8">
178
+ <div class="quantum-card p-8">
179
+ <h3 class="text-2xl font-bold mb-6 text-center">Quantum Circuit</h3>
180
  <div class="circuit-board">
181
+ <div class="circuit-grid"></div>
182
  <!-- Circuit visualization will be animated here -->
183
+ <div class="circuit-line" style="top: 60px; left: 50px; width: 250px;"></div>
184
+ <div class="circuit-line" style="top: 120px; left: 50px; width: 250px;"></div>
185
+ <div class="circuit-line" style="top: 180px; left: 50px; width: 250px;"></div>
186
+ <div class="circuit-line" style="top: 240px; left: 50px; width: 250px;"></div>
187
 
188
+ <div class="quantum-gate" style="top: 45px; left: 100px;">H</div>
189
+ <div class="quantum-gate" style="top: 105px; left: 150px;">X</div>
190
+ <div class="quantum-gate" style="top: 165px; left: 200px;">Z</div>
191
+ <div class="quantum-gate" style="top: 225px; left: 250px;">CNOT</div>
192
  </div>
193
  </div>
194
 
195
+ <div class="space-y-6">
196
+ <div class="quantum-card p-6">
197
+ <h3 class="text-xl font-bold mb-3">Superposition</h3>
198
  <p>Quantum bits exist in multiple states simultaneously, creating rich harmonic possibilities.</p>
199
  </div>
200
 
201
+ <div class="quantum-card p-6">
202
+ <h3 class="text-xl font-bold mb-3">Entanglement</h3>
203
  <p>Correlated quantum states produce complex musical relationships and patterns.</p>
204
  </div>
205
 
206
+ <div class="quantum-card p-6">
207
+ <h3 class="text-xl font-bold mb-3">Measurement</h3>
208
  <p>Collapsing quantum states into musical notes through probabilistic outcomes.</p>
209
  </div>
210
+
211
+ <div class="quantum-card p-6">
212
+ <h3 class="text-xl font-bold mb-3">Interference</h3>
213
+ <p>Constructive and destructive interference creates dynamic musical textures.</p>
214
+ </div>
215
  </div>
216
  </div>
217
 
218
+ <div class="max-w-6xl mx-auto mt-16 quantum-card p-8">
219
+ <h3 class="text-2xl font-bold mb-6 text-center">Quantum Parameters</h3>
220
  <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
221
+ <div class="quantum-param quantum-card p-6 text-center">
222
+ <div class="quantum-param-number">99.5%</div>
223
+ <div class="text-gray-300">Adiabatic Success</div>
224
  </div>
225
+ <div class="quantum-param quantum-card p-6 text-center">
226
+ <div class="quantum-param-number">Φ+</div>
227
+ <div class="text-gray-300">Bell State</div>
228
  </div>
229
+ <div class="quantum-param quantum-card p-6 text-center">
230
+ <div class="quantum-param-number">GHZ</div>
231
+ <div class="text-gray-300">4-Qubit Entanglement</div>
232
  </div>
233
  </div>
234
  </div>
235
  </section>
236
 
237
  <!-- Footer -->
238
+ <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-800">
239
+ <p class="text-gray-400">Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
240
  </footer>
241
  </div>
242
+ <script>
243
  feather.replace();
244
  // Animate circuit lines
245
  anime({
246
  targets: '.circuit-line',
247
+ width: [0, 250],
248
  delay: anime.stagger(200),
249
  duration: 1000,
250
  easing: 'easeInOutQuad'
 
256
  scale: [0, 1],
257
  delay: anime.stagger(300, {start: 500}),
258
  duration: 800,
259
+ elasticity: 600,
260
+ loop: true,
261
+ direction: 'alternate'
262
  });
263
  </script>
264
  </body>
265
+ </html>
synthesizer.html CHANGED
@@ -10,129 +10,276 @@
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
 
 
 
 
 
 
 
 
 
13
  .quantum-bg {
14
- background: linear-gradient(135deg, #6e45e2, #88d3ce);
15
- background-size: 400% 400%;
16
- animation: gradient 15s ease infinite;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
- @keyframes gradient {
19
- 0% { background-position: 0% 50%; }
20
- 50% { background-position: 100% 50%; }
21
- 100% { background-position: 0% 50%; }
 
 
 
22
  }
23
- .waveform {
24
- height: 200px;
25
- background: rgba(0,0,0,0.3);
26
- border-radius: 8px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  position: relative;
28
  overflow: hidden;
 
29
  }
30
- .wave {
 
31
  position: absolute;
32
  bottom: 0;
33
  left: 0;
34
  width: 100%;
35
  height: 100%;
36
- background: linear-gradient(transparent 50%, rgba(139, 92, 246, 0.5) 50%);
37
- background-size: 50px 100px;
38
  }
39
- .hovered-element {
40
- transition: transform 0.3s ease, box-shadow 0.3s ease;
 
41
  }
42
- .hovered-element:hover {
43
- transform: translateY(-5px);
44
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
- .stylized-font {
47
- font-family: 'Arial Rounded MT Bold', 'Helvetica Rounded', Arial, sans-serif;
48
- letter-spacing: 1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
  </style>
51
  </head>
52
  <body class="bg-gray-900 text-white min-h-screen">
53
- <div class="quantum-bg min-h-screen hovered-element">
54
  <!-- Header -->
55
- <header class="container mx-auto py-6 px-4 hovered-element">
56
  <div class="flex justify-between items-center">
57
- <h1 class="text-3xl font-bold stylized-font">Quantum Music Synthesizer</h1>
58
- <nav>
59
- <ul class="flex space-x-6">
60
- <li><a href="index.html" class="hover:text-purple-300">Home</a></li>
61
- <li><a href="synthesizer.html" class="hover:text-purple-300">Synthesizer</a></li>
62
- <li><a href="quantum.html" class="hover:text-purple-300">Quantum</a></li>
63
- <li><a href="visualization.html" class="hover:text-purple-300">Visualization</a></li>
 
64
  </ul>
65
  </nav>
66
- </div>
67
  </header>
68
 
69
  <!-- Synthesizer Section -->
70
- <section class="container mx-auto py-16 px-4 hovered-element">
71
- <h2 class="text-4xl font-bold text-center mb-12 stylized-font">Quantum Synthesizer</h2>
72
 
73
- <div class="max-w-4xl mx-auto bg-gray-800 bg-opacity-50 rounded-xl p-8 hovered-element">
74
- <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
75
- <div class="hovered-element">
76
- <h3 class="text-2xl font-bold mb-4 stylized-font">Parameters</h3>
77
  <div class="space-y-6">
78
- <div>
79
- <label class="block mb-2">Mode</label>
80
- <select class="w-full bg-gray-700 rounded p-2">
81
  <option>Cinematic</option>
82
  <option>Ambient</option>
83
  <option>Electronic</option>
84
  <option>Classical</option>
 
85
  </select>
86
  </div>
87
- <div>
88
- <label class="block mb-2">Complexity Factor</label>
89
- <input type="range" min="0" max="1" step="0.01" value="0.5" class="w-full">
90
- <div class="flex justify-between text-sm">
 
91
  <span>Simple</span>
92
  <span>Complex</span>
93
  </div>
94
  </div>
95
- <div>
96
- <label class="block mb-2">Duration (seconds)</label>
97
- <input type="range" min="5" max="60" step="5" value="20" class="w-full">
98
- <div class="flex justify-between text-sm">
 
99
  <span>5s</span>
100
  <span>60s</span>
101
  </div>
102
  </div>
 
 
 
 
 
 
 
 
 
103
  </div>
104
- <button class="mt-8 bg-purple-600 hover:bg-purple-700 text-white font-bold py-3 px-6 rounded-full w-full transition duration-300">
105
  Generate Quantum Sequence
106
  </button>
107
  </div>
108
- <div class="hovered-element">
109
- <h3 class="text-2xl font-bold mb-4 stylized-font">Waveform</h3>
110
- <div class="waveform">
111
- <div class="wave"></div>
 
112
  </div>
113
- <div class="mt-4 flex justify-center space-x-4">
114
- <button class="bg-green-600 hover:bg-green-700 text-white p-3 rounded-full">
115
  <i data-feather="play"></i>
116
  </button>
117
- <button class="bg-yellow-600 hover:bg-yellow-700 text-white p-3 rounded-full">
118
  <i data-feather="pause"></i>
119
  </button>
120
- <button class="bg-red-600 hover:bg-red-700 text-white p-3 rounded-full">
121
  <i data-feather="stop"></i>
122
  </button>
 
 
 
123
  </div>
124
  </div>
125
  </div>
126
 
127
- <div class="mt-12 hovered-element">
128
- <h3 class="text-2xl font-bold mb-4 stylized-font">Generated Sequence</h3>
129
- <div class="bg-gray-900 rounded-lg p-4">
130
- <div class="flex flex-wrap gap-2">
131
- <div class="bg-purple-900 px-3 py-1 rounded">440.0 Hz</div>
132
- <div class="bg-purple-900 px-3 py-1 rounded">523.25 Hz</div>
133
- <div class="bg-purple-900 px-3 py-1 rounded">659.25 Hz</div>
134
- <div class="bg-purple-900 px-3 py-1 rounded">440.0 Hz</div>
135
- <div class="bg-purple-900 px-3 py-1 rounded">523.25 Hz</div>
 
 
 
136
  </div>
137
  </div>
138
  </div>
@@ -140,19 +287,79 @@
140
  </section>
141
 
142
  <!-- Footer -->
143
- <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-700">
144
- <p>Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
145
  </footer>
146
  </div>
147
- <script>
148
  feather.replace();
149
- anime({
150
- targets: '.wave',
151
- backgroundPositionX: '50px',
152
- duration: 1000,
153
- loop: true,
154
- easing: 'linear'
155
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  </script>
157
  </body>
158
- </html>
 
10
  <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script>
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <style>
13
+ :root {
14
+ --quantum-purple: #6e45e2;
15
+ --quantum-teal: #88d3ce;
16
+ --quantum-pink: #ff2a6d;
17
+ --quantum-blue: #05d9e8;
18
+ --quantum-dark: #0c0f1f;
19
+ --quantum-darker: #080a1a;
20
+ }
21
+
22
  .quantum-bg {
23
+ background: linear-gradient(135deg, var(--quantum-dark), var(--quantum-darker));
24
+ position: relative;
25
+ overflow: hidden;
26
+ }
27
+
28
+ .quantum-bg::before {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background:
36
+ radial-gradient(circle at 10% 20%, rgba(110, 69, 226, 0.1) 0%, transparent 20%),
37
+ radial-gradient(circle at 90% 80%, rgba(136, 211, 206, 0.1) 0%, transparent 20%),
38
+ radial-gradient(circle at 50% 50%, rgba(5, 217, 232, 0.05) 0%, transparent 30%);
39
+ z-index: 0;
40
  }
41
+
42
+ .quantum-card {
43
+ background: rgba(255, 255, 255, 0.05);
44
+ backdrop-filter: blur(10px);
45
+ border: 1px solid rgba(255, 255, 255, 0.1);
46
+ border-radius: 16px;
47
+ transition: all 0.3s ease;
48
  }
49
+
50
+ .quantum-card:hover {
51
+ transform: translateY(-5px);
52
+ box-shadow: 0 10px 30px rgba(110, 69, 226, 0.2);
53
+ border-color: rgba(110, 69, 226, 0.3);
54
+ }
55
+
56
+ .quantum-header {
57
+ background: rgba(12, 15, 31, 0.8);
58
+ backdrop-filter: blur(10px);
59
+ position: sticky;
60
+ top: 0;
61
+ z-index: 100;
62
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
63
+ }
64
+
65
+ .quantum-nav a {
66
+ position: relative;
67
+ padding: 8px 0;
68
+ }
69
+
70
+ .quantum-nav a::after {
71
+ content: '';
72
+ position: absolute;
73
+ bottom: 0;
74
+ left: 0;
75
+ width: 0;
76
+ height: 2px;
77
+ background: var(--quantum-blue);
78
+ transition: width 0.3s ease;
79
+ }
80
+
81
+ .quantum-nav a:hover::after {
82
+ width: 100%;
83
+ }
84
+
85
+ .waveform-container {
86
+ height: 250px;
87
+ background: rgba(10, 12, 25, 0.7);
88
+ border-radius: 12px;
89
  position: relative;
90
  overflow: hidden;
91
+ border: 1px solid rgba(110, 69, 226, 0.2);
92
  }
93
+
94
+ .waveform {
95
  position: absolute;
96
  bottom: 0;
97
  left: 0;
98
  width: 100%;
99
  height: 100%;
 
 
100
  }
101
+
102
+ .control-group {
103
+ margin-bottom: 1.5rem;
104
  }
105
+
106
+ .control-label {
107
+ display: block;
108
+ margin-bottom: 0.5rem;
109
+ font-weight: 500;
110
+ }
111
+
112
+ .slider {
113
+ width: 100%;
114
+ height: 6px;
115
+ background: rgba(255, 255, 255, 0.1);
116
+ border-radius: 3px;
117
+ outline: none;
118
+ -webkit-appearance: none;
119
  }
120
+
121
+ .slider::-webkit-slider-thumb {
122
+ -webkit-appearance: none;
123
+ width: 18px;
124
+ height: 18px;
125
+ border-radius: 50%;
126
+ background: var(--quantum-purple);
127
+ cursor: pointer;
128
+ box-shadow: 0 0 10px rgba(110, 69, 226, 0.5);
129
+ }
130
+
131
+ .quantum-btn {
132
+ background: linear-gradient(45deg, var(--quantum-purple), var(--quantum-teal));
133
+ border: none;
134
+ border-radius: 30px;
135
+ padding: 12px 20px;
136
+ font-weight: 600;
137
+ transition: all 0.3s ease;
138
+ width: 100%;
139
+ color: white;
140
+ }
141
+
142
+ .quantum-btn:hover {
143
+ transform: translateY(-3px);
144
+ box-shadow: 0 5px 20px rgba(110, 69, 226, 0.4);
145
+ }
146
+
147
+ .control-btn {
148
+ width: 50px;
149
+ height: 50px;
150
+ border-radius: 50%;
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ background: rgba(110, 69, 226, 0.2);
155
+ border: 1px solid rgba(110, 69, 226, 0.3);
156
+ color: white;
157
+ transition: all 0.3s ease;
158
+ }
159
+
160
+ .control-btn:hover {
161
+ background: rgba(110, 69, 226, 0.4);
162
+ transform: scale(1.1);
163
+ }
164
+
165
+ .sequence-item {
166
+ background: rgba(110, 69, 226, 0.2);
167
+ border: 1px solid rgba(110, 69, 226, 0.3);
168
+ border-radius: 8px;
169
+ padding: 8px 16px;
170
+ transition: all 0.3s ease;
171
+ }
172
+
173
+ .sequence-item:hover {
174
+ background: rgba(110, 69, 226, 0.3);
175
+ transform: translateY(-2px);
176
  }
177
  </style>
178
  </head>
179
  <body class="bg-gray-900 text-white min-h-screen">
180
+ <div class="quantum-bg min-h-screen">
181
  <!-- Header -->
182
+ <header class="quantum-header container mx-auto py-4 px-4">
183
  <div class="flex justify-between items-center">
184
+ <h1 class="text-3xl font-bold">Quantum Music Synthesizer</h1>
185
+ <nav class="quantum-nav">
186
+ <ul class="flex space-x-8">
187
+ <li><a href="index.html" class="hover:text-purple-300 font-medium">Home</a></li>
188
+ <li><a href="synthesizer.html" class="hover:text-purple-300 font-medium">Synthesizer</a></li>
189
+ <li><a href="quantum.html" class="hover:text-purple-300 font-medium">Quantum</a></li>
190
+ <li><a href="visualization.html" class="hover:text-purple-300 font-medium">Visualization</a></li>
191
+ <li><a href="about.html" class="hover:text-purple-300 font-medium">About</a></li>
192
  </ul>
193
  </nav>
194
+ </div>
195
  </header>
196
 
197
  <!-- Synthesizer Section -->
198
+ <section class="container mx-auto py-16 px-4">
199
+ <h2 class="text-4xl font-bold text-center mb-12">Quantum Synthesizer</h2>
200
 
201
+ <div class="max-w-6xl mx-auto quantum-card p-8">
202
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
203
+ <div>
204
+ <h3 class="text-2xl font-bold mb-6">Parameters</h3>
205
  <div class="space-y-6">
206
+ <div class="control-group">
207
+ <label class="control-label">Mode</label>
208
+ <select class="w-full bg-gray-800 rounded-lg p-3 border border-gray-700 focus:border-purple-500 focus:outline-none">
209
  <option>Cinematic</option>
210
  <option>Ambient</option>
211
  <option>Electronic</option>
212
  <option>Classical</option>
213
+ <option>Experimental</option>
214
  </select>
215
  </div>
216
+
217
+ <div class="control-group">
218
+ <label class="control-label">Complexity Factor</label>
219
+ <input type="range" min="0" max="1" step="0.01" value="0.5" class="slider">
220
+ <div class="flex justify-between text-sm mt-2">
221
  <span>Simple</span>
222
  <span>Complex</span>
223
  </div>
224
  </div>
225
+
226
+ <div class="control-group">
227
+ <label class="control-label">Duration (seconds)</label>
228
+ <input type="range" min="5" max="60" step="5" value="20" class="slider">
229
+ <div class="flex justify-between text-sm mt-2">
230
  <span>5s</span>
231
  <span>60s</span>
232
  </div>
233
  </div>
234
+
235
+ <div class="control-group">
236
+ <label class="control-label">Harmonic Richness</label>
237
+ <input type="range" min="0" max="100" step="1" value="75" class="slider">
238
+ <div class="flex justify-between text-sm mt-2">
239
+ <span>Minimal</span>
240
+ <span>Rich</span>
241
+ </div>
242
+ </div>
243
  </div>
244
+ <button class="mt-8 quantum-btn">
245
  Generate Quantum Sequence
246
  </button>
247
  </div>
248
+
249
+ <div>
250
+ <h3 class="text-2xl font-bold mb-6">Waveform</h3>
251
+ <div class="waveform-container">
252
+ <div class="waveform" id="waveform"></div>
253
  </div>
254
+ <div class="mt-6 flex justify-center space-x-6">
255
+ <button class="control-btn">
256
  <i data-feather="play"></i>
257
  </button>
258
+ <button class="control-btn">
259
  <i data-feather="pause"></i>
260
  </button>
261
+ <button class="control-btn">
262
  <i data-feather="stop"></i>
263
  </button>
264
+ <button class="control-btn">
265
+ <i data-feather="rotate-ccw"></i>
266
+ </button>
267
  </div>
268
  </div>
269
  </div>
270
 
271
+ <div class="mt-12">
272
+ <h3 class="text-2xl font-bold mb-6">Generated Sequence</h3>
273
+ <div class="bg-gray-800/50 rounded-xl p-6">
274
+ <div class="flex flex-wrap gap-3">
275
+ <div class="sequence-item">440.0 Hz</div>
276
+ <div class="sequence-item">523.25 Hz</div>
277
+ <div class="sequence-item">659.25 Hz</div>
278
+ <div class="sequence-item">440.0 Hz</div>
279
+ <div class="sequence-item">523.25 Hz</div>
280
+ <div class="sequence-item">783.99 Hz</div>
281
+ <div class="sequence-item">523.25 Hz</div>
282
+ <div class="sequence-item">440.0 Hz</div>
283
  </div>
284
  </div>
285
  </div>
 
287
  </section>
288
 
289
  <!-- Footer -->
290
+ <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-800">
291
+ <p class="text-gray-400">Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
292
  </footer>
293
  </div>
294
+ <script>
295
  feather.replace();
296
+
297
+ // Create waveform visualization
298
+ function createWaveform() {
299
+ const waveform = document.getElementById('waveform');
300
+ waveform.innerHTML = '';
301
+
302
+ // Create SVG for waveform
303
+ const svgNS = "http://www.w3.org/2000/svg";
304
+ const svg = document.createElementNS(svgNS, "svg");
305
+ svg.setAttribute("width", "100%");
306
+ svg.setAttribute("height", "100%");
307
+
308
+ // Create path for waveform
309
+ const path = document.createElementNS(svgNS, "path");
310
+ let d = "M 0 125 ";
311
+
312
+ for (let i = 0; i <= 100; i++) {
313
+ const x = i * 10;
314
+ const y = 125 + Math.sin(i * 0.2) * 50 + Math.sin(i * 0.5) * 30;
315
+ d += `L ${x} ${y} `;
316
+ }
317
+
318
+ path.setAttribute("d", d);
319
+ path.setAttribute("stroke", "url(#waveGradient)");
320
+ path.setAttribute("stroke-width", "2");
321
+ path.setAttribute("fill", "none");
322
+
323
+ // Create gradient
324
+ const defs = document.createElementNS(svgNS, "defs");
325
+ const gradient = document.createElementNS(svgNS, "linearGradient");
326
+ gradient.setAttribute("id", "waveGradient");
327
+ gradient.setAttribute("x1", "0%");
328
+ gradient.setAttribute("y1", "0%");
329
+ gradient.setAttribute("x2", "100%");
330
+ gradient.setAttribute("y2", "0%");
331
+
332
+ const stop1 = document.createElementNS(svgNS, "stop");
333
+ stop1.setAttribute("offset", "0%");
334
+ stop1.setAttribute("stop-color", "#6e45e2");
335
+
336
+ const stop2 = document.createElementNS(svgNS, "stop");
337
+ stop2.setAttribute("offset", "100%");
338
+ stop2.setAttribute("stop-color", "#88d3ce");
339
+
340
+ gradient.appendChild(stop1);
341
+ gradient.appendChild(stop2);
342
+ defs.appendChild(gradient);
343
+
344
+ svg.appendChild(defs);
345
+ svg.appendChild(path);
346
+ waveform.appendChild(svg);
347
+
348
+ // Animate waveform
349
+ anime({
350
+ targets: path,
351
+ d: [
352
+ {value: d},
353
+ {value: d.replace(/L (\d+) (\d+(\.\d+)?)/g, (match, x, y) => `L ${x} ${125 + Math.sin(x * 0.2 + 2) * 50 + Math.sin(x * 0.5 + 2) * 30}`)}
354
+ ],
355
+ duration: 2000,
356
+ loop: true,
357
+ easing: 'linear'
358
+ });
359
+ }
360
+
361
+ // Initialize waveform when page loads
362
+ window.addEventListener('load', createWaveform);
363
  </script>
364
  </body>
365
+ </html>
visualization.html CHANGED
@@ -11,117 +11,236 @@
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
13
  <style>
 
 
 
 
 
 
 
 
 
14
  .quantum-bg {
15
- background: linear-gradient(135deg, #6e45e2, #88d3ce);
16
- background-size: 400% 400%;
17
- animation: gradient 15s ease infinite;
18
  }
19
- @keyframes gradient {
20
- 0% { background-position: 0% 50%; }
21
- 50% { background-position: 100% 50%; }
22
- 100% { background-position: 0% 50%; }
 
 
 
 
 
 
 
 
 
23
  }
24
- .hovered-element {
25
- transition: transform 0.3s ease, box-shadow 0.3s ease;
 
 
 
 
 
26
  }
27
- .hovered-element:hover {
 
28
  transform: translateY(-5px);
29
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
 
30
  }
31
- .stylized-font {
32
- font-family: 'Arial Rounded MT Bold', 'Helvetica Rounded', Arial, sans-serif;
33
- letter-spacing: 1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
 
 
 
 
 
35
  #visualization-container {
36
  width: 100%;
37
  height: 500px;
38
- background: rgba(0, 0, 0, 0.3);
39
- border-radius: 8px;
40
  position: relative;
41
  overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
- .controls {
44
- background: rgba(31, 41, 55, 0.7);
45
- border-radius: 8px;
46
- padding: 1rem;
 
 
 
 
 
47
  }
48
- .note-info {
49
- background: rgba(31, 41, 55, 0.7);
50
- border-radius: 8px;
51
- padding: 1rem;
52
- min-height: 100px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
  </style>
55
  </head>
56
  <body class="bg-gray-900 text-white min-h-screen">
57
- <div class="quantum-bg min-h-screen hovered-element">
58
  <!-- Header -->
59
- <header class="container mx-auto py-6 px-4 hovered-element">
60
  <div class="flex justify-between items-center">
61
- <h1 class="text-3xl font-bold stylized-font">Quantum Music Synthesizer</h1>
62
- <nav>
63
- <ul class="flex space-x-6">
64
- <li><a href="index.html" class="hover:text-purple-300">Home</a></li>
65
- <li><a href="synthesizer.html" class="hover:text-purple-300">Synthesizer</a></li>
66
- <li><a href="quantum.html" class="hover:text-purple-300">Quantum</a></li>
67
- <li><a href="visualization.html" class="hover:text-purple-300">Visualization</a></li>
 
68
  </ul>
69
  </nav>
70
  </div>
71
  </header>
72
 
73
  <!-- Visualization Section -->
74
- <section class="container mx-auto py-16 px-4 hovered-element">
75
- <h2 class="text-4xl font-bold text-center mb-12 stylized-font">3D Note Visualization</h2>
76
 
77
- <div class="max-w-6xl mx-auto bg-gray-800 bg-opacity-50 rounded-xl p-8 hovered-element">
78
- <div class="grid grid-cols-1 lg:grid-cols-3 gap-8 mb-8">
79
- <div class="lg:col-span-2">
80
  <div id="visualization-container"></div>
81
  </div>
82
  <div class="space-y-6">
83
- <div class="controls">
84
- <h3 class="text-xl font-bold mb-4 stylized-font">Controls</h3>
85
- <div class="space-y-4">
86
  <div>
87
  <label class="block mb-2">Rotation Speed</label>
88
- <input type="range" id="rotation-speed" min="0" max="2" step="0.1" value="0.5" class="w-full">
89
  </div>
90
  <div>
91
  <label class="block mb-2">Point Size</label>
92
- <input type="range" id="point-size" min="1" max="10" step="0.5" value="3" class="w-full">
 
 
 
 
93
  </div>
94
  <div>
95
- <button id="reset-view" class="bg-purple-600 hover:bg-purple-700 text-white font-bold py-2 px-4 rounded w-full">
96
  Reset View
97
  </button>
98
  </div>
99
  </div>
100
  </div>
101
 
102
- <div class="note-info">
103
- <h3 class="text-xl font-bold mb-4 stylized-font">Selected Note</h3>
104
  <div id="note-details">
105
- <p>Click on a note to see details</p>
106
  </div>
107
  </div>
108
  </div>
109
  </div>
110
 
111
  <div class="mt-8">
112
- <h3 class="text-2xl font-bold mb-4 stylized-font">Visualization Legend</h3>
113
  <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
114
- <div class="bg-gray-700 p-4 rounded-lg">
115
- <h4 class="font-bold mb-2">X-Axis: Frequency</h4>
116
- <p>Position represents note frequency (Hz)</p>
 
 
 
117
  </div>
118
- <div class="bg-gray-700 p-4 rounded-lg">
119
- <h4 class="font-bold mb-2">Y-Axis: Amplitude</h4>
120
- <p>Height represents note volume</p>
 
 
 
121
  </div>
122
- <div class="bg-gray-700 p-4 rounded-lg">
123
- <h4 class="font-bold mb-2">Z-Axis: Time</h4>
124
- <p>Depth represents note sequence timing</p>
 
 
 
125
  </div>
126
  </div>
127
  </div>
@@ -129,8 +248,8 @@
129
  </section>
130
 
131
  <!-- Footer -->
132
- <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-700">
133
- <p>Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
134
  </footer>
135
  </div>
136
 
@@ -141,20 +260,20 @@
141
  let scene, camera, renderer, points;
142
  let rotationSpeed = 0.5;
143
  let pointSize = 3;
 
144
  let noteData = [];
145
 
146
  function init() {
147
  // Create scene
148
  scene = new THREE.Scene();
149
- scene.background = new THREE.Color(0x1a202c);
150
 
151
  // Create camera
152
  camera = new THREE.PerspectiveCamera(75,
153
  document.getElementById('visualization-container').clientWidth /
154
  document.getElementById('visualization-container').clientHeight,
155
  0.1, 1000);
156
- camera.position.z = 30;
157
- camera.position.y = 10;
158
 
159
  // Create renderer
160
  renderer = new THREE.WebGLRenderer({ antialias: true });
@@ -172,12 +291,20 @@
172
  directionalLight.position.set(20, 20, 20);
173
  scene.add(directionalLight);
174
 
 
 
 
175
  // Generate sample note data
176
  generateNoteData();
177
 
178
  // Create 3D points
179
  createPoints();
180
 
 
 
 
 
 
181
  // Add axes helper
182
  const axesHelper = new THREE.AxesHelper(20);
183
  scene.add(axesHelper);
@@ -194,13 +321,17 @@
194
  const baseNotes = [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25]; // C4 to C5
195
  const durations = [0.5, 1.0, 1.5, 2.0];
196
 
197
- for (let i = 0; i < 50; i++) {
198
  noteData.push({
199
- frequency: baseNotes[Math.floor(Math.random() * baseNotes.length)] + (Math.random() * 100),
200
  amplitude: Math.random(),
201
  duration: durations[Math.floor(Math.random() * durations.length)],
202
- time: i * 0.5,
203
- color: new THREE.Color(Math.random() * 0xffffff)
 
 
 
 
204
  });
205
  }
206
  }
@@ -213,16 +344,17 @@
213
  const maxFreq = Math.max(...noteData.map(n => n.frequency));
214
  const minFreq = Math.min(...noteData.map(n => n.frequency));
215
  const maxTime = Math.max(...noteData.map(n => n.time));
 
216
 
217
  for (let i = 0; i < noteData.length; i++) {
218
- // Map frequency to X-axis (0-20)
219
- positions[i * 3] = ((noteData[i].frequency - minFreq) / (maxFreq - minFreq)) * 20 - 10;
220
 
221
- // Map amplitude to Y-axis (0-20)
222
- positions[i * 3 + 1] = noteData[i].amplitude * 20;
223
 
224
- // Map time to Z-axis (0-20)
225
- positions[i * 3 + 2] = (noteData[i].time / maxTime) * 20 - 10;
226
 
227
  // Set colors
228
  colors[i * 3] = noteData[i].color.r;
@@ -240,7 +372,8 @@
240
  size: pointSize,
241
  vertexColors: true,
242
  transparent: true,
243
- opacity: 0.9
 
244
  });
245
 
246
  // Create points
@@ -260,9 +393,14 @@
260
  points.material.size = pointSize;
261
  });
262
 
 
 
 
 
 
263
  // Reset view button
264
  document.getElementById('reset-view').addEventListener('click', function() {
265
- camera.position.set(0, 10, 30);
266
  camera.lookAt(0, 0, 0);
267
  });
268
 
@@ -297,10 +435,18 @@
297
  const index = intersects[0].index;
298
  const note = noteData[index];
299
  document.getElementById('note-details').innerHTML = `
300
- <p><strong>Frequency:</strong> ${note.frequency.toFixed(2)} Hz</p>
301
- <p><strong>Amplitude:</strong> ${(note.amplitude * 100).toFixed(0)}%</p>
302
- <p><strong>Duration:</strong> ${note.duration} seconds</p>
303
- <p><strong>Time:</strong> ${note.time.toFixed(1)} seconds</p>
 
 
 
 
 
 
 
 
304
  `;
305
  }
306
  });
@@ -311,7 +457,16 @@
311
 
312
  // Rotate the entire scene
313
  if (points) {
314
- points.rotation.y += 0.005 * rotationSpeed;
 
 
 
 
 
 
 
 
 
315
  }
316
 
317
  renderer.render(scene, camera);
@@ -321,4 +476,4 @@
321
  window.addEventListener('load', init);
322
  </script>
323
  </body>
324
- </html>
 
11
  <script src="https://unpkg.com/feather-icons"></script>
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
13
  <style>
14
+ :root {
15
+ --quantum-purple: #6e45e2;
16
+ --quantum-teal: #88d3ce;
17
+ --quantum-pink: #ff2a6d;
18
+ --quantum-blue: #05d9e8;
19
+ --quantum-dark: #0c0f1f;
20
+ --quantum-darker: #080a1a;
21
+ }
22
+
23
  .quantum-bg {
24
+ background: linear-gradient(135deg, var(--quantum-dark), var(--quantum-darker));
25
+ position: relative;
26
+ overflow: hidden;
27
  }
28
+
29
+ .quantum-bg::before {
30
+ content: '';
31
+ position: absolute;
32
+ top: 0;
33
+ left: 0;
34
+ right: 0;
35
+ bottom: 0;
36
+ background:
37
+ radial-gradient(circle at 10% 20%, rgba(110, 69, 226, 0.1) 0%, transparent 20%),
38
+ radial-gradient(circle at 90% 80%, rgba(136, 211, 206, 0.1) 0%, transparent 20%),
39
+ radial-gradient(circle at 50% 50%, rgba(5, 217, 232, 0.05) 0%, transparent 30%);
40
+ z-index: 0;
41
  }
42
+
43
+ .quantum-card {
44
+ background: rgba(255, 255, 255, 0.05);
45
+ backdrop-filter: blur(10px);
46
+ border: 1px solid rgba(255, 255, 255, 0.1);
47
+ border-radius: 16px;
48
+ transition: all 0.3s ease;
49
  }
50
+
51
+ .quantum-card:hover {
52
  transform: translateY(-5px);
53
+ box-shadow: 0 10px 30px rgba(110, 69, 226, 0.2);
54
+ border-color: rgba(110, 69, 226, 0.3);
55
  }
56
+
57
+ .quantum-header {
58
+ background: rgba(12, 15, 31, 0.8);
59
+ backdrop-filter: blur(10px);
60
+ position: sticky;
61
+ top: 0;
62
+ z-index: 100;
63
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
64
+ }
65
+
66
+ .quantum-nav a {
67
+ position: relative;
68
+ padding: 8px 0;
69
+ }
70
+
71
+ .quantum-nav a::after {
72
+ content: '';
73
+ position: absolute;
74
+ bottom: 0;
75
+ left: 0;
76
+ width: 0;
77
+ height: 2px;
78
+ background: var(--quantum-blue);
79
+ transition: width 0.3s ease;
80
  }
81
+
82
+ .quantum-nav a:hover::after {
83
+ width: 100%;
84
+ }
85
+
86
  #visualization-container {
87
  width: 100%;
88
  height: 500px;
89
+ background: rgba(10, 12, 25, 0.7);
90
+ border-radius: 12px;
91
  position: relative;
92
  overflow: hidden;
93
+ border: 1px solid rgba(110, 69, 226, 0.2);
94
+ }
95
+
96
+ .control-panel {
97
+ background: rgba(255, 255, 255, 0.05);
98
+ backdrop-filter: blur(10px);
99
+ border: 1px solid rgba(255, 255, 255, 0.1);
100
+ border-radius: 12px;
101
+ padding: 1.5rem;
102
+ }
103
+
104
+ .legend-item {
105
+ display: flex;
106
+ align-items: center;
107
+ margin-bottom: 1rem;
108
+ }
109
+
110
+ .legend-color {
111
+ width: 20px;
112
+ height: 20px;
113
+ border-radius: 4px;
114
+ margin-right: 10px;
115
+ }
116
+
117
+ .slider {
118
+ width: 100%;
119
+ height: 6px;
120
+ background: rgba(255, 255, 255, 0.1);
121
+ border-radius: 3px;
122
+ outline: none;
123
+ -webkit-appearance: none;
124
  }
125
+
126
+ .slider::-webkit-slider-thumb {
127
+ -webkit-appearance: none;
128
+ width: 18px;
129
+ height: 18px;
130
+ border-radius: 50%;
131
+ background: var(--quantum-purple);
132
+ cursor: pointer;
133
+ box-shadow: 0 0 10px rgba(110, 69, 226, 0.5);
134
  }
135
+
136
+ .quantum-btn {
137
+ background: linear-gradient(45deg, var(--quantum-purple), var(--quantum-teal));
138
+ border: none;
139
+ border-radius: 30px;
140
+ padding: 10px 20px;
141
+ font-weight: 600;
142
+ transition: all 0.3s ease;
143
+ color: white;
144
+ width: 100%;
145
+ }
146
+
147
+ .quantum-btn:hover {
148
+ transform: translateY(-3px);
149
+ box-shadow: 0 5px 20px rgba(110, 69, 226, 0.4);
150
+ }
151
+
152
+ .note-detail {
153
+ background: rgba(110, 69, 226, 0.1);
154
+ border-left: 3px solid var(--quantum-purple);
155
+ padding: 12px;
156
+ border-radius: 0 8px 8px 0;
157
+ margin-bottom: 10px;
158
  }
159
  </style>
160
  </head>
161
  <body class="bg-gray-900 text-white min-h-screen">
162
+ <div class="quantum-bg min-h-screen">
163
  <!-- Header -->
164
+ <header class="quantum-header container mx-auto py-4 px-4">
165
  <div class="flex justify-between items-center">
166
+ <h1 class="text-3xl font-bold">Quantum Music Synthesizer</h1>
167
+ <nav class="quantum-nav">
168
+ <ul class="flex space-x-8">
169
+ <li><a href="index.html" class="hover:text-purple-300 font-medium">Home</a></li>
170
+ <li><a href="synthesizer.html" class="hover:text-purple-300 font-medium">Synthesizer</a></li>
171
+ <li><a href="quantum.html" class="hover:text-purple-300 font-medium">Quantum</a></li>
172
+ <li><a href="visualization.html" class="hover:text-purple-300 font-medium">Visualization</a></li>
173
+ <li><a href="about.html" class="hover:text-purple-300 font-medium">About</a></li>
174
  </ul>
175
  </nav>
176
  </div>
177
  </header>
178
 
179
  <!-- Visualization Section -->
180
+ <section class="container mx-auto py-16 px-4">
181
+ <h2 class="text-4xl font-bold text-center mb-12">3D Note Visualization</h2>
182
 
183
+ <div class="max-w-7xl mx-auto quantum-card p-8">
184
+ <div class="grid grid-cols-1 lg:grid-cols-4 gap-8 mb-8">
185
+ <div class="lg:col-span-3">
186
  <div id="visualization-container"></div>
187
  </div>
188
  <div class="space-y-6">
189
+ <div class="control-panel">
190
+ <h3 class="text-xl font-bold mb-4">Controls</h3>
191
+ <div class="space-y-5">
192
  <div>
193
  <label class="block mb-2">Rotation Speed</label>
194
+ <input type="range" id="rotation-speed" min="0" max="2" step="0.1" value="0.5" class="slider">
195
  </div>
196
  <div>
197
  <label class="block mb-2">Point Size</label>
198
+ <input type="range" id="point-size" min="1" max="10" step="0.5" value="3" class="slider">
199
+ </div>
200
+ <div>
201
+ <label class="block mb-2">Animation Speed</label>
202
+ <input type="range" id="animation-speed" min="0.1" max="2" step="0.1" value="1" class="slider">
203
  </div>
204
  <div>
205
+ <button id="reset-view" class="quantum-btn">
206
  Reset View
207
  </button>
208
  </div>
209
  </div>
210
  </div>
211
 
212
+ <div class="control-panel">
213
+ <h3 class="text-xl font-bold mb-4">Selected Note</h3>
214
  <div id="note-details">
215
+ <p class="text-gray-400">Click on a note to see details</p>
216
  </div>
217
  </div>
218
  </div>
219
  </div>
220
 
221
  <div class="mt-8">
222
+ <h3 class="text-2xl font-bold mb-6">Visualization Legend</h3>
223
  <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
224
+ <div class="legend-item">
225
+ <div class="legend-color" style="background: linear-gradient(to right, #6e45e2, #88d3ce);"></div>
226
+ <div>
227
+ <h4 class="font-bold">X-Axis: Frequency</h4>
228
+ <p class="text-sm text-gray-400">Position represents note frequency (Hz)</p>
229
+ </div>
230
  </div>
231
+ <div class="legend-item">
232
+ <div class="legend-color" style="background: linear-gradient(to right, #ff2a6d, #d10068);"></div>
233
+ <div>
234
+ <h4 class="font-bold">Y-Axis: Amplitude</h4>
235
+ <p class="text-sm text-gray-400">Height represents note volume</p>
236
+ </div>
237
  </div>
238
+ <div class="legend-item">
239
+ <div class="legend-color" style="background: linear-gradient(to right, #05d9e8, #00a8b5);"></div>
240
+ <div>
241
+ <h4 class="font-bold">Z-Axis: Time</h4>
242
+ <p class="text-sm text-gray-400">Depth represents note sequence timing</p>
243
+ </div>
244
  </div>
245
  </div>
246
  </div>
 
248
  </section>
249
 
250
  <!-- Footer -->
251
+ <footer class="container mx-auto py-8 px-4 text-center border-t border-gray-800">
252
+ <p class="text-gray-400">Powered by QuantumToolbox.jl, Amazon Braket, and Lindblad Solvers</p>
253
  </footer>
254
  </div>
255
 
 
260
  let scene, camera, renderer, points;
261
  let rotationSpeed = 0.5;
262
  let pointSize = 3;
263
+ let animationSpeed = 1;
264
  let noteData = [];
265
 
266
  function init() {
267
  // Create scene
268
  scene = new THREE.Scene();
269
+ scene.background = new THREE.Color(0x0c0f1f);
270
 
271
  // Create camera
272
  camera = new THREE.PerspectiveCamera(75,
273
  document.getElementById('visualization-container').clientWidth /
274
  document.getElementById('visualization-container').clientHeight,
275
  0.1, 1000);
276
+ camera.position.set(0, 15, 30);
 
277
 
278
  // Create renderer
279
  renderer = new THREE.WebGLRenderer({ antialias: true });
 
291
  directionalLight.position.set(20, 20, 20);
292
  scene.add(directionalLight);
293
 
294
+ // Add subtle fog
295
+ scene.fog = new THREE.Fog(0x0c0f1f, 20, 100);
296
+
297
  // Generate sample note data
298
  generateNoteData();
299
 
300
  // Create 3D points
301
  createPoints();
302
 
303
+ // Add grid helper
304
+ const gridHelper = new THREE.GridHelper(40, 20, 0x444444, 0x222222);
305
+ gridHelper.position.y = -5;
306
+ scene.add(gridHelper);
307
+
308
  // Add axes helper
309
  const axesHelper = new THREE.AxesHelper(20);
310
  scene.add(axesHelper);
 
321
  const baseNotes = [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25]; // C4 to C5
322
  const durations = [0.5, 1.0, 1.5, 2.0];
323
 
324
+ for (let i = 0; i < 100; i++) {
325
  noteData.push({
326
+ frequency: baseNotes[Math.floor(Math.random() * baseNotes.length)] + (Math.random() * 200),
327
  amplitude: Math.random(),
328
  duration: durations[Math.floor(Math.random() * durations.length)],
329
+ time: i * 0.3,
330
+ color: new THREE.Color(
331
+ 0.5 + 0.5 * Math.sin(i * 0.1),
332
+ 0.3 + 0.3 * Math.cos(i * 0.15),
333
+ 0.7 + 0.3 * Math.sin(i * 0.2)
334
+ )
335
  });
336
  }
337
  }
 
344
  const maxFreq = Math.max(...noteData.map(n => n.frequency));
345
  const minFreq = Math.min(...noteData.map(n => n.frequency));
346
  const maxTime = Math.max(...noteData.map(n => n.time));
347
+ const maxAmplitude = Math.max(...noteData.map(n => n.amplitude));
348
 
349
  for (let i = 0; i < noteData.length; i++) {
350
+ // Map frequency to X-axis (-20 to 20)
351
+ positions[i * 3] = ((noteData[i].frequency - minFreq) / (maxFreq - minFreq)) * 40 - 20;
352
 
353
+ // Map amplitude to Y-axis (0 to 30)
354
+ positions[i * 3 + 1] = (noteData[i].amplitude / maxAmplitude) * 30;
355
 
356
+ // Map time to Z-axis (-20 to 20)
357
+ positions[i * 3 + 2] = (noteData[i].time / maxTime) * 40 - 20;
358
 
359
  // Set colors
360
  colors[i * 3] = noteData[i].color.r;
 
372
  size: pointSize,
373
  vertexColors: true,
374
  transparent: true,
375
+ opacity: 0.9,
376
+ sizeAttenuation: true
377
  });
378
 
379
  // Create points
 
393
  points.material.size = pointSize;
394
  });
395
 
396
+ // Animation speed control
397
+ document.getElementById('animation-speed').addEventListener('input', function() {
398
+ animationSpeed = parseFloat(this.value);
399
+ });
400
+
401
  // Reset view button
402
  document.getElementById('reset-view').addEventListener('click', function() {
403
+ camera.position.set(0, 15, 30);
404
  camera.lookAt(0, 0, 0);
405
  });
406
 
 
435
  const index = intersects[0].index;
436
  const note = noteData[index];
437
  document.getElementById('note-details').innerHTML = `
438
+ <div class="note-detail">
439
+ <p><strong>Frequency:</strong> ${note.frequency.toFixed(2)} Hz</p>
440
+ </div>
441
+ <div class="note-detail">
442
+ <p><strong>Amplitude:</strong> ${(note.amplitude * 100).toFixed(0)}%</p>
443
+ </div>
444
+ <div class="note-detail">
445
+ <p><strong>Duration:</strong> ${note.duration} seconds</p>
446
+ </div>
447
+ <div class="note-detail">
448
+ <p><strong>Time:</strong> ${note.time.toFixed(1)} seconds</p>
449
+ </div>
450
  `;
451
  }
452
  });
 
457
 
458
  // Rotate the entire scene
459
  if (points) {
460
+ points.rotation.y += 0.005 * rotationSpeed * animationSpeed;
461
+ }
462
+
463
+ // Add subtle floating animation to points
464
+ if (points) {
465
+ const positions = points.geometry.attributes.position.array;
466
+ for (let i = 1; i < positions.length; i += 3) {
467
+ positions[i] += Math.sin(Date.now() * 0.001 + i) * 0.01 * animationSpeed;
468
+ }
469
+ points.geometry.attributes.position.needsUpdate = true;
470
  }
471
 
472
  renderer.render(scene, camera);
 
476
  window.addEventListener('load', init);
477
  </script>
478
  </body>
479
+ </html>