talibanta commited on
Commit
4d71631
·
verified ·
1 Parent(s): 3aacdbb

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +629 -583
  2. prompts.txt +1 -0
index.html CHANGED
@@ -3,651 +3,697 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>AM & FM Modulation Visualizer</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
- <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
9
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
  <style>
11
- .wave-container {
12
- position: relative;
13
- height: 200px;
14
- overflow: hidden;
15
- background-color: #1a202c;
16
- border-radius: 0.5rem;
17
  }
18
- .wave {
19
- position: absolute;
20
- width: 100%;
21
- height: 100%;
22
  }
23
- .slider-container {
24
- position: relative;
25
- height: 10px;
26
- background-color: #e2e8f0;
27
- border-radius: 5px;
28
- margin: 20px 0;
29
  }
30
- .slider-track {
31
- position: absolute;
32
- height: 100%;
33
- background-color: #4299e1;
34
- border-radius: 5px;
35
  }
36
- .slider-thumb {
37
- position: absolute;
38
- width: 20px;
39
- height: 20px;
40
- background-color: #3182ce;
41
- border-radius: 50%;
42
- top: -5px;
43
- transform: translateX(-50%);
44
- cursor: pointer;
45
- box-shadow: 0 2px 4px rgba(0,0,0,0.2);
46
- }
47
- .tab-content {
48
- display: none;
49
- }
50
- .tab-content.active {
51
- display: block;
52
- animation: fadeIn 0.5s ease-in-out;
53
- }
54
- @keyframes fadeIn {
55
- from { opacity: 0; transform: translateY(10px); }
56
- to { opacity: 1; transform: translateY(0); }
57
- }
58
- .modulation-diagram {
59
- width: 100%;
60
- height: 300px;
61
- background-color: #f7fafc;
62
- border-radius: 0.5rem;
63
- position: relative;
64
- overflow: hidden;
65
  }
66
  </style>
67
  </head>
68
- <body class="bg-gray-100 min-h-screen">
69
- <div class="container mx-auto px-4 py-8">
70
- <header class="text-center mb-12">
71
- <h1 class="text-4xl font-bold text-gray-800 mb-2">Radio Modulation Visualizer</h1>
72
- <p class="text-xl text-gray-600">Explore AM and FM modulation through interactive illustrations</p>
73
- </header>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
- <div class="bg-white rounded-xl shadow-lg overflow-hidden mb-8">
76
- <div class="flex border-b border-gray-200">
77
- <button class="tab-btn flex-1 py-4 px-6 text-center font-medium text-gray-500 hover:text-blue-600 hover:bg-gray-50 transition-all duration-300 active" data-tab="am">
78
- <i class="fas fa-wave-square mr-2"></i> Amplitude Modulation (AM)
79
- </button>
80
- <button class="tab-btn flex-1 py-4 px-6 text-center font-medium text-gray-500 hover:text-blue-600 hover:bg-gray-50 transition-all duration-300" data-tab="fm">
81
- <i class="fas fa-satellite-dish mr-2"></i> Frequency Modulation (FM)
82
- </button>
 
 
 
 
 
 
 
83
  </div>
 
 
84
 
85
- <div id="am" class="tab-content active p-6">
86
- <div class="grid md:grid-cols-2 gap-8">
87
- <div>
88
- <h3 class="text-xl font-semibold mb-4 text-gray-700">AM Modulation Process</h3>
89
- <p class="text-gray-600 mb-6">
90
- Amplitude Modulation varies the strength (amplitude) of the carrier wave in proportion to the waveform being transmitted.
91
- The frequency remains constant while the amplitude changes.
92
- </p>
93
-
94
- <div class="mb-6">
95
- <label class="block text-gray-700 mb-2">Message Frequency: <span id="am-message-freq-value">1</span> Hz</label>
96
- <div class="slider-container" id="am-message-freq-slider">
97
- <div class="slider-track" style="width: 20%"></div>
98
- <div class="slider-thumb" style="left: 20%"></div>
99
- </div>
100
- </div>
101
-
102
- <div class="mb-6">
103
- <label class="block text-gray-700 mb-2">Carrier Frequency: <span id="am-carrier-freq-value">10</span> Hz</label>
104
- <div class="slider-container" id="am-carrier-freq-slider">
105
- <div class="slider-track" style="width: 50%"></div>
106
- <div class="slider-thumb" style="left: 50%"></div>
107
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  </div>
109
-
110
- <div class="mb-6">
111
- <label class="block text-gray-700 mb-2">Modulation Index: <span id="am-mod-index-value">0.5</span></label>
112
- <div class="slider-container" id="am-mod-index-slider">
113
- <div class="slider-track" style="width: 25%"></div>
114
- <div class="slider-thumb" style="left: 25%"></div>
115
- </div>
116
  </div>
117
  </div>
118
 
119
- <div>
120
- <div class="wave-container mb-4">
121
- <canvas id="am-message-wave" class="wave"></canvas>
 
 
 
 
122
  </div>
123
- <p class="text-center text-gray-600 mb-2">Message Signal</p>
124
-
125
- <div class="wave-container mb-4">
126
- <canvas id="am-carrier-wave" class="wave"></canvas>
 
127
  </div>
128
- <p class="text-center text-gray-600 mb-2">Carrier Signal</p>
129
-
130
- <div class="wave-container mb-4">
131
- <canvas id="am-modulated-wave" class="wave"></canvas>
132
  </div>
133
- <p class="text-center text-gray-600">Modulated Signal</p>
134
  </div>
135
  </div>
136
 
137
- <div class="mt-8">
138
- <h3 class="text-xl font-semibold mb-4 text-gray-700">AM Modulation Diagram</h3>
139
- <div class="modulation-diagram" id="am-diagram">
140
- <canvas id="am-diagram-canvas"></canvas>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  </div>
142
  </div>
143
  </div>
 
 
144
 
145
- <div id="fm" class="tab-content p-6">
146
- <div class="grid md:grid-cols-2 gap-8">
147
- <div>
148
- <h3 class="text-xl font-semibold mb-4 text-gray-700">FM Modulation Process</h3>
149
- <p class="text-gray-600 mb-6">
150
- Frequency Modulation varies the frequency of the carrier wave in proportion to the waveform being transmitted.
151
- The amplitude remains constant while the frequency changes.
152
- </p>
153
-
154
- <div class="mb-6">
155
- <label class="block text-gray-700 mb-2">Message Frequency: <span id="fm-message-freq-value">1</span> Hz</label>
156
- <div class="slider-container" id="fm-message-freq-slider">
157
- <div class="slider-track" style="width: 20%"></div>
158
- <div class="slider-thumb" style="left: 20%"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  </div>
160
  </div>
161
-
162
- <div class="mb-6">
163
- <label class="block text-gray-700 mb-2">Carrier Frequency: <span id="fm-carrier-freq-value">10</span> Hz</label>
164
- <div class="slider-container" id="fm-carrier-freq-slider">
165
- <div class="slider-track" style="width: 50%"></div>
166
- <div class="slider-thumb" style="left: 50%"></div>
 
 
 
 
167
  </div>
168
  </div>
169
-
170
- <div class="mb-6">
171
- <label class="block text-gray-700 mb-2">Frequency Deviation: <span id="fm-dev-value">2</span> Hz</label>
172
- <div class="slider-container" id="fm-dev-slider">
173
- <div class="slider-track" style="width: 20%"></div>
174
- <div class="slider-thumb" style="left: 20%"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  </div>
176
  </div>
177
  </div>
178
-
179
- <div>
180
- <div class="wave-container mb-4">
181
- <canvas id="fm-message-wave" class="wave"></canvas>
 
 
 
 
 
 
182
  </div>
183
- <p class="text-center text-gray-600 mb-2">Message Signal</p>
184
-
185
- <div class="wave-container mb-4">
186
- <canvas id="fm-carrier-wave" class="wave"></canvas>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  </div>
188
- <p class="text-center text-gray-600 mb-2">Carrier Signal</p>
189
-
190
- <div class="wave-container mb-4">
191
- <canvas id="fm-modulated-wave" class="wave"></canvas>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  </div>
193
- <p class="text-center text-gray-600">Modulated Signal</p>
194
  </div>
195
  </div>
196
 
197
- <div class="mt-8">
198
- <h3 class="text-xl font-semibold mb-4 text-gray-700">FM Modulation Diagram</h3>
199
- <div class="modulation-diagram" id="fm-diagram">
200
- <canvas id="fm-diagram-canvas"></canvas>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  </div>
202
  </div>
203
  </div>
204
  </div>
 
205
 
206
- <div class="bg-white rounded-xl shadow-lg p-6 mt-8">
207
- <h2 class="text-2xl font-bold text-gray-800 mb-4">Key Differences</h2>
208
- <div class="grid md:grid-cols-2 gap-6">
209
- <div class="bg-blue-50 p-4 rounded-lg">
210
- <h3 class="text-lg font-semibold text-blue-800 mb-2"><i class="fas fa-wave-square mr-2"></i> AM (Amplitude Modulation)</h3>
211
- <ul class="text-gray-700 space-y-2">
212
- <li><i class="fas fa-arrow-up mr-2 text-blue-600"></i> Varies amplitude of carrier wave</li>
213
- <li><i class="fas fa-waveform mr-2 text-blue-600"></i> More susceptible to noise and interference</li>
214
- <li><i class="fas fa-broadcast-tower mr-2 text-blue-600"></i> Simpler transmitter and receiver design</li>
215
- <li><i class="fas fa-ruler-combined mr-2 text-blue-600"></i> Bandwidth = 2 × message frequency</li>
216
- <li><i class="fas fa-radio mr-2 text-blue-600"></i> Used in AM radio broadcasting (535-1705 kHz)</li>
217
- </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  </div>
219
- <div class="bg-purple-50 p-4 rounded-lg">
220
- <h3 class="text-lg font-semibold text-purple-800 mb-2"><i class="fas fa-satellite-dish mr-2"></i> FM (Frequency Modulation)</h3>
221
- <ul class="text-gray-700 space-y-2">
222
- <li><i class="fas fa-sync-alt mr-2 text-purple-600"></i> Varies frequency of carrier wave</li>
223
- <li><i class="fas fa-shield-alt mr-2 text-purple-600"></i> More resistant to noise and interference</li>
224
- <li><i class="fas fa-microchip mr-2 text-purple-600"></i> More complex circuitry required</li>
225
- <li><i class="fas fa-ruler-combined mr-2 text-purple-600"></i> Bandwidth = 2 × (frequency deviation + message frequency)</li>
226
- <li><i class="fas fa-music mr-2 text-purple-600"></i> Used in FM radio broadcasting (88-108 MHz)</li>
227
- </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  </div>
229
  </div>
230
  </div>
231
  </div>
232
 
233
- <script>
234
- // Tab switching functionality
235
- document.querySelectorAll('.tab-btn').forEach(btn => {
236
- btn.addEventListener('click', () => {
237
- // Remove active class from all tabs and buttons
238
- document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
239
- document.querySelectorAll('.tab-content').forEach(t => t.classList.remove('active'));
240
-
241
- // Add active class to clicked tab and button
242
- btn.classList.add('active');
243
- const tabId = btn.getAttribute('data-tab');
244
- document.getElementById(tabId).classList.add('active');
245
-
246
- // Redraw charts when switching tabs
247
- if (tabId === 'am') {
248
- drawAMCharts();
249
- } else {
250
- drawFMCharts();
251
- }
252
- });
253
- });
254
-
255
- // Slider functionality
256
- function createSlider(sliderId, valueId, min, max, step, initialValue, callback) {
257
- const slider = document.getElementById(sliderId);
258
- const thumb = slider.querySelector('.slider-thumb');
259
- const track = slider.querySelector('.slider-track');
260
- const valueDisplay = document.getElementById(valueId);
261
-
262
- let isDragging = false;
263
-
264
- // Set initial value
265
- let value = initialValue;
266
- updateSliderPosition();
267
-
268
- function updateSliderPosition() {
269
- const percentage = ((value - min) / (max - min)) * 100;
270
- thumb.style.left = `${percentage}%`;
271
- track.style.width = `${percentage}%`;
272
- valueDisplay.textContent = value.toFixed(step < 1 ? 2 : 0);
273
- }
274
-
275
- function calculateValue(clientX) {
276
- const rect = slider.getBoundingClientRect();
277
- let percentage = (clientX - rect.left) / rect.width;
278
- percentage = Math.max(0, Math.min(1, percentage));
279
- const newValue = min + percentage * (max - min);
280
- return Math.round(newValue / step) * step;
281
- }
282
-
283
- thumb.addEventListener('mousedown', () => {
284
- isDragging = true;
285
- });
286
 
287
- document.addEventListener('mousemove', (e) => {
288
- if (!isDragging) return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
 
290
- const newValue = calculateValue(e.clientX);
291
- if (newValue !== value) {
292
- value = newValue;
293
- updateSliderPosition();
294
- callback(value);
295
- }
296
- });
297
-
298
- document.addEventListener('mouseup', () => {
299
- isDragging = false;
300
- });
301
-
302
- slider.addEventListener('click', (e) => {
303
- const newValue = calculateValue(e.clientX);
304
- if (newValue !== value) {
305
- value = newValue;
306
- updateSliderPosition();
307
- callback(value);
308
- }
309
- });
310
-
311
- return {
312
- getValue: () => value,
313
- setValue: (newValue) => {
314
- value = newValue;
315
- updateSliderPosition();
316
- }
317
- };
318
- }
319
-
320
- // Wave generation and drawing functions
321
- function generateSineWave(frequency, amplitude, phase, sampleRate, duration) {
322
- const samples = [];
323
- const angularFrequency = 2 * Math.PI * frequency;
324
-
325
- for (let i = 0; i < sampleRate * duration; i++) {
326
- const t = i / sampleRate;
327
- samples.push(amplitude * Math.sin(angularFrequency * t + phase));
328
- }
329
-
330
- return samples;
331
- }
332
-
333
- function generateAMWave(messageFreq, carrierFreq, modIndex, sampleRate, duration) {
334
- const messageWave = generateSineWave(messageFreq, 1, 0, sampleRate, duration);
335
- const carrierWave = generateSineWave(carrierFreq, 1, 0, sampleRate, duration);
336
-
337
- const modulatedWave = [];
338
- for (let i = 0; i < messageWave.length; i++) {
339
- const modulation = 1 + modIndex * messageWave[i];
340
- modulatedWave.push(modulation * carrierWave[i]);
341
- }
342
-
343
- return {
344
- messageWave,
345
- carrierWave,
346
- modulatedWave
347
- };
348
- }
349
-
350
- function generateFMWave(messageFreq, carrierFreq, frequencyDeviation, sampleRate, duration) {
351
- const messageWave = generateSineWave(messageFreq, 1, 0, sampleRate, duration);
352
- const carrierWave = generateSineWave(carrierFreq, 1, 0, sampleRate, duration);
353
-
354
- const modulatedWave = [];
355
- let phase = 0;
356
-
357
- for (let i = 0; i < messageWave.length; i++) {
358
- const t = i / sampleRate;
359
- const instantaneousFrequency = carrierFreq + frequencyDeviation * messageWave[i];
360
- phase += 2 * Math.PI * instantaneousFrequency / sampleRate;
361
- modulatedWave.push(Math.sin(phase));
362
- }
363
-
364
- return {
365
- messageWave,
366
- carrierWave,
367
- modulatedWave
368
- };
369
- }
370
-
371
- function drawWave(canvasId, waveData, color, yScale = 1) {
372
- const canvas = document.getElementById(canvasId);
373
- const ctx = canvas.getContext('2d');
374
-
375
- // Set canvas dimensions
376
- const container = canvas.parentElement;
377
- canvas.width = container.clientWidth;
378
- canvas.height = container.clientHeight;
379
-
380
- // Clear canvas
381
- ctx.clearRect(0, 0, canvas.width, canvas.height);
382
-
383
- // Draw wave
384
- ctx.beginPath();
385
- ctx.strokeStyle = color;
386
- ctx.lineWidth = 2;
387
-
388
- const centerY = canvas.height / 2;
389
- const amplitude = (canvas.height / 2) * 0.8 * yScale;
390
-
391
- for (let i = 0; i < waveData.length; i++) {
392
- const x = (i / waveData.length) * canvas.width;
393
- const y = centerY - waveData[i] * amplitude;
394
 
395
- if (i === 0) {
396
- ctx.moveTo(x, y);
397
- } else {
398
- ctx.lineTo(x, y);
399
- }
400
- }
401
-
402
- ctx.stroke();
403
- }
 
 
 
 
 
 
 
 
 
 
 
404
 
405
- function drawAMDiagram() {
406
- const canvas = document.getElementById('am-diagram-canvas');
407
- const ctx = canvas.getContext('2d');
408
- const container = document.getElementById('am-diagram');
409
-
410
- canvas.width = container.clientWidth;
411
- canvas.height = container.clientHeight;
412
-
413
- ctx.clearRect(0, 0, canvas.width, canvas.height);
414
-
415
- // Draw axes
416
- ctx.beginPath();
417
- ctx.strokeStyle = '#4a5568';
418
- ctx.lineWidth = 1;
419
-
420
- // X axis
421
- ctx.moveTo(50, canvas.height / 2);
422
- ctx.lineTo(canvas.width - 50, canvas.height / 2);
423
-
424
- // Y axis
425
- ctx.moveTo(canvas.width / 2, 30);
426
- ctx.lineTo(canvas.width / 2, canvas.height - 30);
427
-
428
- ctx.stroke();
429
-
430
- // Draw labels
431
- ctx.font = '14px Arial';
432
- ctx.fillStyle = '#4a5568';
433
- ctx.textAlign = 'center';
434
- ctx.fillText('Time', canvas.width - 30, canvas.height / 2 + 20);
435
- ctx.fillText('Amplitude', canvas.width / 2, 20);
436
-
437
- // Draw modulation diagram
438
- const messageFreq = amSliders.messageFreq.getValue();
439
- const carrierFreq = amSliders.carrierFreq.getValue();
440
- const modIndex = amSliders.modIndex.getValue();
441
-
442
- const duration = 1;
443
- const sampleRate = 1000;
444
- const { messageWave, carrierWave, modulatedWave } = generateAMWave(
445
- messageFreq, carrierFreq, modIndex, sampleRate, duration
446
- );
447
-
448
- // Draw envelope
449
- ctx.beginPath();
450
- ctx.strokeStyle = 'rgba(66, 153, 225, 0.5)';
451
- ctx.lineWidth = 2;
452
- ctx.setLineDash([5, 5]);
453
-
454
- for (let i = 0; i < modulatedWave.length; i++) {
455
- const x = 50 + (i / modulatedWave.length) * (canvas.width - 100);
456
- const y = canvas.height / 2 - (1 + modIndex * messageWave[i]) * (canvas.height / 2 - 30) * 0.8;
457
-
458
- if (i === 0) {
459
- ctx.moveTo(x, y);
460
- } else {
461
- ctx.lineTo(x, y);
462
- }
463
- }
464
-
465
- for (let i = 0; i < modulatedWave.length; i++) {
466
- const x = 50 + (i / modulatedWave.length) * (canvas.width - 100);
467
- const y = canvas.height / 2 - (1 - modIndex * messageWave[i]) * (canvas.height / 2 - 30) * 0.8;
468
-
469
- if (i === 0) {
470
- ctx.moveTo(x, y);
471
- } else {
472
- ctx.lineTo(x, y);
473
- }
474
- }
475
-
476
- ctx.stroke();
477
- ctx.setLineDash([]);
478
-
479
- // Draw modulated wave
480
- ctx.beginPath();
481
- ctx.strokeStyle = '#3182ce';
482
- ctx.lineWidth = 2;
483
-
484
- for (let i = 0; i < modulatedWave.length; i++) {
485
- const x = 50 + (i / modulatedWave.length) * (canvas.width - 100);
486
- const y = canvas.height / 2 - modulatedWave[i] * (canvas.height / 2 - 30) * 0.8;
487
-
488
- if (i === 0) {
489
- ctx.moveTo(x, y);
490
- } else {
491
- ctx.lineTo(x, y);
492
- }
493
- }
494
-
495
- ctx.stroke();
496
-
497
- // Draw legend
498
- ctx.font = '12px Arial';
499
- ctx.fillStyle = '#3182ce';
500
- ctx.textAlign = 'left';
501
- ctx.fillText('Modulated Signal', 60, 30);
502
-
503
- ctx.fillStyle = 'rgba(66, 153, 225, 0.7)';
504
- ctx.fillText('Envelope', 60, 50);
505
- }
506
 
507
- function drawFMDiagram() {
508
- const canvas = document.getElementById('fm-diagram-canvas');
509
- const ctx = canvas.getContext('2d');
510
- const container = document.getElementById('fm-diagram');
511
-
512
- canvas.width = container.clientWidth;
513
- canvas.height = container.clientHeight;
514
-
515
- ctx.clearRect(0, 0, canvas.width, canvas.height);
516
-
517
- // Draw axes
518
- ctx.beginPath();
519
- ctx.strokeStyle = '#4a5568';
520
- ctx.lineWidth = 1;
521
-
522
- // X axis
523
- ctx.moveTo(50, canvas.height / 2);
524
- ctx.lineTo(canvas.width - 50, canvas.height / 2);
525
-
526
- // Y axis
527
- ctx.moveTo(canvas.width / 2, 30);
528
- ctx.lineTo(canvas.width / 2, canvas.height - 30);
529
-
530
- ctx.stroke();
531
-
532
- // Draw labels
533
- ctx.font = '14px Arial';
534
- ctx.fillStyle = '#4a5568';
535
- ctx.textAlign = 'center';
536
- ctx.fillText('Time', canvas.width - 30, canvas.height / 2 + 20);
537
- ctx.fillText('Frequency', canvas.width / 2, 20);
538
-
539
- // Draw modulation diagram
540
- const messageFreq = fmSliders.messageFreq.getValue();
541
- const carrierFreq = fmSliders.carrierFreq.getValue();
542
- const frequencyDeviation = fmSliders.frequencyDev.getValue();
543
-
544
- const duration = 1;
545
- const sampleRate = 1000;
546
- const { messageWave, modulatedWave } = generateFMWave(
547
- messageFreq, carrierFreq, frequencyDeviation, sampleRate, duration
548
- );
549
-
550
- // Draw frequency variation
551
- ctx.beginPath();
552
- ctx.strokeStyle = 'rgba(134, 65, 244, 0.5)';
553
- ctx.lineWidth = 2;
554
-
555
- for (let i = 0; i < messageWave.length; i++) {
556
- const x = 50 + (i / messageWave.length) * (canvas.width - 100);
557
- const frequency = carrierFreq + frequencyDeviation * messageWave[i];
558
- const y = canvas.height - 30 - ((frequency - (carrierFreq - frequencyDeviation)) / (2 * frequencyDeviation)) * (canvas.height - 60);
559
 
560
- if (i === 0) {
561
- ctx.moveTo(x, y);
562
- } else {
563
- ctx.lineTo(x, y);
564
- }
565
- }
566
-
567
- ctx.stroke();
568
-
569
- // Draw modulated wave
570
- ctx.beginPath();
571
- ctx.strokeStyle = '#805ad5';
572
- ctx.lineWidth = 2;
573
-
574
- for (let i = 0; i < modulatedWave.length; i++) {
575
- const x = 50 + (i / modulatedWave.length) * (canvas.width - 100);
576
- const y = canvas.height / 2 - modulatedWave[i] * (canvas.height / 2 - 30) * 0.8;
577
 
578
- if (i === 0) {
579
- ctx.moveTo(x, y);
580
- } else {
581
- ctx.lineTo(x, y);
582
- }
583
- }
584
-
585
- ctx.stroke();
586
-
587
- // Draw legend
588
- ctx.font = '12px Arial';
589
- ctx.fillStyle = '#805ad5';
590
- ctx.textAlign = 'left';
591
- ctx.fillText('Modulated Signal', 60, 30);
592
-
593
- ctx.fillStyle = 'rgba(134, 65, 244, 0.7)';
594
- ctx.fillText('Frequency Variation', 60, 50);
595
- }
596
-
597
- function drawAMCharts() {
598
- const messageFreq = amSliders.messageFreq.getValue();
599
- const carrierFreq = amSliders.carrierFreq.getValue();
600
- const modIndex = amSliders.modIndex.getValue();
601
-
602
- const { messageWave, carrierWave, modulatedWave } = generateAMWave(
603
- messageFreq, carrierFreq, modIndex, 1000, 1
604
- );
605
-
606
- drawWave('am-message-wave', messageWave, '#38a169');
607
- drawWave('am-carrier-wave', carrierWave, '#dd6b20');
608
- drawWave('am-modulated-wave', modulatedWave, '#3182ce');
609
- drawAMDiagram();
610
- }
611
-
612
- function drawFMCharts() {
613
- const messageFreq = fmSliders.messageFreq.getValue();
614
- const carrierFreq = fmSliders.carrierFreq.getValue();
615
- const frequencyDeviation = fmSliders.frequencyDev.getValue();
616
-
617
- const { messageWave, carrierWave, modulatedWave } = generateFMWave(
618
- messageFreq, carrierFreq, frequencyDeviation, 1000, 1
619
- );
620
 
621
- drawWave('fm-message-wave', messageWave, '#38a169');
622
- drawWave('fm-carrier-wave', carrierWave, '#dd6b20');
623
- drawWave('fm-modulated-wave', modulatedWave, '#805ad5');
624
- drawFMDiagram();
625
- }
626
-
627
- // Initialize sliders
628
- const amSliders = {
629
- messageFreq: createSlider('am-message-freq-slider', 'am-message-freq-value', 0.5, 5, 0.1, 1, drawAMCharts),
630
- carrierFreq: createSlider('am-carrier-freq-slider', 'am-carrier-freq-value', 5, 20, 1, 10, drawAMCharts),
631
- modIndex: createSlider('am-mod-index-slider', 'am-mod-index-value', 0, 1, 0.05, 0.5, drawAMCharts)
632
- };
633
 
634
- const fmSliders = {
635
- messageFreq: createSlider('fm-message-freq-slider', 'fm-message-freq-value', 0.5, 5, 0.1, 1, drawFMCharts),
636
- carrierFreq: createSlider('fm-carrier-freq-slider', 'fm-carrier-freq-value', 5, 20, 1, 10, drawFMCharts),
637
- frequencyDev: createSlider('fm-dev-slider', 'fm-dev-value', 1, 10, 0.5, 2, drawFMCharts)
638
- };
 
 
 
 
 
639
 
640
- // Initial draw
641
- drawAMCharts();
642
- drawFMCharts();
 
 
 
 
 
643
 
644
- // Handle window resize
645
- window.addEventListener('resize', () => {
646
- if (document.getElementById('am').classList.contains('active')) {
647
- drawAMCharts();
648
- } else {
649
- drawFMCharts();
650
- }
651
  });
652
  </script>
653
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=talibanta/myspace" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Classical Mechanics | University Physics Program</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
 
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
  <style>
