Unfortunately, my legal obligations require me to stop development on this project. Thus, I will do offline developments for the project for personal use only. If anyone would like to discuss about the implementation ideas behind the project or want to take over can feel free to contact me.
An Open-Source Structural Waveform Debugger
Scryer is an advanced waveform viewer and debugger designed for complex RTL debugging. Unlike traditional viewers that simply parse Value Change Dump (VCD/FST) files, Scryer is aiming to actively parse the structural RTL netlist alongside the waveform database. This would allow for hierarchical grouping, deep structural tracing, and advanced analytics directly within the waveform context.
Note that this repository is currently under development, and runs only a single waveform file for now. Thus, this version is pretty unfinished as of now.
- High-Performance Rendering: Built on WebGL via PixiJS to handle millions of transitions without dropping frames.
- Hierarchical Signal Explorer: Natively maps flat signal lists into a traversable hierarchy based on module instantiation.
- Marker Utilities: Drop frozen markers, calculate exact cycle periods, frequencies, and track precise edge transition counts between multiple points in time.
- Dynamic Edge Searching: Jump between "Value Change", "Assert High", "Deassert Low", or custom hex/binary/ASCII values instantly.
- Group Management: Shift-select and logically group signals to manage massive testbenches cleanly.
Before starting development or running the application from source, ensure you have the following installed on your system:
- Python 3.10+ (Required for the backend data server)
- Node.js v18+ & npm (Required for the Electron/React frontend)
- Yosys (Required for RTL elaboration and generating structural JSON)
- (Optional) Rust / Cargo (If you need to build the
pywellenbinary parser from source)
The final releases will come as bundled packages, which should allow one-click workflows rather than requiring individual setup and dependency management.
Run the environment check script to verify your setup:
python scripts/check_env.pyThe backend is a FastAPI headless server that parses wave files and structural netlists.
cd backendpython -m venv venv- Activate the virtual environment:
- Windows:
.\venv\Scripts\activate - Linux/macOS:
source venv/bin/activate
- Windows:
pip install -r requirements.txt
The frontend uses Electron and React (bootstrapped via electron-vite).
- Ensure Node.js is installed.
cd frontendnpm install
- Run Backend:
cd backendthen runpython main.py - Run Frontend:
cd frontendthen runnpm run dev - Linting Frontend:
cd frontendthen runnpm run lintandnpm run typecheck - Clean Build Artifacts: Run
./clean_build.batat the project root
- USER_GUIDE.md: Detailed instructions on how to use Scryer, keyboard shortcuts, and canvas navigation.
- DEVELOPER_GUIDE.md: In-depth architectural details, state management patterns, and backend port communication protocols.
- Future_Goals.md: Planned roadmap features including protocol decoding and python API integration.
- CHANGELOG.md: History of features and bug fixes.
Required Notice: Copyright 2026 Ugur Nezir (yesilzeytin@github) - Scryer Waveform Debugger
This software is licensed under the PolyForm Noncommercial License 1.0.0.