All Projects → Nic30 → d3-wave

Nic30 / d3-wave

Licence: BSD-3-Clause license
D3.js based wave (signal) visualizer

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

d3-wave

Travis-ci Build Statusnpm versionCoverage StatusDocumentation Status

D3.js based wave (signal) visualizer

This library renders signal dumps into specified svg. (GTKWave for javascript)

Note that the gif is ugly and from old version, it is not updated offten because it is big and we do not want to spoil the repo.

scroll_and_zoom.gif

Use npm install d3-wave --save to install this library and save it to your package.json file. Installation from git for developers:

npm install            # normal dependencies
npm install --only=dev # developement only dedpendencies
npm run-script build   # build dist js
npm test               # run tests

python -m http.server  # run http server in root directory in order to open the examples in ./examples directory

Features

  • Vertical scrolling and zoom in time domain
  • Tree based signal hierarchy view (collapsable)
  • Signal tree scrollbar with preview
  • Drag-and-drop/key based signal organization
  • Renderers for int, str, bit, enum and bit vector values (user extendible)
  • Dynamic time unit on x-axis
  • Responsive design
  • Arbitrary integer values

Input JSON format

Signal record

{ "name": "<signal name>",
  "type": {"name": "<vcd signal type>",
           "width": "<bit width of signal (integer)>"},
  "data": ["<data records>"],      // optionally
  "children": ["<signal recors>"], // optionally, if children should be collapsed by default use _children
}

Data record format

["<time (number)>", "<value (string, format dependent on datatype)>"]

There is a special type with name "struct" Signal with this name has stored another signal records in it's data.

Similar opensource

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].