Skip to content

Repository files navigation

EVT3 Viewer

EVT3 Viewer is a desktop application for exploring EVT 3.0 event-camera recordings. It combines a native Rust decoder with a responsive SolidJS/PixiJS interface for playback, seeking, and visualization.

EVT3 Viewer displaying an event heatmap

Features

  • Event-heatmap and time-surface representations
  • Adjustable event accumulation from 1 ms to 1 second, with manual values down to 0.001 ms
  • Configurable time-surface decay
  • Representation-aware Matplotlib-style color maps with gradient previews
  • Variable playback speed or a fixed effective frame rate
  • Timeline scrubbing and playback controls
  • Optional loop playback
  • Display refresh-rate warnings when the selected rate cannot be presented without dropping frames
  • Batched, double-buffered frame streaming with a Web Worker prefetcher

Requirements

EVT decoding is provided by openevt.

Getting started

Install the frontend dependencies:

bun install

Start the desktop application in development mode:

bun run tauri dev

Use Open Device, select Raw File Reader, and choose an EVT 3.0 recording. Playback controls appear beneath the visualization, while representation, accumulation, frame-rate, color-map, and looping options are available in the advanced settings panel.

Building

Create a platform-specific production bundle:

bun run tauri build

Build only the web frontend:

bun run build

Build the Rust backend:

cargo build --release --manifest-path src-tauri/Cargo.toml

Testing

Run the Rust test suite:

cargo test --manifest-path src-tauri/Cargo.toml

Type-check and bundle the frontend:

bun run build

Architecture

The Tauri backend opens and decodes recordings with openevt, renders RGBA frames, and exposes buffered frame batches through a custom URI protocol. The frontend prefetches up to two batches in a Web Worker and transfers their buffers to the main thread, where PixiJS uploads frames without blocking on network requests.

src/
├── features/player/       playback state, controls, settings, and streaming
├── components/            shared interface components
└── lib/                   Tauri command adapters

src-tauri/src/
├── commands.rs            file, playback, rendering, and pacing commands
├── image.rs               heatmap and time-surface generation
├── protocol.rs            batched frame-stream protocol
├── state.rs               shared player and double-buffer state
└── utils.rs               monitor refresh-rate detection

For debug builds, set EVT3_OPEN_DEVTOOLS to open the webview developer tools when the application starts:

EVT3_OPEN_DEVTOOLS=1 bun run tauri dev

About

An advanced EVT3.0 Raw file visualizer built on Rust and Tauri.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages