Skip to content

Repository files navigation

RoundLab

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.

Screenshots

RoundLab match viewer showing a tactical Dust II round with player movement, utility, economy, events, and playback controls

RoundLab library showing an imported Counter-Strike 2 demo ready for analysis

Getting started

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.Desktop

Build without launching the app:

dotnet build

Features

Import 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 .roundlab package or a PNG of the map

Original demo files are never modified.

Player POV (work in progress)

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.

Controls

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
16 Playback speed from 0.25× to 8×
Mouse wheel Zoom the tactical map
F Fit the map to the window

Maps

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.

Local files

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

Tests

dotnet test

The parser integration test is skipped when sample.dem is not present.

Repository layout

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

About

Local Counter-Strike 2 demo viewer for round-by-round tactical analysis.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages