commit 2702b3800853f8afd91d5b85fd0da5c546331b3f Author: Prof. Andy Couturier Date: Mon Mar 2 18:20:11 2026 -0400 First version diff --git a/README.md b/README.md new file mode 100644 index 0000000..26d9dfb --- /dev/null +++ b/README.md @@ -0,0 +1,158 @@ +# TomorrowLAN Quad Stream Overlays + +HTML/CSS browser source overlays for OBS Studio (1920x1080) featuring a 2x2 quad stream layout for the TomorrowLAN gaming event. + +## Assets + +| File | Description | +|------|-------------| +| `bg.png` | Static dark blue matrix background image | +| `logo_noyear.png` | TomorrowLAN logo (cyan/white) | + +--- + +## Overlay Files + +### Standard Layout (935x515 panels) + +Panels fill the full canvas with 15px edge padding and 20px gap. + +| File | Background | Border Animation | +|------|-----------|-----------------| +| `quad_static.html` | bg.png | None (solid cyan) | +| `quad_glow.html` | bg.png | Pulsing glow (12s cycle) | +| `quad_breathe.html` | bg.png | Breathing opacity/width (8s, staggered) | +| `quad_bar.html` | bg.png | Single traveling light bar (40s loop) | +| `quad_dualbars.html` | bg.png | Two chasing light bars (40s loop) | +| `quad_wave.html` | bg.png | Sequential panel highlight (12s cycle) | +| `quad_matrix_static.html` | Animated matrix | None (solid cyan) | +| `quad_matrix_glow.html` | Animated matrix | Pulsing glow | +| `quad_matrix_breathe.html` | Animated matrix | Breathing opacity/width | +| `quad_matrix_bar.html` | Animated matrix | Single traveling light bar | +| `quad_matrix_dualbars.html` | Animated matrix | Two chasing light bars | +| `quad_matrix_wave.html` | Animated matrix | Sequential panel highlight | + +### Gap Layout (780x439 panels, exact 16:9) + +330px vertical gap between columns, 96px row gap. Panels are exactly 16:9. + +| File | Background | Border Animation | +|------|-----------|-----------------| +| `quad_gap_static.html` | bg.png | None (solid cyan) | +| `quad_gap_glow.html` | bg.png | Pulsing glow | +| `quad_gap_breathe.html` | bg.png | Breathing opacity/width | +| `quad_gap_bar.html` | bg.png | Single traveling light bar | +| `quad_gap_dualbars.html` | bg.png | Two chasing light bars | +| `quad_gap_wave.html` | bg.png | Sequential panel highlight | +| `quad_gap_matrix_static.html` | Animated matrix | None (solid cyan) | +| `quad_gap_matrix_glow.html` | Animated matrix | Pulsing glow | +| `quad_gap_matrix_breathe.html` | Animated matrix | Breathing opacity/width | +| `quad_gap_matrix_bar.html` | Animated matrix | Single traveling light bar | +| `quad_gap_matrix_dualbars.html` | Animated matrix | Two chasing light bars | +| `quad_gap_matrix_wave.html` | Animated matrix | Sequential panel highlight | + +### Standalone + +| File | Description | +|------|-------------| +| `bg_matrix.html` | Full-screen animated matrix background (no panels) | + +--- + +## OBS Setup + +### Adding the Overlay + +1. Add a **Browser Source** in OBS +2. Check **Local file** and select the overlay HTML file +3. Set **Width** to `1920` and **Height** to `1080` +4. If streaming at 60 FPS, set the browser source **FPS** to `60` (default is 30) +5. Layer game/camera sources **below** the overlay in the source list + +### Game Source Transform (Edit Transform - Ctrl+E) + +Right-click a game source > **Edit Transform** (or `Ctrl+E`) and enter the exact values below. + +For all sources, set: +- **Positional Alignment**: Top Left +- **Bounding Box Type**: Scale to inner bounds +- **Alignment in Bounding Box**: Center + +--- + +### Standard Layout — Edit Transform Values + +Panel size: **935 x 515** + +| Source | Pos X | Pos Y | Bounding Box W | Bounding Box H | +|--------|------:|------:|---------------:|---------------:| +| Set 1 (top-left) | `15` | `15` | `935` | `515` | +| Set 2 (top-right) | `970` | `15` | `935` | `515` | +| Set 3 (bottom-left) | `15` | `550` | `935` | `515` | +| Set 4 (bottom-right) | `970` | `550` | `935` | `515` | + +> These panels are slightly wider than 16:9 (935:515 = ~1.815:1 vs 1.778:1). A 1920x1080 game source with "Scale to inner bounds" will be cropped ~6px top and bottom — barely noticeable. Use "Scale to outer bounds" instead if you prefer thin black bars on the sides with no crop. + +--- + +### Gap Layout — Edit Transform Values + +Panel size: **780 x 439** (exact 16:9) + +| Source | Pos X | Pos Y | Bounding Box W | Bounding Box H | +|--------|------:|------:|---------------:|---------------:| +| Set 1 (top-left) | `15` | `91` | `780` | `439` | +| Set 2 (top-right) | `1125` | `91` | `780` | `439` | +| Set 3 (bottom-left) | `15` | `626` | `780` | `439` | +| Set 4 (bottom-right) | `1125` | `626` | `780` | `439` | + +> These panels are exactly 16:9. A 1920x1080 game source fits perfectly — no cropping, no black bars. + +--- + +### Visual Layout Reference + +**Standard:** +``` +┌──────────────────────────────────────────────────┐ +│ 15px │ +│ ┌──────────────────┐ ┌──────────────────┐ │ +│ │ Set 1 935x515 │ │ Set 2 935x515 │ │ +│ │ (15, 15) │ │ (970, 15) │ │ +│ └──────────────────┘ └──────────────────┘ │ +│ 20px gap │ +│ ┌──────────────────┐ ┌──────────────────┐ │ +│ │ Set 3 935x515 │ │ Set 4 935x515 │ │ +│ │ (15, 550) │ │ (970, 550) │ │ +│ └──────────────────┘ └──────────────────┘ │ +│ 15px │ +└──────────────────────────────────────────────────┘ +``` + +**Gap:** +``` +┌──────────────────────────────────────────────────┐ +│ 91px │ +│ ┌────────────────┐ ┌────────────────┐ │ +│ │ Set 1 780x439 │ 330px │ Set 2 780x439 │ │ +│ │ (15, 91) │ │ (1125, 91) │ │ +│ └────────────────┘ └────────────────┘ │ +│ 96px │ +│ ┌────────────────┐ ┌────────────────┐ │ +│ │ Set 3 780x439 │ │ Set 4 780x439 │ │ +│ │ (15, 626) │ │ (1125, 626) │ │ +│ └────────────────┘ └────────────────┘ │ +│ 15px │ +└──────────────────────────────────────────────────┘ +``` + +--- + +## Color Palette + +| Color | Hex | Usage | +|-------|-----|-------| +| Cyan | `#00d4ff` | Panel borders, matrix rain trail | +| Light cyan | `#80eaff` | Animated glow highlights | +| Dark navy | `#0a1628` | Matrix background base | +| White | `#ffffff` | Matrix leading characters | diff --git a/bg.png b/bg.png new file mode 100644 index 0000000..c27194f Binary files /dev/null and b/bg.png differ diff --git a/bg_matrix.html b/bg_matrix.html new file mode 100644 index 0000000..42846f8 --- /dev/null +++ b/bg_matrix.html @@ -0,0 +1,119 @@ + + + + + +TomorrowLAN Animated Matrix Background + + + + + + + diff --git a/logo_noyear.png b/logo_noyear.png new file mode 100644 index 0000000..c775c16 Binary files /dev/null and b/logo_noyear.png differ diff --git a/quad_bar.html b/quad_bar.html new file mode 100644 index 0000000..aad648d --- /dev/null +++ b/quad_bar.html @@ -0,0 +1,117 @@ + + + + + +TomorrowLAN Quad Stream Overlay + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + diff --git a/quad_breathe.html b/quad_breathe.html new file mode 100644 index 0000000..37ec2e9 --- /dev/null +++ b/quad_breathe.html @@ -0,0 +1,108 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Breathe + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + diff --git a/quad_dualbars.html b/quad_dualbars.html new file mode 100644 index 0000000..020a320 --- /dev/null +++ b/quad_dualbars.html @@ -0,0 +1,116 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Dual Bars + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + diff --git a/quad_gap_bar.html b/quad_gap_bar.html new file mode 100644 index 0000000..5142bc9 --- /dev/null +++ b/quad_gap_bar.html @@ -0,0 +1,117 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Bar + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + diff --git a/quad_gap_breathe.html b/quad_gap_breathe.html new file mode 100644 index 0000000..7b56730 --- /dev/null +++ b/quad_gap_breathe.html @@ -0,0 +1,108 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Breathe + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + diff --git a/quad_gap_dualbars.html b/quad_gap_dualbars.html new file mode 100644 index 0000000..f9886b5 --- /dev/null +++ b/quad_gap_dualbars.html @@ -0,0 +1,116 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Dual Bars + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + diff --git a/quad_gap_glow.html b/quad_gap_glow.html new file mode 100644 index 0000000..8850dbd --- /dev/null +++ b/quad_gap_glow.html @@ -0,0 +1,107 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Glow + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + diff --git a/quad_gap_matrix_bar.html b/quad_gap_matrix_bar.html new file mode 100644 index 0000000..0462835 --- /dev/null +++ b/quad_gap_matrix_bar.html @@ -0,0 +1,208 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Bar + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + diff --git a/quad_gap_matrix_breathe.html b/quad_gap_matrix_breathe.html new file mode 100644 index 0000000..65b40ff --- /dev/null +++ b/quad_gap_matrix_breathe.html @@ -0,0 +1,195 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Breathe + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + diff --git a/quad_gap_matrix_dualbars.html b/quad_gap_matrix_dualbars.html new file mode 100644 index 0000000..1f0c85b --- /dev/null +++ b/quad_gap_matrix_dualbars.html @@ -0,0 +1,203 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Dual Bars + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + diff --git a/quad_gap_matrix_glow.html b/quad_gap_matrix_glow.html new file mode 100644 index 0000000..25e2e23 --- /dev/null +++ b/quad_gap_matrix_glow.html @@ -0,0 +1,182 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Glow + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + diff --git a/quad_gap_matrix_static.html b/quad_gap_matrix_static.html new file mode 100644 index 0000000..53bfe76 --- /dev/null +++ b/quad_gap_matrix_static.html @@ -0,0 +1,146 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Static + + + + +
+
+
+
+
+
+ + + diff --git a/quad_gap_matrix_wave.html b/quad_gap_matrix_wave.html new file mode 100644 index 0000000..fcb92a9 --- /dev/null +++ b/quad_gap_matrix_wave.html @@ -0,0 +1,203 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Matrix Wave + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + diff --git a/quad_gap_static.html b/quad_gap_static.html new file mode 100644 index 0000000..44f8454 --- /dev/null +++ b/quad_gap_static.html @@ -0,0 +1,67 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Static + + + +
+ +
+
+
+
+
+
+ + + diff --git a/quad_gap_wave.html b/quad_gap_wave.html new file mode 100644 index 0000000..ae3bab3 --- /dev/null +++ b/quad_gap_wave.html @@ -0,0 +1,117 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Gap Wave + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + diff --git a/quad_glow.html b/quad_glow.html new file mode 100644 index 0000000..fccdc87 --- /dev/null +++ b/quad_glow.html @@ -0,0 +1,107 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Glow + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + diff --git a/quad_matrix_bar.html b/quad_matrix_bar.html new file mode 100644 index 0000000..025d534 --- /dev/null +++ b/quad_matrix_bar.html @@ -0,0 +1,208 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Animated Matrix + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + diff --git a/quad_matrix_breathe.html b/quad_matrix_breathe.html new file mode 100644 index 0000000..cbc25dd --- /dev/null +++ b/quad_matrix_breathe.html @@ -0,0 +1,195 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Matrix Breathe + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + diff --git a/quad_matrix_dualbars.html b/quad_matrix_dualbars.html new file mode 100644 index 0000000..32aceac --- /dev/null +++ b/quad_matrix_dualbars.html @@ -0,0 +1,203 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Matrix Dual Bars + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + diff --git a/quad_matrix_glow.html b/quad_matrix_glow.html new file mode 100644 index 0000000..ff9cd38 --- /dev/null +++ b/quad_matrix_glow.html @@ -0,0 +1,182 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Matrix Glow + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + diff --git a/quad_matrix_static.html b/quad_matrix_static.html new file mode 100644 index 0000000..09d19af --- /dev/null +++ b/quad_matrix_static.html @@ -0,0 +1,146 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Matrix Static + + + + +
+
+
+
+
+
+ + + diff --git a/quad_matrix_wave.html b/quad_matrix_wave.html new file mode 100644 index 0000000..28274d1 --- /dev/null +++ b/quad_matrix_wave.html @@ -0,0 +1,203 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Matrix Wave + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + diff --git a/quad_static.html b/quad_static.html new file mode 100644 index 0000000..5e55c6f --- /dev/null +++ b/quad_static.html @@ -0,0 +1,67 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Static + + + +
+ +
+
+
+
+
+
+ + + diff --git a/quad_wave.html b/quad_wave.html new file mode 100644 index 0000000..098c3f7 --- /dev/null +++ b/quad_wave.html @@ -0,0 +1,117 @@ + + + + + +TomorrowLAN Quad Stream Overlay - Wave + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ +