This is a modern re-implementation of the old Veles visualization. Unlike the original implementation proposed by codisec, this implementation pre-processes the data into a 3D voxel space which is then rendered via 3D textures. As a result, rendering performance is completely independent of the data size and even large input files can be visualized without problems.
- Linux (may or may not work on other OS to, but only Linux is tested for now)
- gcc, make
- OpenGL 3.3+
- freeglut
- glslang
- bin2o
Just run make
and you will get a veles
binary that you can run.
Start the visualization with veles the-file
. This will open a window with the
visualization. Use the mouse (left button) to rotate the visualization.
Using the right mouse button, you can adjust the brightness (vertical movement)
as well as the contrast (horizontal movement).
In addition, the following keys invoke an action:
a
: Accumulate pixels instead of blendingb
: Use alpha blendingc
: Change color paletteg
: Use standard brightnessl
: Use extra low brightness (useful if your plot is way too bright)p
: Use nearest neighbor interpolation for intensity ("pixel look")s
: Use linear interpolation for intensity ("smooth look")n
: Use nearest neighbor interpolation for position ("correct colors")f
: Use linear interpolation for position ("wrong colors")r
: Reset rotation, brightness, contrast and palette
Someone said "I tried to load a game ISO into Veles and it just crashed", so I thought "why is file size even a problem anyway?" and as it turns out, it is not a problem for a proper implementation.
Right now an orthographic projection is used, but this is quite a mindfuck for the "pixel cloud" type visualization. Implementing a perspective projection might be more useful.
There is also regularly the question of "I see this strange pattern in the plot, but where does it come from?", but answering this question would require adding some mechanism to attribute individual points to locations in the source file.
GBA ROM:
PDP-11 (RL02) disk image:
MP4 file:
FLAC file: