Releases: fbkaragoz/synapse
Releases · fbkaragoz/synapse
v0.1.0 — Initial Release (2025-12-13)
Overview
First public release of Synapse: a real-time, low-overhead visualization system for neural network activations during PyTorch training.
Core Features
Backend (C++ Extension)
- Binary WebSocket protocol with 32-byte fixed header and typed payloads
- Lock-free ring buffer for sub-5% training overhead
- uWebSockets-based broadcast server with background threading
- Layer topology inference and metadata streaming (
NF_MSG_MODEL_META) - Sparse activation filtering with configurable threshold
- Live control messages for runtime parameter adjustment
Frontend (SvelteKit + Three.js)
- Deterministic grid-based layer visualization (no random scatter)
- Auto-framing camera with orbit controls
- Macro view: layer summary blocks with mean/max intensity
- Micro view: sparse neuron particles rendered on-demand
- Real-time control panel (threshold, theme, bloom effects)
- WebAssembly packet parser (Rust) for off-main-thread processing
Simulator
- Llama-8B-like multi-layer activation generator
- Configurable architecture (layers, d_model, d_ff)
- Per-block emission modes:
attn+mlp,attn+mlp+residual,residual - Adjustable FPS and activation threshold
Protocol
- Version: 1
- Magic:
0x574C464E("NFLW") - Message Types:
NF_MSG_LAYER_SUMMARY_BATCH— Macro layer statisticsNF_MSG_SPARSE_ACTIVATIONS— Thresholded neuron activationsNF_MSG_CONTROL— Bidirectional configurationNF_MSG_MODEL_META— Layer topology metadata
Known Limitations
- No attention pattern visualization (planned for v0.2.0)
- Training overhead not validated on real models (simulator only)
- No packet recording/playback functionality
- Reconnection requires manual page refresh
- Single-client testing only (multi-client broadcast untested)
Requirements
- Backend: Python 3.9+, CMake 3.15+, C++17 compiler
- Frontend: Node.js 18+, npm 9+
- Wasm: Rust 1.70+ with
wasm32-unknown-unknowntarget
Installation
# Backend extension
pip install -e backend_extension --no-build-isolation
# Wasm parser
cd wasm_parser && wasm-pack build --target web
# Frontend
cd frontend_dashboard && npm install && npm run devQuick Start
# Terminal 1: Start simulator
./backend_extension/python/run_simulate_llama8b.sh \
--per-block attn+mlp+residual \
--threshold 0.6 \
--fps 5
# Terminal 2: Start dashboard
npm -C frontend_dashboard run dev
# Open http://localhost:5173License
CDLI Non-Commercial Open Source License - Version 2.0, 2025
Full Changelog: Initial release
Full Changelog: https://github.com/fbkaragoz/synapse/commits/v0.1.0