RoundLab is a local desktop viewer for Counter-Strike 2 demos. Open a .dem,
choose a round, and scrub through it on the radar. Everything stays on your
machine.
Download the latest executable from the Releases page.
To run from source, install the .NET 10 SDK. RoundLab runs on macOS, Windows, and Linux.
dotnet restore
dotnet run --project RoundLab.DesktopBuild without launching the app:
dotnet buildImport demos with the file picker or drag them onto the window. Parsing happens in the background, and duplicate files are ignored using their SHA-256 hash.
In the match viewer, you can:
- switch between rounds and events
- play at speeds from 0.25× to 8×
- filter and follow players
- inspect kills, damage, grenades, and bomb events
- use the experimental player POV
- add timestamped annotations
- export a
.roundlabpackage or a PNG of the map
Original demo files are never modified.
POV is experimental. It reconstructs a rough scene from player positions, view angles, and the radar image; it does not render the actual game geometry. The tactical map is still the reliable view for analysis, especially for sight lines and vertical spaces.
PovWorldMesh uses the radar as a floor and samples image boundaries into simple
walls. If radar pixels are unavailable, it falls back to a plain map perimeter.
| Input | Action |
|---|---|
| Space | Play or pause |
| Left / Right | Seek backward or forward |
| Shift + Left / Right | Previous or next event |
| Up / Down | Previous or next round |
| 1–6 | Playback speed from 0.25× to 8× |
| Mouse wheel | Zoom the tactical map |
| F | Fit the map to the window |
RoundLab includes radar images, icons, and calibration data for the competitive map pool. Nuke, Vertigo, and Train also include their lower radar.
Add other maps from the Calibration page by matching radar pixels to world coordinates.
The bundled map files come from MurkyYT/cs2-map-icons. The game assets belong to Valve Corporation.
RoundLab stores its SQLite library, processed matches, map definitions, settings,
and logs in the local application-data directory for the current platform under
RoundLab.
The parser integration test needs a demo that is not included in the repository. Place it at:
RoundLab.Tests/TestData/sample.dem
dotnet testThe parser integration test is skipped when sample.dem is not present.
RoundLab.Desktop/ Avalonia UI, tactical map, timeline, and POV renderer
RoundLab.Application/ Import, playback, analysis, recording, and export
RoundLab.Domain/ Shared match models, map types, and enums
RoundLab.Infrastructure/ SQLite persistence, storage, settings, and map files
RoundLab.DemoParser/ CS2 demo parser adapter
RoundLab.Tests/ Unit tests and optional demo integration test

