Whl-Dash
Lightweight browser-based data analysis dashboard for visualizing and comparing autonomous-driving .record data (built with Dash + Plotly).
Quick Start
- Install (development):
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -e .- Run (installed console script):
# After installing the package you can run the console script
whl-dash
# Or run in-place while developing
python3 -m whl_dash.mainUsage
- Open
http://127.0.0.1:8050in your browser after the server starts. - Use the left panel to choose or scan a directory containing
.recordfiles (Data Source), configure templates on the right, and clickRender Canvas. - Note: the CLI
--record_pathoption has been removed — choose workspaces/records via the UI.
Performance Optimizations
- The app automatically down-samples very long time series and map trajectories for interactive performance, and switches to WebGL-backed traces (
Scattergl) for large traces. - For more aggressive down-sampling, adjust
max_pointsinwhl_dash/dashboard.pyor implement multi-resolution caching inRecordDataLoader.
Packaging & Publishing
- The project uses
pyproject.toml(setuptools) for builds. - A GitHub Actions workflow
.github/workflows/python-publish.ymlis included to build and publish distributions when a Release is created — ensurePYPI_API_TOKENis configured in repository Secrets.
Troubleshooting
- If you see
ModuleNotFoundError: No module named 'dashboard', reinstall the package in your virtualenv (python3 -m pip install --upgrade .) and run the installedwhl-dashscript; the package uses package-qualified imports (whl_dash.*) to avoid collisions.
Developer Notes
- Key modules:
whl_dash/dashboard.py(UI & callbacks),whl_dash/data.py(RecordDataLoader),whl_dash/template.py(template management). - When changing dependencies or CI, update
pyproject.tomland.github/workflows/python-publish.ymlaccordingly.