- Created backBuffer canvas (same size as visible)
- All tile drawing now uses bbCtx (backBuffer context)
- Single ctx.drawImage(backBuffer) blit at frame end
- Eliminates tearing and square artifacts from partial renders
- BackBuffer resized in sync with visible canvas
Technical: Classic double buffering pattern - compose entire
frame offscreen, then atomic copy to display buffer.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
FFT Histogram:
- Colorset-mapped frequency bars (bottom center)
- Each bar corresponds to a TAO_SPECTRUM color
- Colors pulse brighter based on FFT energy
BPM Detection:
- Lowered thresholds (0.03 kick, 0.08 flux)
- Adaptive threshold tracks average energy
- Faster detection (3 onsets vs 4)
- More responsive smoothing (alpha 0.4)
- 200ms debounce between beats
Performance:
- Canvas scale 2x (was 10x)
- Limited 3D tilt ±12°/±10°
- Optimized tiling margins
- Wrapper-based overflow clipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- UI fades in on mouse/touch/key activity
- UI fades out after 2.5s idle (smooth 0.4s transition)
- When visible: larger text, better contrast, glow effects
- Joystick/depth/pixel controls enhanced with backdrop blur
- Colorset buttons larger (28px) with shadow
- Status bar text with glow effect
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Standalone HTML art piece with:
- 16 colorsets (default, alchy, emojiz, punk, hollistique, tantrique, etc.)
- 3D CSS perspective joystick control (rotateX/rotateY)
- Color cycle toggle for spectrum animation
- Extended tiling for full 3D rotation coverage
- Depth slider, pixel ring, auto-rotate controls
Deployed at: https://wall.maegia.tv/
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace per-site UCI calls with single-pass awk parsing
- Pre-fetch listening ports, HAProxy backends, and Tor services
- Fix getline variable corruption that produced invalid JSON
- Reduce execution time from 30+ seconds to 0.23 seconds
- Update signaling.gk2.secubox.in route to port 8083 (LXC)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added routes for:
- pf.gk2.secubox.in (Streamlit prompt_forge, port 8502)
- secubox.maegia.tv (LuCI, port 8081)
- meet.maegia.tv (Jitsi, port 8088)
- xchat.gk2.secubox.in (XMPP, port 5280)
- fan.gk2.secubox.in (Streamlit, port 8529)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rewrote method_get_vhosts() to use single-pass awk parsing
- Reduced execution time from 30+ seconds timeout to 0.24 seconds
- Added arm, armada, files42 routes to mitmproxy config
The previous implementation made 4 UCI calls per vhost (764 total)
causing the luci-tree page to timeout. New implementation parses
uci show output once with awk.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add route management commands:
- `mitmproxyctl route list` - List all routes
- `mitmproxyctl route add <domain> <ip> <port>` - Add manual route
- `mitmproxyctl route remove <domain>` - Remove route
- `mitmproxyctl route check` - Check for missing routes
- Improve sync-routes to scan MetaBlogizer and Streamlit services:
- Auto-detect enabled MetaBlogizer sites and add routes
- Auto-detect enabled Streamlit instances with matching vhosts
- Warn about mitmproxy_inspector vhosts with missing routes
- Update routes config with 188 routes
This fixes the issue where services using mitmproxy_inspector backend
would fall back to default because their routes were not configured.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>