Pivi (short for Pipeviewer) is a tool that simplifies visualization tasks. It has a simple stream based input format and can output its results into an image as well as directly to the terminal.
You need Cairo to create the images. We use node-canvas to create the images they have an installation guide on their project page.
Then you simply run:
npm install -g pivi
Or if you want to use pivi in your project you can use
npm install pivi
The following program generates a zigzag line and outputs it as a PNG image.
echo "polyline (0 0) (100 100) (100 0) (0 100)" | pivi
The same line displayed in the terminal:
echo "polyline (0 0) (100 100) (100 0) (0 100)" | pivi -t
All points can be written as a tupel or you can simply omit all commas or brackets.
point 1 2
points (1 2) (3 3)
line (0, 0) (20 30)
lines ((0, 0) (20 40)) ((0,0) (40,20))
(draws one line for each pair of points)polyline 0 0 ... 100 0
circle ((centerx,centery) radius)
circles ((100,100) 20) ((centerx,centery) radius)
If you want to work on pivi you can follow these steps:
- clone it
- install necessary dependencies (currently cairo and Image Magicks convert for animations)
- install npm (e.g. via NVM)
- run
npm install
in the projects root directory - run
npm test
to check if everything works
You should install gulp (npm install -g gulp
) to run all the tasks during development. You can see
all available tasks in gulpfile.js
or via gulp --tasks
.
- You can try ImageMagick's convert. You can pass arguments to it that function similar to our commands. More here
- Terminal plotting is also possible with gnuplot. More here
- Rasmus Buchmann
- Maximilian Klein