The CAN analyzer
engineers actually want

Visualize, decode, and analyze CAN bus logs with an AI-powered interface. Stop fighting Vector CANalyzer's 2000s UX — start shipping faster.

sample_run_2024.asc — CANvas
EngineSpeed
ThrottlePos
VehicleSpeed
0.0s1.2s2.4s3.6s4.8s6.0s
✓ macOS, Windows, Linux✓ ASC · BLF · MF4 · CSV✓ Free forever, MIT licensed✓ No subscription required

Supports the formats your hardware already produces:

.asc
.blf
.mf4
.mdf
.csv

Capabilities

Everything you need, nothing you don't

Purpose-built for the CAN analysis workflow engineers actually use — not a feature checklist from 2003.

Multi-format support

ASC, BLF, MF4, CSV — the formats your hardware already produces. Drag, drop, parse. No conversion required.

.asc .blf .mf4 .csv

Interactive plots

Zoom, pan, and scrub through logs with linked axes. Overview bar keeps context while you dive into detail.

Linked axes · Playback

AI-powered analysis

Ask questions about your signals in plain English. Bring your own Claude, GPT-4, or Gemini key — your data, your model.

Claude · GPT-4 · Gemini

Full signal control

Search, filter, reorder, and color-code signals. Right-click any signal to customize. Your workspace, your way.

Color picker · Search

Raw frame inspection

Every decoded signal is linked back to its raw CAN frame by an exact index — no timestamp ambiguity, zero guesswork.

frame_idx join · Exact

Fast & cross-platform

Native desktop app built on Python and PySide6. No browser. No cloud dependency. Runs on macOS, Windows, and Linux.

macOS · Windows · Linux
AI Assistant

Your signals, explained

The built-in AI assistant understands your signal context. Ask it why a value spiked, what a message pattern means, or to summarize anomalies — all without leaving the app.

Signal context auto-injected — no copy-paste required
Runs in a background thread — UI never freezes
Bring your own API key — your data stays private
Works with any DBC-decoded session

Supported providers

â—ˆ
Claude
by Anthropic
⬡
GPT-4
by OpenAI
✦
Gemini
by Google
AI Assistantclaude-3-5-sonnet
Why did EngineSpeed spike to 6200 RPM at t=3.4s?
Looking at frame_idx 1847–1853: ThrottlePos jumped from 8% to 94% in 120ms at t=3.38s — a hard pedal input. EngineSpeed responded with 340ms latency, peaking at 6210 RPM. This is within normal WOT transient behavior. No fault frames detected in the surrounding window.
Are there any message cycle time anomalies in 0x1A4?
Message 0x1A4 (BrakeControl) has a nominal cycle time of 10ms. I found 3 late frames: at t=1.2s (+4.1ms), t=4.7s (+6.8ms), t=8.1s (+3.2ms). These correlate with the high CPU load events visible in 0x7FF (DiagHeartbeat). Likely scheduling jitter, not a bus fault.
Ask about your signals...

Pricing

Simple, transparent pricing

Start free. Upgrade when you need server-side AI and priority support.

Free

The full core experience, forever.

$0/ forever
  • All core analysis features
  • BYOK AI (Claude / GPT-4 / Gemini)
  • .asc, .blf, .mf4, .csv support
  • Interactive plots & signal tree
  • Raw frame table inspection
  • CSV export
  • Community support (GitHub)
Download Free
Coming soon

Pro

For teams who want AI without the key management.

$20/ month
  • Everything in Free
  • Server-side AI (no key needed)
  • Priority email support
  • Early access to new features
  • Telemetry dashboard (coming)

No commitment — be first when it launches

CANvas is open source and MIT licensed. The Free tier will always exist. Pro pricing subject to change before launch.