10
+ .hero-gradient {
11
+ background: linear-gradient(135deg, #1e3a8a 0%, #0ea5e9 100%);
 
 
 
 
12
  }
13
+ .module-card:hover {
14
+ transform: translateY(-5px);
15
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
 
16
  }
17
+ .instructor-card:hover {
18
+ transform: scale(1.03);
 
 
 
 
19
  }
20
+ .animate-float {
21
+ animation: float 6s ease-in-out infinite;
 
 
 
22
  }
23
+ @keyframes float {
24
+ 0% { transform: translateY(0px); }
25
+ 50% { transform: translateY(-15px); }
26
+ 100% { transform: translateY(0px); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  }
28
  </style>
29
  </head>
30
+ <body class="font-sans bg-gray-50">
31
+ <!-- Navigation -->
32
+ <nav class="bg-white shadow-lg">
33
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
34
+ <div class="flex justify-between h-16">
35
+ <div class="flex items-center">
36
+ <div class="flex-shrink-0 flex items-center">
37
+ <i class="fas fa-atom text-blue-600 text-2xl mr-2"></i>
38
+ <span class="text-xl font-bold text-gray-900">Physics Academy</span>
39
+ </div>
40
+ </div>
41
+ <div class="hidden md:ml-6 md:flex md:items-center md:space-x-8">
42
+ <a href="#" class="text-gray-900 hover:text-blue-600 px-3 py-2 text-sm font-medium">Courses</a>
43
+ <a href="#" class="text-gray-900 hover:text-blue-600 px-3 py-2 text-sm font-medium">Faculty</a>
44
+ <a href="#" class="text-gray-900 hover:text-blue-600 px-3 py-2 text-sm font-medium">Resources</a>
45
+ <a href="#" class="bg-blue-600 text-white px-4 py-2 rounded-md text-sm font-medium hover:bg-blue-700">Enroll Now</a>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </nav>
50
 
51
+ <!-- Hero Section -->
52
+ <div class="hero-gradient text-white py-20">
53
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
54
+ <div class="md:flex items-center">
55
+ <div class="md:w-1/2 mb-10 md:mb-0">
56
+ <h1 class="text-4xl md:text-5xl font-bold mb-6">Classical Mechanics</h1>
57
+ <p class="text-xl mb-8 opacity-90">Master the fundamental principles governing motion, forces, and energy in this comprehensive university-level course.</p>
58
+ <div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
59
+ <a href="#enroll" class="bg-white text-blue-700 px-6 py-3 rounded-lg font-semibold text-center hover:bg-gray-100 transition duration-300">Enroll Today</a>
60
+ <a href="#curriculum" class="border-2 border-white px-6 py-3 rounded-lg font-semibold text-center hover:bg-white hover:bg-opacity-10 transition duration-300">View Curriculum</a>
61
+ </div>
62
+ </div>
63
+ <div class="md:w-1/2 flex justify-center">
64
+ <img src="https://illustrations.popsy.co/amber/launching.svg" alt="Physics illustration" class="w-3/4 animate-float">
65
+ </div>
66
  </div>
67
+ </div>
68
+ </div>
69
 
70
+ <!-- Course Overview -->
71
+ <div class="py-16 bg-white">
72
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
73
+ <div class="text-center mb-16">
74
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">Course Overview</h2>
75
+ <div class="w-24 h-1 bg-blue-600 mx-auto"></div>
76
+ </div>
77
+
78
+ <div class="grid md:grid-cols-3 gap-8">
79
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
80
+ <div class="text-blue-600 mb-4">
81
+ <i class="fas fa-graduation-cap text-3xl"></i>
82
+ </div>
83
+ <h3 class="text-xl font-semibold mb-3">Level</h3>
84
+ <p class="text-gray-600">Advanced undergraduate course suitable for physics and engineering majors with calculus background.</p>
85
+ </div>
86
+
87
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
88
+ <div class="text-blue-600 mb-4">
89
+ <i class="fas fa-clock text-3xl"></i>
90
+ </div>
91
+ <h3 class="text-xl font-semibold mb-3">Duration</h3>
92
+ <p class="text-gray-600">12-week program with 4-6 hours of study per week, including lectures, problem sets, and labs.</p>
93
+ </div>
94
+
95
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
96
+ <div class="text-blue-600 mb-4">
97
+ <i class="fas fa-certificate text-3xl"></i>
98
+ </div>
99
+ <h3 class="text-xl font-semibold mb-3">Certification</h3>
100
+ <p class="text-gray-600">Earn a verified certificate upon successful completion with a passing grade of 70% or higher.</p>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <!-- Learning Objectives -->
107
+ <div class="py-16 bg-gray-50">
108
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
109
+ <div class="text-center mb-16">
110
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">Learning Objectives</h2>
111
+ <div class="w-24 h-1 bg-blue-600 mx-auto"></div>
112
+ </div>
113
+
114
+ <div class="grid md:grid-cols-2 gap-8">
115
+ <div>
116
+ <div class="flex items-start mb-6">
117
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
118
+ <i class="fas fa-bullseye text-blue-600 text-xl"></i>
119
  </div>
120
+ <div>
121
+ <h3 class="text-lg font-semibold mb-2">Master Newtonian Mechanics</h3>
122
+ <p class="text-gray-600">Understand and apply Newton's laws of motion to analyze systems of particles and rigid bodies.</p>
 
 
 
 
123
  </div>
124
  </div>
125
 
126
+ <div class="flex items-start mb-6">
127
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
128
+ <i class="fas fa-project-diagram text-blue-600 text-xl"></i>
129
+ </div>
130
+ <div>
131
+ <h3 class="text-lg font-semibold mb-2">Lagrangian Formalism</h3>
132
+ <p class="text-gray-600">Develop proficiency in using Lagrangian mechanics to solve complex dynamical problems.</p>
133
  </div>
134
+ </div>
135
+
136
+ <div class="flex items-start">
137
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
138
+ <i class="fas fa-sync-alt text-blue-600 text-xl"></i>
139
  </div>
140
+ <div>
141
+ <h3 class="text-lg font-semibold mb-2">Conservation Laws</h3>
142
+ <p class="text-gray-600">Apply conservation of energy, momentum, and angular momentum to analyze physical systems.</p>
 
143
  </div>
 
144
  </div>
145
  </div>
146
 
147
+ <div>
148
+ <div class="flex items-start mb-6">
149
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
150
+ <i class="fas fa-compass text-blue-600 text-xl"></i>
151
+ </div>
152
+ <div>
153
+ <h3 class="text-lg font-semibold mb-2">Central Force Motion</h3>
154
+ <p class="text-gray-600">Solve problems involving orbital mechanics and central force potentials.</p>
155
+ </div>
156
+ </div>
157
+
158
+ <div class="flex items-start mb-6">
159
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
160
+ <i class="fas fa-wave-square text-blue-600 text-xl"></i>
161
+ </div>
162
+ <div>
163
+ <h3 class="text-lg font-semibold mb-2">Oscillations</h3>
164
+ <p class="text-gray-600">Analyze simple harmonic motion, damped oscillations, and forced oscillations.</p>
165
+ </div>
166
+ </div>
167
+
168
+ <div class="flex items-start">
169
+ <div class="flex-shrink-0 bg-blue-100 rounded-lg p-3 mr-4">
170
+ <i class="fas fa-space-shuttle text-blue-600 text-xl"></i>
171
+ </div>
172
+ <div>
173
+ <h3 class="text-lg font-semibold mb-2">Rigid Body Dynamics</h3>
174
+ <p class="text-gray-600">Understand the motion of rigid bodies, including rotation about fixed and moving axes.</p>
175
+ </div>
176
  </div>
177
  </div>
178
  </div>
179
+ </div>
180
+ </div>
181
 
182
+ <!-- Curriculum -->
183
+ <div id="curriculum" class="py-16 bg-white">
184
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
185
+ <div class="text-center mb-16">
186
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">Course Curriculum</h2>
187
+ <div class="w-24 h-1 bg-blue-600 mx-auto"></div>
188
+ </div>
189
+
190
+ <div class="space-y-6">
191
+ <!-- Module 1 -->
192
+ <div class="module-card bg-gray-50 border border-gray-200 rounded-xl overflow-hidden transition duration-300">
193
+ <div class="md:flex">
194
+ <div class="md:w-1/4 bg-blue-600 text-white p-6 flex items-center justify-center">
195
+ <div class="text-center">
196
+ <div class="text-4xl font-bold mb-2">01</div>
197
+ <div class="text-xl font-semibold">Week 1-2</div>
198
+ </div>
199
+ </div>
200
+ <div class="md:w-3/4 p-6">
201
+ <h3 class="text-xl font-bold mb-4">Newtonian Mechanics Foundations</h3>
202
+ <div class="grid md:grid-cols-2 gap-4">
203
+ <div class="flex items-start">
204
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
205
+ <i class="fas fa-check-circle"></i>
206
+ </div>
207
+ <div>
208
+ <h4 class="font-medium">Newton's Laws of Motion</h4>
209
+ <p class="text-sm text-gray-600">Inertial frames, force, mass, and acceleration</p>
210
+ </div>
211
+ </div>
212
+ <div class="flex items-start">
213
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
214
+ <i class="fas fa-check-circle"></i>
215
+ </div>
216
+ <div>
217
+ <h4 class="font-medium">Work and Energy</h4>
218
+ <p class="text-sm text-gray-600">Conservative forces, potential energy, energy conservation</p>
219
+ </div>
220
+ </div>
221
+ <div class="flex items-start">
222
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
223
+ <i class="fas fa-check-circle"></i>
224
+ </div>
225
+ <div>
226
+ <h4 class="font-medium">Momentum</h4>
227
+ <p class="text-sm text-gray-600">Linear momentum, impulse, collisions</p>
228
+ </div>
229
+ </div>
230
+ <div class="flex items-start">
231
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
232
+ <i class="fas fa-check-circle"></i>
233
+ </div>
234
+ <div>
235
+ <h4 class="font-medium">Angular Momentum</h4>
236
+ <p class="text-sm text-gray-600">Torque, rotational dynamics, conservation</p>
237
+ </div>
238
+ </div>
239
  </div>
240
  </div>
241
+ </div>
242
+ </div>
243
+
244
+ <!-- Module 2 -->
245
+ <div class="module-card bg-gray-50 border border-gray-200 rounded-xl overflow-hidden transition duration-300">
246
+ <div class="md:flex">
247
+ <div class="md:w-1/4 bg-blue-700 text-white p-6 flex items-center justify-center">
248
+ <div class="text-center">
249
+ <div class="text-4xl font-bold mb-2">02</div>
250
+ <div class="text-xl font-semibold">Week 3-4</div>
251
  </div>
252
  </div>
253
+ <div class="md:w-3/4 p-6">
254
+ <h3 class="text-xl font-bold mb-4">Oscillations and Central Forces</h3>
255
+ <div class="grid md:grid-cols-2 gap-4">
256
+ <div class="flex items-start">
257
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
258
+ <i class="fas fa-check-circle"></i>
259
+ </div>
260
+ <div>
261
+ <h4 class="font-medium">Simple Harmonic Motion</h4>
262
+ <p class="text-sm text-gray-600">Differential equations, energy in SHM</p>
263
+ </div>
264
+ </div>
265
+ <div class="flex items-start">
266
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
267
+ <i class="fas fa-check-circle"></i>
268
+ </div>
269
+ <div>
270
+ <h4 class="font-medium">Damped and Forced Oscillations</h4>
271
+ <p class="text-sm text-gray-600">Resonance, quality factor, transient solutions</p>
272
+ </div>
273
+ </div>
274
+ <div class="flex items-start">
275
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
276
+ <i class="fas fa-check-circle"></i>
277
+ </div>
278
+ <div>
279
+ <h4 class="font-medium">Central Force Motion</h4>
280
+ <p class="text-sm text-gray-600">Effective potential, Kepler's laws</p>
281
+ </div>
282
+ </div>
283
+ <div class="flex items-start">
284
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
285
+ <i class="fas fa-check-circle"></i>
286
+ </div>
287
+ <div>
288
+ <h4 class="font-medium">Orbital Mechanics</h4>
289
+ <p class="text-sm text-gray-600">Two-body problem, scattering</p>
290
+ </div>
291
+ </div>
292
  </div>
293
  </div>
294
  </div>
295
+ </div>
296
+
297
+ <!-- Module 3 -->
298
+ <div class="module-card bg-gray-50 border border-gray-200 rounded-xl overflow-hidden transition duration-300">
299
+ <div class="md:flex">
300
+ <div class="md:w-1/4 bg-blue-800 text-white p-6 flex items-center justify-center">
301
+ <div class="text-center">
302
+ <div class="text-4xl font-bold mb-2">03</div>
303
+ <div class="text-xl font-semibold">Week 5-7</div>
304
+ </div>
305
  </div>
306
+ <div class="md:w-3/4 p-6">
307
+ <h3 class="text-xl font-bold mb-4">Lagrangian and Hamiltonian Mechanics</h3>
308
+ <div class="grid md:grid-cols-2 gap-4">
309
+ <div class="flex items-start">
310
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
311
+ <i class="fas fa-check-circle"></i>
312
+ </div>
313
+ <div>
314
+ <h4 class="font-medium">Calculus of Variations</h4>
315
+ <p class="text-sm text-gray-600">Euler-Lagrange equation</p>
316
+ </div>
317
+ </div>
318
+ <div class="flex items-start">
319
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
320
+ <i class="fas fa-check-circle"></i>
321
+ </div>
322
+ <div>
323
+ <h4 class="font-medium">Lagrangian Formulation</h4>
324
+ <p class="text-sm text-gray-600">Generalized coordinates, constraints</p>
325
+ </div>
326
+ </div>
327
+ <div class="flex items-start">
328
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
329
+ <i class="fas fa-check-circle"></i>
330
+ </div>
331
+ <div>
332
+ <h4 class="font-medium">Symmetries and Conservation</h4>
333
+ <p class="text-sm text-gray-600">Noether's theorem</p>
334
+ </div>
335
+ </div>
336
+ <div class="flex items-start">
337
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
338
+ <i class="fas fa-check-circle"></i>
339
+ </div>
340
+ <div>
341
+ <h4 class="font-medium">Hamiltonian Mechanics</h4>
342
+ <p class="text-sm text-gray-600">Canonical equations, phase space</p>
343
+ </div>
344
+ </div>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ </div>
349
+
350
+ <!-- Module 4 -->
351
+ <div class="module-card bg-gray-50 border border-gray-200 rounded-xl overflow-hidden transition duration-300">
352
+ <div class="md:flex">
353
+ <div class="md:w-1/4 bg-blue-900 text-white p-6 flex items-center justify-center">
354
+ <div class="text-center">
355
+ <div class="text-4xl font-bold mb-2">04</div>
356
+ <div class="text-xl font-semibold">Week 8-10</div>
357
+ </div>
358
  </div>
359
+ <div class="md:w-3/4 p-6">
360
+ <h3 class="text-xl font-bold mb-4">Rigid Body Dynamics</h3>
361
+ <div class="grid md:grid-cols-2 gap-4">
362
+ <div class="flex items-start">
363
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
364
+ <i class="fas fa-check-circle"></i>
365
+ </div>
366
+ <div>
367
+ <h4 class="font-medium">Rotation About Fixed Axis</h4>
368
+ <p class="text-sm text-gray-600">Moment of inertia, parallel axis theorem</p>
369
+ </div>
370
+ </div>
371
+ <div class="flex items-start">
372
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
373
+ <i class="fas fa-check-circle"></i>
374
+ </div>
375
+ <div>
376
+ <h4 class="font-medium">General Motion of Rigid Bodies</h4>
377
+ <p class="text-sm text-gray-600">Euler's equations, torque-free motion</p>
378
+ </div>
379
+ </div>
380
+ <div class="flex items-start">
381
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
382
+ <i class="fas fa-check-circle"></i>
383
+ </div>
384
+ <div>
385
+ <h4 class="font-medium">Gyroscopic Motion</h4>
386
+ <p class="text-sm text-gray-600">Precession, nutation</p>
387
+ </div>
388
+ </div>
389
+ <div class="flex items-start">
390
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
391
+ <i class="fas fa-check-circle"></i>
392
+ </div>
393
+ <div>
394
+ <h4 class="font-medium">Non-inertial Reference Frames</h4>
395
+ <p class="text-sm text-gray-600">Coriolis effect, centrifugal force</p>
396
+ </div>
397
+ </div>
398
+ </div>
399
  </div>
 
400
  </div>
401
  </div>
402
 
403
+ <!-- Module 5 -->
404
+ <div class="module-card bg-gray-50 border border-gray-200 rounded-xl overflow-hidden transition duration-300">
405
+ <div class="md:flex">
406
+ <div class="md:w-1/4 bg-indigo-900 text-white p-6 flex items-center justify-center">
407
+ <div class="text-center">
408
+ <div class="text-4xl font-bold mb-2">05</div>
409
+ <div class="text-xl font-semibold">Week 11-12</div>
410
+ </div>
411
+ </div>
412
+ <div class="md:w-3/4 p-6">
413
+ <h3 class="text-xl font-bold mb-4">Advanced Topics and Applications</h3>
414
+ <div class="grid md:grid-cols-2 gap-4">
415
+ <div class="flex items-start">
416
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
417
+ <i class="fas fa-check-circle"></i>
418
+ </div>
419
+ <div>
420
+ <h4 class="font-medium">Coupled Oscillations</h4>
421
+ <p class="text-sm text-gray-600">Normal modes, beat phenomenon</p>
422
+ </div>
423
+ </div>
424
+ <div class="flex items-start">
425
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
426
+ <i class="fas fa-check-circle"></i>
427
+ </div>
428
+ <div>
429
+ <h4 class="font-medium">Continuum Mechanics</h4>
430
+ <p class="text-sm text-gray-600">Waves in elastic media</p>
431
+ </div>
432
+ </div>
433
+ <div class="flex items-start">
434
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
435
+ <i class="fas fa-check-circle"></i>
436
+ </div>
437
+ <div>
438
+ <h4 class="font-medium">Chaos Theory</h4>
439
+ <p class="text-sm text-gray-600">Nonlinear dynamics, phase portraits</p>
440
+ </div>
441
+ </div>
442
+ <div class="flex items-start">
443
+ <div class="flex-shrink-0 text-blue-600 mr-3 mt-1">
444
+ <i class="fas fa-check-circle"></i>
445
+ </div>
446
+ <div>
447
+ <h4 class="font-medium">Special Relativity</h4>
448
+ <p class="text-sm text-gray-600">Galilean transformations, limits of classical mechanics</p>
449
+ </div>
450
+ </div>
451
+ </div>
452
+ </div>
453
  </div>
454
  </div>
455
  </div>
456
  </div>
457
+ </div>
458
 
459
+ <!-- Instructors -->
460
+ <div class="py-16 bg-gray-50">
461
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
462
+ <div class="text-center mb-16">
463
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">Meet Your Instructors</h2>
464
+ <div class="w-24 h-1 bg-blue-600 mx-auto"></div>
465
+ </div>
466
+
467
+ <div class="grid md:grid-cols-2 gap-8">
468
+ <!-- Instructor 1 -->
469
+ <div class="instructor-card bg-white rounded-xl shadow-md overflow-hidden transition duration-300">
470
+ <div class="md:flex">
471
+ <div class="md:w-1/3 bg-gray-100 flex items-center justify-center p-6">
472
+ <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Dr. Sarah Chen" class="rounded-full h-32 w-32 object-cover border-4 border-white shadow-md">
473
+ </div>
474
+ <div class="md:w-2/3 p-6">
475
+ <h3 class="text-xl font-bold mb-1">Dr. Sarah Chen</h3>
476
+ <p class="text-blue-600 font-medium mb-3">Professor of Theoretical Physics</p>
477
+ <p class="text-gray-600 mb-4">Dr. Chen specializes in classical and quantum dynamics with over 15 years of teaching experience. Her research focuses on nonlinear dynamics and chaos theory.</p>
478
+ <div class="flex space-x-4">
479
+ <a href="#" class="text-blue-600 hover:text-blue-800">
480
+ <i class="fab fa-google-scholar"></i>
481
+ </a>
482
+ <a href="#" class="text-blue-600 hover:text-blue-800">
483
+ <i class="fab fa-researchgate"></i>
484
+ </a>
485
+ <a href="#" class="text-blue-600 hover:text-blue-800">
486
+ <i class="fas fa-book"></i>
487
+ </a>
488
+ </div>
489
+ </div>
490
+ </div>
491
  </div>
492
+
493
+ <!-- Instructor 2 -->
494
+ <div class="instructor-card bg-white rounded-xl shadow-md overflow-hidden transition duration-300">
495
+ <div class="md:flex">
496
+ <div class="md:w-1/3 bg-gray-100 flex items-center justify-center p-6">
497
+ <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Dr. James Rodriguez" class="rounded-full h-32 w-32 object-cover border-4 border-white shadow-md">
498
+ </div>
499
+ <div class="md:w-2/3 p-6">
500
+ <h3 class="text-xl font-bold mb-1">Dr. James Rodriguez</h3>
501
+ <p class="text-blue-600 font-medium mb-3">Associate Professor of Applied Mechanics</p>
502
+ <p class="text-gray-600 mb-4">With expertise in celestial mechanics and spacecraft dynamics, Dr. Rodriguez brings practical aerospace applications to classical mechanics concepts.</p>
503
+ <div class="flex space-x-4">
504
+ <a href="#" class="text-blue-600 hover:text-blue-800">
505
+ <i class="fab fa-google-scholar"></i>
506
+ </a>
507
+ <a href="#" class="text-blue-600 hover:text-blue-800">
508
+ <i class="fab fa-linkedin"></i>
509
+ </a>
510
+ <a href="#" class="text-blue-600 hover:text-blue-800">
511
+ <i class="fas fa-rocket"></i>
512
+ </a>
513
+ </div>
514
+ </div>
515
+ </div>
516
  </div>
517
  </div>
518
  </div>
519
  </div>
520
 
521
+ <!-- Testimonials -->
522
+ <div class="py-16 bg-white">
523
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
524
+ <div class="text-center mb-16">
525
+ <h2 class="text-3xl font-bold text-gray-900 mb-4">What Students Say</h2>
526
+ <div class="w-24 h-1 bg-blue-600 mx-auto"></div>
527
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
 
529
+ <div class="grid md:grid-cols-3 gap-8">
530
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
531
+ <div class="flex mb-4">
532
+ <i class="fas fa-star text-yellow-400"></i>
533
+ <i class="fas fa-star text-yellow-400"></i>
534
+ <i class="fas fa-star text-yellow-400"></i>
535
+ <i class="fas fa-star text-yellow-400"></i>
536
+ <i class="fas fa-star text-yellow-400"></i>
537
+ </div>
538
+ <p class="text-gray-600 mb-6">"The problem sets were challenging but extremely rewarding. Dr. Chen's explanations of Lagrangian mechanics were crystal clear."</p>
539
+ <div class="flex items-center">
540
+ <img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Student" class="w-10 h-10 rounded-full mr-3">
541
+ <div>
542
+ <h4 class="font-medium">Emily Zhang</h4>
543
+ <p class="text-sm text-gray-500">Physics Major, Class of 2023</p>
544
+ </div>
545
+ </div>
546
+ </div>
547
 
548
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
549
+ <div class="flex mb-4">
550
+ <i class="fas fa-star text-yellow-400"></i>
551
+ <i class="fas fa-star text-yellow-400"></i>
552
+ <i class="fas fa-star text-yellow-400"></i>
553
+ <i class="fas fa-star text-yellow-400"></i>
554
+ <i class="fas fa-star text-yellow-400"></i>
555
+ </div>
556
+ <p class="text-gray-600 mb-6">"The virtual labs were surprisingly effective. I particularly enjoyed the orbital mechanics simulations - they made abstract concepts tangible."</p>
557
+ <div class="flex items-center">
558
+ <img src="https://randomuser.me/api/portraits/men/75.jpg" alt="Student" class="w-10 h-10 rounded-full mr-3">
559
+ <div>
560
+ <h4 class="font-medium">David Wilson</h4>
561
+ <p class="text-sm text-gray-500">Aerospace Engineering, Class of 2024</p>
562
+ </div>
563
+ </div>
564
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
 
566
+ <div class="bg-gray-50 p-6 rounded-xl border border-gray-200">
567
+ <div class="flex mb-4">
568
+ <i class="fas fa-star text-yellow-400"></i>
569
+ <i class="fas fa-star text-yellow-400"></i>
570
+ <i class="fas fa-star text-yellow-400"></i>
571
+ <i class="fas fa-star text-yellow-400"></i>
572
+ <i class="fas fa-star-half-alt text-yellow-400"></i>
573
+ </div>
574
+ <p class="text-gray-600 mb-6">"The instructors were always available for questions. The discussion forums were active with both students and professors participating."</p>
575
+ <div class="flex items-center">
576
+ <img src="https://randomuser.me/api/portraits/women/63.jpg" alt="Student" class="w-10 h-10 rounded-full mr-3">
577
+ <div>
578
+ <h4 class="font-medium">Priya Patel</h4>
579
+ <p class="text-sm text-gray-500">Mechanical Engineering, Class of 2025</p>
580
+ </div>
581
+ </div>
582
+ </div>
583
+ </div>
584
+ </div>
585
+ </div>
586
 
587
+ <!-- Enrollment CTA -->
588
+ <div id="enroll" class="py-16 hero-gradient text-white">
589
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
590
+ <div class="md:flex items-center justify-between">
591
+ <div class="md:w-2/3 mb-8 md:mb-0">
592
+ <h2 class="text-3xl font-bold mb-4">Ready to Master Classical Mechanics?</h2>
593
+ <p class="text-xl opacity-90">Join hundreds of students who have transformed their understanding of physics through this comprehensive course.</p>
594
+ </div>
595
+ <div class="md:w-1/3">
596
+ <a href="#" class="block bg-white text-blue-700 px-6 py-4 rounded-lg font-bold text-center hover:bg-gray-100 transition duration-300 text-lg">
597
+ Enroll Now <i class="fas fa-arrow-right ml-2"></i>
598
+ </a>
599
+ <p class="text-center mt-3 text-blue-100">Next session starts June 15, 2023</p>
600
+ </div>
601
+ </div>
602
+ </div>
603
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
604
 
605
+ <!-- Footer -->
606
+ <footer class="bg-gray-900 text-white pt-16 pb-8">
607
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
608
+ <div class="grid md:grid-cols-4 gap-8 mb-8">
609
+ <div>
610
+ <div class="flex items-center mb-4">
611
+ <i class="fas fa-atom text-blue-400 text-2xl mr-2"></i>
612
+ <span class="text-xl font-bold">Physics Academy</span>
613
+ </div>
614
+ <p class="text-gray-400">Advancing physics education through innovative online learning since 2010.</p>
615
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
 
617
+ <div>
618
+ <h3 class="text-lg font-semibold mb-4">Quick Links</h3>
619
+ <ul class="space-y-2">
620
+ <li><a href="#" class="text-gray-400 hover:text-white">All Courses</a></li>
621
+ <li><a href="#" class="text-gray-400 hover:text-white">Faculty Directory</a></li>
622
+ <li><a href="#" class="text-gray-400 hover:text-white">Research Opportunities</a></li>
623
+ <li><a href="#" class="text-gray-400 hover:text-white">Student Resources</a></li>
624
+ </ul>
625
+ </div>
 
 
 
 
 
 
 
 
626
 
627
+ <div>
628
+ <h3 class="text-lg font-semibold mb-4">Contact</h3>
629
+ <ul class="space-y-2">
630
+ <li class="flex items-center">
631
+ <i class="fas fa-envelope mr-2 text-blue-400"></i>
632
+ <span class="text-gray-400">contact@physicsacademy.edu</span>
633
+ </li>
634
+ <li class="flex items-center">
635
+ <i class="fas fa-phone-alt mr-2 text-blue-400"></i>
636
+ <span class="text-gray-400">(555) 123-4567</span>
637
+ </li>
638
+ <li class="flex items-center">
639
+ <i class="fas fa-map-marker-alt mr-2 text-blue-400"></i>
640
+ <span class="text-gray-400">123 Science Ave, Cambridge, MA</span>
641
+ </li>
642
+ </ul>
643
+ </div>
644
+
645
+ <div>
646
+ <h3 class="text-lg font-semibold mb-4">Follow Us</h3>
647
+ <div class="flex space-x-4">
648
+ <a href="#" class="bg-gray-800 hover:bg-blue-600 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
649
+ <i class="fab fa-twitter"></i>
650
+ </a>
651
+ <a href="#" class="bg-gray-800 hover:bg-blue-700 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
652
+ <i class="fab fa-linkedin-in"></i>
653
+ </a>
654
+ <a href="#" class="bg-gray-800 hover:bg-pink-600 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
655
+ <i class="fab fa-instagram"></i>
656
+ </a>
657
+ <a href="#" class="bg-gray-800 hover:bg-red-600 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
658
+ <i class="fab fa-youtube"></i>
659
+ </a>
660
+ </div>
661
+ </div>
662
+ </div>
 
 
 
 
 
 
663
 
664
+ <div class="border-t border-gray-800 pt-8 flex flex-col md:flex-row justify-between items-center">
665
+ <p class="text-gray-400 mb-4 md:mb-0">© 2023 Physics Academy. All rights reserved.</p>
666
+ <div class="flex space-x-6">
667
+ <a href="#" class="text-gray-400 hover:text-white">Privacy Policy</a>
668
+ <a href="#" class="text-gray-400 hover:text-white">Terms of Service</a>
669
+ <a href="#" class="text-gray-400 hover:text-white">Accessibility</a>
670
+ </div>
671
+ </div>
672
+ </div>
673
+ </footer>
 
 
674
 
675
+ <script>
676
+ // Simple script for smooth scrolling
677
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
678
+ anchor.addEventListener('click', function (e) {
679
+ e.preventDefault();
680
+ document.querySelector(this.getAttribute('href')).scrollIntoView({
681
+ behavior: 'smooth'
682
+ });
683
+ });
684
+ });
685
 
686
+ // Animation for module cards when they come into view
687
+ const observer = new IntersectionObserver((entries) => {
688
+ entries.forEach(entry => {
689
+ if (entry.isIntersecting) {
690
+ entry.target.classList.add('animate-fadeIn');
691
+ }
692
+ });
693
+ }, {threshold: 0.1});
694
 
695
+ document.querySelectorAll('.module-card').forEach(card => {
696
+ observer.observe(card);
 
 
 
 
 
697
  });
698
  </script>
699
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=talibanta/myspace" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
prompts.txt CHANGED
@@ -0,0 +1 @@
 
 
1
+ Design a university classical mechanics online course page with curriculum outline, learning objectives, and instructor profiles