Initial commit: NetworkCity — network traffic as a neon city

A native macOS network monitor that renders live traffic as a top-down
neon city: your Mac is downtown, remote orgs are glowing districts, and
traffic is cars of light driving the roads.

Architecture:
- NetworkCityCore: swappable data layer behind a ConnectionSource protocol
  (nettop-backed today), plus pure/tested logic — traffic diffing, org
  classification (reverse-DNS + CIDR), traffic classes, hub-and-spoke
  expansion policy, label anti-overlap, and latency→distance layout.
- NetworkCityApp: SwiftUI + SpriteKit city — auto-expanding districts,
  protocol-coloured cars, click-to-inspect panel, and latency-as-distance
  (districts glide to their measured RTT).
- nettop-probe: CLI proof of the data layer.

44 tests passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-13 08:43:32 -07:00
commit c08fc277a9
33 changed files with 2499 additions and 0 deletions
@@ -0,0 +1,17 @@
import Foundation
import CoreGraphics
/// Maps a measured round-trip time (ms) to a radial distance from downtown.
/// A log curve so the busy near range (150ms LAN/CDN) spreads out instead of
/// bunching at the center, while the long tail (transcontinental) saturates.
public enum LatencyLayout {
public static let minRadius: CGFloat = 150
public static let maxRadius: CGFloat = 560
public static let rttCeiling: Double = 250 // ms mapped to the outer edge
public static func radius(forRTT rtt: Double) -> CGFloat {
let clamped = max(0, min(rtt, rttCeiling))
let norm = log10(1 + clamped) / log10(1 + rttCeiling)
return minRadius + CGFloat(norm) * (maxRadius - minRadius)
}
}