6 Commits

Author SHA1 Message Date
Kara Zajac f958e30653 Drop the DREAMMAKER byline from the footer
OVERWATCH stands on its own — remove the "DREAMMAKER project" attribution.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173RhsXkdMViDR8DMNAG3ms
2026-07-15 20:39:33 -04:00
KaraZajac fb4502f79a docs: clean up the README header (drop DREAMMAKER branding)
Replaces the stylized "[DЯΣΛMMΛKΣЯ] // 0VΣЯW4TCH" header block with a plain
"# OVERWATCH" title.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jgJnzMr2bdNuWcDX2xRUR
2026-07-15 20:36:33 -04:00
Kara Zajac 869726ce19 Cache-bust style.css so the new .shots gallery rules load
Cloudflare was serving a stale cached style.css without the screenshots
gallery CSS; version the link (?v=2) to fetch the fresh stylesheet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173RhsXkdMViDR8DMNAG3ms
2026-07-15 19:18:13 -04:00
KaraZajac 66b58891a3 docs: add a Screenshots section to the README landing page
Shows the three app screens (main / sources / settings) on the repo's front
page, reusing the existing docs/img assets. Complements the showcase site's
gallery.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jgJnzMr2bdNuWcDX2xRUR
2026-07-15 19:13:20 -04:00
Kara Zajac 7d85dec970 Add screenshots gallery to the OVERWATCH showcase page
New "Screens" section (3-up phone gallery: threat ring, source
drill-down, settings) with captions, plus a nav anchor and .shots CSS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173RhsXkdMViDR8DMNAG3ms
2026-07-15 19:09:10 -04:00
Kara Zajac 98b6769256 docs: adopt the radar icon + v0.5.3 (smart-glasses detection)
Swaps the ◉ glyph for the new radar logo (nav, footer, favicon, OG card),
bumps to v0.5.3, and notes smart-glasses (Meta/Snap/Vuzix) in the Commercial source.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 18:55:07 -04:00
6 changed files with 111 additions and 14 deletions
+15 -2
View File
@@ -1,5 +1,4 @@
# [DЯΣΛMMΛKΣЯ] # OVERWATCH
## &nbsp;&nbsp;&nbsp;. //0VΣЯW4TCH
A native Android (Kotlin) **passive surveillance-detection** app. Open it, hit A native Android (Kotlin) **passive surveillance-detection** app. Open it, hit
**START**, and a circle turns **green / yellow / orange / red** depending on **START**, and a circle turns **green / yellow / orange / red** depending on
@@ -17,6 +16,20 @@ Website: **[overwatch.netslum.io](https://overwatch.netslum.io)** · Latest re
--- ---
## Screenshots
<p align="center">
<img src="docs/img/overwatch-main.png" width="240" alt="Main screen — live threat-map circle" />
&nbsp;&nbsp;
<img src="docs/img/overwatch-sources.png" width="240" alt="Detection-source drill-down" />
&nbsp;&nbsp;
<img src="docs/img/overwatch-settings.png" width="240" alt="Settings" />
</p>
<p align="center"><sub>Live threat-map circle · source drill-down · settings</sub></p>
---
## What it detects ## What it detects
| Source | What it looks at | Where it comes from | | Source | What it looks at | Where it comes from |
+44 -11
View File
@@ -15,12 +15,13 @@
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://overwatch.netslum.io/og.png"> <meta name="twitter:image" content="https://overwatch.netslum.io/og.png">
<meta name="theme-color" content="#07070d"> <meta name="theme-color" content="#07070d">
<link rel="icon" type="image/svg+xml" href="logo.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css?v=2">
</head> </head>
<body> <body>
@@ -33,13 +34,14 @@
<nav class="nav"> <nav class="nav">
<div class="container nav-inner"> <div class="container nav-inner">
<a class="nav-brand" href="#"> <a class="nav-brand" href="#">
<span class="nav-mark" aria-hidden="true"></span> <img class="nav-logo" src="logo.svg" width="30" height="30" alt="" aria-hidden="true">
OVERWATCH OVERWATCH
</a> </a>
<div class="nav-links"> <div class="nav-links">
<a href="#detect">How it works</a> <a href="#detect">How it works</a>
<a href="#sources">Sources</a> <a href="#sources">Sources</a>
<a href="#tiers">Tiers</a> <a href="#tiers">Tiers</a>
<a href="#screens">Screens</a>
<a href="#download">Download</a> <a href="#download">Download</a>
<a class="nav-github" href="https://github.com/KaraZajac/OVERWATCH" aria-label="GitHub"> <a class="nav-github" href="https://github.com/KaraZajac/OVERWATCH" aria-label="GitHub">
<svg height="18" viewBox="0 0 16 16" width="18" fill="currentColor" aria-hidden="true"> <svg height="18" viewBox="0 0 16 16" width="18" fill="currentColor" aria-hidden="true">
@@ -55,7 +57,7 @@
<div class="container hero-inner"> <div class="container hero-inner">
<div class="hero-eyebrow"> <div class="hero-eyebrow">
<span class="dot dot-pulse"></span> <span class="dot dot-pulse"></span>
v0.5.2 · Android · passive v0.5.3 · Android · passive
</div> </div>
<h1 class="hero-title"> <h1 class="hero-title">
<span class="display-wordmark">OVERWATCH</span> <span class="display-wordmark">OVERWATCH</span>
@@ -249,10 +251,10 @@
<div class="bento-icon">🏠</div> <div class="bento-icon">🏠</div>
<h3>Commercial</h3> <h3>Commercial</h3>
<p> <p>
Nearby consumer smart-home gear (Nest, Ring, Echo, hidden cams) as a Nearby consumer smart-home gear (Nest, Ring, Echo, hidden cams) and
secondary situational signal, riding the BLE + WiFi scans. <strong>smart glasses (Meta, Snap, Vuzix)</strong> as a secondary
Score-capped at ORANGE so a cluster of doorbells never reads as situational signal, riding the BLE + WiFi scans. Score-capped at
ALPR-grade certainty. ORANGE so a cluster of doorbells never reads as ALPR-grade certainty.
</p> </p>
</article> </article>
</div> </div>
@@ -292,6 +294,37 @@
</div> </div>
</section> </section>
<!-- ──────────────── SCREENSHOTS ──────────────── -->
<section id="screens" class="section reveal">
<div class="container">
<div class="section-head">
<span class="section-tag">screenshots</span>
<h2>The whole app, top to bottom.</h2>
<p class="lead">No account, no onboarding, no cloud dashboard to
configure — open it, hit START, and drill into any source. Three taps
deep is as complex as it gets.</p>
</div>
<div class="shots">
<figure class="shot">
<img class="phone" src="img/overwatch-main.png" width="1096" height="2560"
alt="OVERWATCH main screen: a live map inside a green all-clear threat ring, centered on you with a crosshair, and a STOP button." loading="lazy">
<figcaption><strong>The threat ring</strong>A live map centered on you, wrapped in the current tier's color. Green reads &ldquo;all clear&rdquo; at a glance.</figcaption>
</figure>
<figure class="shot">
<img class="phone" src="img/overwatch-sources.png" width="856" height="2000"
alt="Detection-sources drill-down: BLE, WiFi, DeFlock, Citizen, Waze and Commercial rows, each with a color tier dot and the observations that fired it." loading="lazy">
<figcaption><strong>Source drill-down</strong>Tap the ring for every source, its live tier, and the exact observation that fired it.</figcaption>
</figure>
<figure class="shot">
<img class="phone" src="img/overwatch-settings.png" width="856" height="2000"
alt="Settings screen: per-source toggles, proximity distance sliders, and the encrypted Waze proxy token field." loading="lazy">
<figcaption><strong>Settings</strong>Toggle each source, tune proximity distances, and paste an encrypted Waze proxy token.</figcaption>
</figure>
</div>
</div>
</section>
<!-- ──────────────── CAPABILITIES ──────────────── --> <!-- ──────────────── CAPABILITIES ──────────────── -->
<section class="section section-bento reveal"> <section class="section section-bento reveal">
<div class="container"> <div class="container">
@@ -392,7 +425,7 @@
<ul> <ul>
<li>Grab the latest debug-signed APK from <li>Grab the latest debug-signed APK from
<a href="https://github.com/KaraZajac/OVERWATCH/releases/latest">Releases</a> <a href="https://github.com/KaraZajac/OVERWATCH/releases/latest">Releases</a>
(currently <strong>v0.5.2</strong>).</li> (currently <strong>v0.5.3</strong>).</li>
</ul> </ul>
</div> </div>
<div class="tl-col tl-active"> <div class="tl-col tl-active">
@@ -423,12 +456,12 @@
<div class="container footer-inner"> <div class="container footer-inner">
<div class="footer-col"> <div class="footer-col">
<div class="footer-brand"> <div class="footer-brand">
<span class="nav-mark" aria-hidden="true"></span> <img class="nav-logo" src="logo.svg" width="26" height="26" alt="" aria-hidden="true">
OVERWATCH OVERWATCH
</div> </div>
<p class="footer-tag"> <p class="footer-tag">
Passive Android surveillance-detection. Listens only — never Passive Android surveillance-detection. Listens only — never
transmits. A DREAMMAKER project. transmits.
</p> </p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
@@ -462,7 +495,7 @@
transmit, probe, jam, or interfere with any device or network. transmit, probe, jam, or interfere with any device or network.
</p> </p>
<p class="footer-meta"> <p class="footer-meta">
v0.5.2 · <a href="https://github.com/KaraZajac/OVERWATCH">github.com/KaraZajac/OVERWATCH</a> v0.5.3 · <a href="https://github.com/KaraZajac/OVERWATCH">github.com/KaraZajac/OVERWATCH</a>
</p> </p>
</div> </div>
</footer> </footer>
+15
View File
@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 108 108" width="108" height="108" role="img" aria-label="OVERWATCH">
<defs>
<radialGradient id="ow-bg" cx="50%" cy="40%" r="74%">
<stop offset="0" stop-color="#123a24"/>
<stop offset="1" stop-color="#0a0f12"/>
</radialGradient>
</defs>
<rect x="4" y="4" width="100" height="100" rx="26" fill="url(#ow-bg)" stroke="#1f3a2c"/>
<path d="M54,54 L54,20 A34,34 0 0,1 82.5,36 Z" fill="#1fbf6a" fill-opacity="0.30"/>
<circle cx="54" cy="54" r="33" fill="none" stroke="#10b981" stroke-width="2.4"/>
<circle cx="54" cy="54" r="22" fill="none" stroke="#10b981" stroke-width="2.2" stroke-opacity="0.82"/>
<circle cx="54" cy="54" r="11" fill="none" stroke="#10b981" stroke-width="2" stroke-opacity="0.68"/>
<path d="M54,21 V87 M21,54 H87" stroke="#10b981" stroke-width="1.3" stroke-opacity="0.5"/>
<circle cx="70" cy="40" r="4.6" fill="#ef4444"/>
</svg>

After

Width:  |  Height:  |  Size: 932 B

+1 -1
View File
@@ -21,7 +21,7 @@
.url { position: absolute; bottom: 48px; right: 82px; font-family: "JetBrains Mono", monospace; font-size: 21px; color: #5b5b75; } .url { position: absolute; bottom: 48px; right: 82px; font-family: "JetBrains Mono", monospace; font-size: 21px; color: #5b5b75; }
</style></head><body> </style></head><body>
<div class="wrap"> <div class="wrap">
<div class="brand"><span class="mark"></span><span class="name">OVERWATCH</span></div> <div class="brand"><img src="logo.svg" style="width:80px;height:80px;border-radius:17px" alt=""><span class="name">OVERWATCH</span></div>
<div class="tag">Passive surveillance detection for Android. Flag nearby <b>Flock ALPRs</b>, <b>Axon body cams</b> &amp; <b>police</b><b>it only listens.</b></div> <div class="tag">Passive surveillance detection for Android. Flag nearby <b>Flock ALPRs</b>, <b>Axon body cams</b> &amp; <b>police</b><b>it only listens.</b></div>
<div class="tiers"> <div class="tiers">
<span class="tdot"><i style="background:#22c55e;box-shadow:0 0 12px #22c55e"></i>GREEN</span> <span class="tdot"><i style="background:#22c55e;box-shadow:0 0 12px #22c55e"></i>GREEN</span>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 70 KiB

+36
View File
@@ -1085,3 +1085,39 @@ pre.code .prompt { color: var(--accent-hot); user-select: none; }
/* download steps: stack the timeline columns inside the split */ /* download steps: stack the timeline columns inside the split */
.dl-steps { grid-template-columns: 1fr !important; gap: 1rem; } .dl-steps { grid-template-columns: 1fr !important; gap: 1rem; }
.dl-steps .tl-col { margin: 0; } .dl-steps .tl-col { margin: 0; }
/* radar logo mark in nav/footer (replaces the ◉ glyph) */
.nav-logo { display: inline-block; vertical-align: middle; border-radius: 7px; }
.nav-brand .nav-logo { margin-right: 3px; }
/* ============================================================
SCREENSHOTS GALLERY
============================================================ */
.shots {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2.6rem;
margin-top: 2.8rem;
align-items: start;
}
.shots .shot { margin: 0; display: flex; flex-direction: column; align-items: center; }
.shots .phone { width: 260px; max-width: 100%; }
.shots figcaption {
margin-top: 1.4rem;
max-width: 260px;
color: var(--text-muted);
font-size: 0.9rem;
line-height: 1.55;
text-align: center;
}
.shots figcaption strong {
display: block;
color: var(--text);
font-family: var(--display);
font-size: 1rem;
margin-bottom: 0.3rem;
}
@media (max-width: 820px) {
.shots { grid-template-columns: 1fr; gap: 3rem; }
.shots .phone { width: 256px; }
}