Major Changes
Hybrid Sync & Playback Engine
The synchronization architecture between video and radar data was completely rewritten to eliminate stutter and ensure 100% solid logic.
- Moved
updateFramedirectly into thevideoframecallbackfor display refresh rate synchronization. - Implemented a "Resync Drift Cascade Lockdown" (circuit breaker) to prevent infinite loop freezes on low-end hardware or when multiple tabs are open.
- Added frame-rate independent smoothing for UI and sketches.
- Centralized timeline slider, manual offset, and play/stop/pause logic into a dedicated
sync.jsmodule.
Modular File Loading & Offline Support
Monolithic application files were broken down, and the software was adapted to work entirely offline.
- Extracted file handling into
src/fileLoader.js, supporting incremental loading (replacing individual files without breaking app state). - Resolved IndexedDB race conditions and startup crashes by ensuring metadata is extracted before parsing visualization data.
- Removed Google Fonts dependency and implemented robust fallback logic for local JS libraries, enabling full offline capability.
- Corrected caching key usage to ensure auto-reloading from IndexedDB works seamlessly.
Performance & Memory Optimizations
Significant improvements to the rendering pipeline to reduce memory allocation and boost framerates.
- Resolved major heap memory issues by iterating through data and drawing rectangles directly to the canvas, changing
ctx.fillStyleonly once per column. - Improved FPS counter stability with a warmup period to prevent erroneous spikes during new file loads.
- Removed unnecessary animation loop calls (e.g., drawing axes every frame) and reduced text content updates for a 20%+ performance boost.
- Throttled the MATLAB-style Data Explorer updates to prevent unnecessary function calls when closed.
Living Documentation & Analytical Tools
Introduced powerful new ways to explore both the application data and the codebase itself.
- Living Documentation: Added an interactive codebase overview with a visual 3D-styled navigation map and PrismJS syntax highlighting.
- Data Explorer: Added a draggable, resizable MATLAB-style data explorer with timeline sync and track information (launched via 'i' key).
- Speed Graph: Implemented drag-to-seek, click-to-seek, and hover tooltips for CAN/Ego speeds.
- Added an Inter-Frame Timing (IFT) graph with dynamic scaling animations.
Minor Changes & UX Polish
User Interface
- Added vertical range slider (20m-200m) to adjust
RADAR_Y_MAXdynamically. - Double-click reset functionality added to range sliders.
- Implemented an auto-loading Quick Start Guide modal on the first session launch.
- Refined radar-info-overlay to match plot width and center text.
- Added theme-aware color logic for raw point clouds in dark mode.
- Removed redundant 'scale' and 'absolute time' metrics from persistent overlays.
Zoom & God Mode
- Implemented smooth mouse tracking for the zoom tooltip.
- Added Inverse Zoom Logic.
- Constrained God Mode tooltips to remain inside the bounding sketch box.
- Fixed hover detection bugs during scroll-zoom interactions.
- Switched to relative distance squares to reduce computational overhead and initial hover jitter.
Visuals & Inputs
- Added vehicle dimensions visualization and enhanced track risk coloring.
- Added state identifiers directly beside TTC markers.
- Fixed visibility toggle for "Confirmed ONLY" tracks.
- New keyboard shortcuts: Arrow keys (navigation), Shift key (God Mode activation).
- Isolated keyboard shortcut logic to prevent input conflicts.
- Video player mute defaults removed; standard controls option added.