Skip to content
Visual Check Sum
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
GenerativeImage
VizSum.xcodeproj
imgs
.gitignore
Makefile
README.md
README.png

README.md

vizsum

A generative image exercise for converting checksum data into something visual. ImageMagick's sparse-color interpolation methods are used to create stunning unique images.

Example

vizsum README.png < README.md

README.png

How this works

Take the following message digest

echo -n emcconville | md5
#=> 8a59b44064a204d569feec76645a6dcb

This project proposes that the data generated by a digest can map to a Pixel data structure.

,---- X coordinate
||,-- Y coordinate
||||
8a59b44064a204d569feec76645a6dcb
    |     |
    `-----+- color value

Or even a Hue only degree value.

,---- X coordinate
||,-- Y coordinate
||||
8a59b44064a204d569feec76645a6dcb
    ||
    `-- hue angle

So any digest blob can (unsafely) be cast to a C data structure

struct pixel {
    struct coord {
        unsigned char x,y
    },
    struct color {
        unsigned char r,g,b
    } // or hue 
}

Scaling bytes against quantum colors results in some truly unique points of color. See below for examples of diffrent ImageMagick Interpolation of each color.

Barycentric Interpolate (default)

echo -n emcconville | vizsum -barycentric sumimg.png
Digest Flag Hue only
Adler32 -barycentric -adler32 -barycentric -adler32 -hue
same as -hue adler32
GOST -barycentric -gost -barycentric -gost -hue
GOST GOST
MD5 -barycentric -md5 -barycentric -md5 -hue
MD5 MD5
SHA1 -barycentric -sha1 -barycentric -sha1 -hue
SHA1 SHA1
WHIRLPOOL -barycentric -whirlpool -barycentric -whirlpool -hue
WHIRLPOOL WHIRLPOOL

Bilinear Interpolate

echo -n emcconville | vizsum -bilinear sumimg.png
Digest Flag Hue only
Adler32 -bilinear -adler32 -bilinear -adler32 -hue
same as -hue adler32
GOST -bilinear -gost -bilinear -gost -hue
GOST GOST
MD5 -bilinear -md5 -bilinear -md5 -hue
MD5 MD5
SHA1 -bilinear -sha1 -bilinear -sha1 -hue
SHA1 SHA1
WHIRLPOOL -bilinear -whirlpool -bilinear -whirlpool -hue
WHIRLPOOL WHIRLPOOL

Inverse Interpolate

echo -n emcconville | vizsum -inverse sumimg.png
Digest Flag Hue only
Adler32 -inverse -adler32 -inverse -adler32 -hue
same as -hue adler32
GOST -inverse -gost -inverse -gost -hue
GOST GOST
MD5 -inverse -md5 -inverse -md5 -hue
MD5 MD5
SHA1 -inverse -sha1 -inverse -sha1 -hue
SHA1 SHA1
WHIRLPOOL -inverse -whirlpool -inverse -whirlpool -hue
WHIRLPOOL WHIRLPOOL

Shepards Interpolate

echo -n emcconville | vizsum -shepards sumimg.png
Digest Flag Hue only
Adler32 -shepards -adler32 -shepards -adler32 -hue
same as -hue adler32
GOST -shepards -gost -shepards -gost -hue
GOST GOST
MD5 -shepards -md5 -shepards -md5 -hue
MD5 MD5
SHA1 -shepards -sha1 -shepards -sha1 -hue
SHA1 SHA1
WHIRLPOOL -shepards -whirlpool -shepards -whirlpool -hue
WHIRLPOOL WHIRLPOOL

Voronoi Interpolate

echo -n emcconville | vizsum -voronoi sumimg.png
Digest Flag Hue only
Adler32 -voronoi -adler32 -voronoi -adler32 -hue
same as -hue adler32
GOST -voronoi -gost -voronoi -gost -hue
GOST GOST
MD5 -voronoi -md5 -voronoi -md5 -hue
MD5 MD5
SHA1 -voronoi -sha1 -voronoi -sha1 -hue
SHA1 SHA1
WHIRLPOOL -voronoi -whirlpool -voronoi -whirlpool -hue
WHIRLPOOL WHIRLPOOL

fin

Suggestions, comments, and requests are welcome.

You can’t perform that action at this time.