{
"action": "scroll",
"pixels": 125.4567890123,
"direction": "vertical",
"timestamp": 1754855338.01705
}Size: ~95 bytes
{
"a": 1,
"p": 125
}Size: ~15 bytes
🚀 84% smaller payload!
- Send Rate: Reduced from 50ms → 100ms (saves battery)
- Threshold: Lowered from 0.1 → 0.05 (ultra-sensitive)
- Multiplier: Optimized to 40x for trackpad feel
- Data: Integer pixels only, no floats
- Result: Precise, battery-efficient input
- Throttling: Increased from 30ms → 16ms (60 FPS)
- Queue: Only keeps latest message (prevents lag)
- Format: Ultra-minimal JSON keys
- Delimiter: Newline separation prevents concatenation
- Result: Real-time data flow with minimal latency
- Conversion: Optimized pixels/60 (trackpad-like)
- Units: Maximum 3 scroll units (smooth steps)
- Parsing: Supports both minimal and legacy formats
- Performance: Direct PyAutoGUI calls
- Result: Silky-smooth Mac browser scrolling
| Metric | Before | After | Improvement |
|---|---|---|---|
| JSON Size | 95 bytes | 15 bytes | 84% smaller |
| Keys | 4 strings | 2 chars | 50% fewer |
| Float Processing | Yes | No | CPU efficient |
| Timestamp Overhead | Yes | None | Network efficient |
| Component | Before | After | Improvement |
|---|---|---|---|
| Watch Send Rate | 20 FPS | 10 FPS | Battery optimized |
| iPhone Relay | 33 FPS | 60 FPS | 80% smoother |
| Scroll Threshold | 0.1 | 0.05 | 2x more sensitive |
| Mac Scroll Steps | 1-5 units | 1-3 units | Trackpad-like |
Watch Digital Crown
↓ (100ms throttling, haptic feedback)
Ultra-Minimal JSON: {"a":1, "p":125}
↓ (WatchConnectivity)
iPhone Bridge
↓ (16ms = 60 FPS, newline delimited)
Python TCP Server
↓ (pixels/60, max 3 units)
Mac Browser Scrolling (PyAutoGUI)
↓
✨ Trackpad-like Experience
- Ultra-responsive: 60 FPS data relay
- Smooth scrolling: Small, precise scroll units
- Natural feel: Optimized crown sensitivity
- No lag: Minimal JSON prevents bottlenecks
- Battery efficient: Smart Watch throttling
- 84% less network data
- 60 FPS iPhone processing
- No timestamp overhead
- Integer-only processing
- Backwards compatible
| Code | Action | Usage |
|---|---|---|
a: 1 |
Scroll | {"a":1, "p":125} |
a: 2 |
Status | {"a":2} |
a: 3 |
Ping | {"a":3} |
WatchScroller now provides trackpad-like smoothness with maximum efficiency!
The combination of ultra-minimal data transfer, 60 FPS processing, and optimized scroll conversion creates a seamless Watch-to-Mac scrolling experience that rivals native trackpad performance. 🎯