🖼️
🎨

GitHub Icons Demo

Compare image hashing results between Dart and Python implementations using real GitHub icon datasets. Icons are clustered by their perceptual hash similarity.

Select Hashing Algorithm

🎯

Dart Implementation

Fast and simple hashing

🐍

Python Implementation

Fast and simple hashing

Hash: ffe3c19d9d99c0fc

2 similar icons
search.svg
search-outline.svg

Hash: ffc399b9b981c1ff

2 similar icons
search.svg
search-outline.svg

Hash: fffffcf8ddc3e7ff

2 similar icons
checkmark.svg
checkmark-outline.svg

Hash: fffff9b183c7efff

2 similar icons
checkmark.svg
checkmark-outline.svg

Hash: ffe9c081c18180dd

2 similar icons
pause-circle.svg
minus-circle.svg

Hash: ffc381808081c1e7

6 similar icons
pause-circle.svg
stop-circle.svg
info.svg
alert-circle.svg
clock.svg
behance.svg

Hash: fffff3e1f3f3c3ff

2 similar icons
corner-right-up.svg
corner-right-up-outline.svg

Hash: fff7c1c1f7c7c7ff

2 similar icons
corner-right-up.svg
corner-right-up-outline.svg

Hash: ffff908080ff80ff

2 similar icons
list.svg
list-outline.svg

Hash: ffff81818181e1ff

2 similar icons
list.svg
list-outline.svg

Hash: fffffbf9c0f9fbff

2 similar icons
arrow-forward.svg
arrow-forward-outline.svg

Hash: fff7f38181f3f3ff

2 similar icons
arrow-forward.svg
arrow-forward-outline.svg

Hash: fffff9f9c0d9dfff

2 similar icons
corner-up-right.svg
corner-up-right-outline.svg

Hash: fffffbc1819b9fff

2 similar icons
corner-up-right.svg
corner-up-right-outline.svg

Hash: ffef8ce9f3c58cce

2 similar icons
scissors.svg
scissors-outline.svg

Hash: ff9d89c3e3898ddf

2 similar icons
scissors.svg
scissors-outline.svg

Hash: ffcf80debedd80fc

2 similar icons
repeat.svg
repeat-outline.svg

Hash: ff8380dcbf8181fd

4 similar icons
repeat.svg
flip-2.svg
flip-2-outline.svg
repeat-outline.svg

Hash: ffff808080ff81ff

2 similar icons
menu-2.svg
menu-2-outline.svg

Hash: ffff8181818181ff

4 similar icons
menu-2.svg
menu.svg
menu-outline.svg
menu-2-outline.svg

Hash: fffbf0e0c1c3dfc0

2 similar icons
edit-2.svg
edit-2-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: ffffe3c1f7f7f1ff

2 similar icons
corner-left-up.svg
corner-left-up-outline.svg

Hash: ffe7c3c3e7e1f1ff

2 similar icons
corner-left-up.svg
corner-left-up-outline.svg

Hash: ffffffff90d4ffff

2 similar icons
more-horizontal.svg
more-horizontal-outline.svg

Hash: ffffff8080ffffff

2 similar icons
more-horizontal.svg
more-horizontal-outline.svg

Hash: ffffffefe1f3ffff

2 similar icons
chevron-down.svg
chevron-down-outline.svg

Hash: ffffffc3c3e7ffff

2 similar icons
chevron-down.svg
chevron-down-outline.svg

Hash: ffff80cf80df80ff

2 similar icons
menu-arrow.svg
menu-arrow-outline.svg

Hash: ffc18181819381ff

2 similar icons
menu-arrow.svg
menu-arrow-outline.svg

Hash: ffcf8581cdedc0fd

2 similar icons
crop.svg
crop-outline.svg

Hash: ffdf83d9d9c0e1fb

2 similar icons
crop.svg
crop-outline.svg

Hash: ffffe7f3fbe3e7ff

2 similar icons
arrow-ios-forward.svg
arrow-ios-forward-outline.svg

Hash: ffefe7e3f3e7efff

2 similar icons
arrow-ios-forward.svg
arrow-ios-forward-outline.svg

Hash: ffe1c496b69e9cc5

2 similar icons
power.svg
power-outline.svg

Hash: f7c185a434bc81e3

2 similar icons
power.svg
power-outline.svg

Hash: ffe9c89efe9e9cc1

2 similar icons
radio-button-off.svg
radio-button-off-outline.svg

Hash: e7c19d3c3cbc81e3

2 similar icons
radio-button-off.svg
radio-button-off-outline.svg

Hash: ffffcfc5e1f1e1ff

2 similar icons
diagonal-arrow-right-down.svg
diagonal-arrow-right-down-outline.svg

Hash: ffffcbc1e1c1e3ff

2 similar icons
diagonal-arrow-right-down.svg
diagonal-arrow-right-down-outline.svg

Hash: ffffe5e1c3c9e1ff

2 similar icons
arrowhead-left.svg
arrowhead-left-outline.svg

Hash: fffde9c393c9e9ff

2 similar icons
arrowhead-left.svg
arrowhead-left-outline.svg

Hash: fff3e3d48094e3eb

2 similar icons
move.svg
move-outline.svg

Hash: ffe7e38180c5e3f7

2 similar icons
move.svg
move-outline.svg

Hash: fffffff7e3e9ffff

2 similar icons
chevron-up.svg
chevron-up-outline.svg

Hash: ffffffe3c3dbffff

2 similar icons
chevron-up.svg
chevron-up-outline.svg

Hash: ffc380999492dfc2

2 similar icons
checkmark-square.svg
checkmark-square-outline.svg

Hash: ff83bdbba4bc81c3

2 similar icons
checkmark-square.svg
checkmark-square-outline.svg

Hash: fffff7d7d4d4d4d4

2 similar icons
bar-chart.svg
bar-chart-outline.svg

Hash: fff7e787858585ff

2 similar icons
bar-chart.svg
bar-chart-outline.svg

Hash: fffffef480f0f4fd

2 similar icons
log-in.svg
log-in-outline.svg

Hash: fff9e98581e5f9ff

2 similar icons
log-in.svg
log-in-outline.svg

Hash: ffffefe7f3f3f7ff

2 similar icons
chevron-right.svg
chevron-right-outline.svg

Hash: ffffe7e3e3e7ffff

2 similar icons
chevron-right.svg
chevron-right-outline.svg

Hash: ffffc988a29f88ff

2 similar icons
link.svg
link-outline.svg

Hash: ffff89202688dbff

2 similar icons
link.svg
link-outline.svg

Hash: ffffdfd9c0c0f9ff

2 similar icons
corner-down-right.svg
corner-down-right-outline.svg

Hash: ffff9b91c1f1f3ff

2 similar icons
corner-down-right.svg
corner-down-right-outline.svg

Hash: ffffe7e3e1e1e7ff

2 similar icons
arrow-right.svg
arrow-right-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: ffe1c9c0a8b0a5c5

2 similar icons
at.svg
at-outline.svg

Hash: f7c381829881cbe3

2 similar icons
at.svg
at-outline.svg

Hash: ffffcfddc0dccddf

2 similar icons
log-out.svg
log-out-outline.svg

Hash: ff9f998181999fff

2 similar icons
log-out.svg
log-out-outline.svg

Hash: fffffcf4d4d4d4d4

2 similar icons
bar-chart-2.svg
bar-chart-2-outline.svg

Hash: fffdfde5858585ff

2 similar icons
bar-chart-2.svg
bar-chart-2-outline.svg

Hash: bfb7f7f7e1f3c0c1

2 similar icons
download.svg
download-outline.svg

Hash: 3fe7e7c3c3f781ff

2 similar icons
download.svg
download-outline.svg

Hash: fffff8f8f9c7c7cf

4 similar icons
expand.svg
collapse.svg
collapse-outline.svg
expand-outline.svg

Hash: fff1f1f18f8f8fff

4 similar icons
expand.svg
collapse.svg
collapse-outline.svg
expand-outline.svg

Hash: ffffc3f3f3e1e1f3

2 similar icons
corner-right-down.svg
corner-right-down-outline.svg

Hash: ffcfc7f7c1c1e3ff

2 similar icons
corner-right-down.svg
corner-right-down-outline.svg

Hash: ffffc3c9e5e1c3ff

2 similar icons
arrowhead-right.svg
arrowhead-right-outline.svg

Hash: fff7d3c9e9c397ff

2 similar icons
arrowhead-right.svg
arrowhead-right-outline.svg

Hash: ffe9c88ef69898c1

2 similar icons
slash.svg
slash-outline.svg

Hash: f7c19dac36b889e3

2 similar icons
slash.svg
slash-outline.svg

Hash: ffffa898c080d4f7

2 similar icons
radio.svg
radio-outline.svg

Hash: fffd98000081f7ff

2 similar icons
radio.svg
radio-outline.svg

Hash: fffff3c1c5e3c9ff

2 similar icons
arrowhead-up.svg
arrowhead-up-outline.svg

Hash: fff7c389e7c1d9ff

2 similar icons
arrowhead-up.svg
arrowhead-up-outline.svg

Hash: ffffc9cc9f9cc9ff

2 similar icons
code.svg
code-outline.svg

Hash: fffbc99c3c99dbff

2 similar icons
code.svg
code-outline.svg

Hash: ffc080bea68e868e

2 similar icons
cast.svg
cast-outline.svg

Hash: ff81bc9c8c8485ff

2 similar icons
cast.svg
cast-outline.svg

Hash: fffff3f3e7e7f3ff

2 similar icons
arrow-ios-back.svg
arrow-ios-back-outline.svg

Hash: fff3e3c7c7e7f3ff

2 similar icons
arrow-ios-back.svg
arrow-ios-back-outline.svg

Hash: ffff8a80f7e080fd

2 similar icons
shuffle-2.svg
shuffle-2-outline.svg

Hash: fffd81e5e78199ff

2 similar icons
shuffle-2.svg
shuffle-2-outline.svg

Hash: ffe1e19eeb80ffc3

2 similar icons
hash.svg
hash-outline.svg

Hash: ffeb8181c381d7ff

2 similar icons
hash.svg
hash-outline.svg

Hash: fffff7f7c0f7f7f7

2 similar icons
plus.svg
plus-outline.svg

Hash: ffe7e78181e7e7ff

2 similar icons
plus.svg
plus-outline.svg

Hash: fff7c1c1e3e1c1f3

2 similar icons
bluetooth.svg
bluetooth-outline.svg

Hash: fff7c3c3e7c3e3ff

2 similar icons
bluetooth.svg
bluetooth-outline.svg

Hash: ffffe3c1d5f7f7f7

2 similar icons
arrow-upward.svg
arrow-upward-outline.svg

Hash: ffe7c381e7e7e7ff

2 similar icons
arrow-upward.svg
arrow-upward-outline.svg

Hash: ffffc080c1e1e3f7

2 similar icons
wifi.svg
wifi-outline.svg

Hash: ffc38080c1e3e7ff

2 similar icons
wifi.svg
wifi-outline.svg

Hash: ffffefcfc1cdedff

2 similar icons
corner-up-left.svg
corner-up-left-outline.svg

Hash: ffefcf8381c9f9ff

2 similar icons
corner-up-left.svg
corner-up-left-outline.svg

Hash: ffe7c2c1e7c3c181

2 similar icons
person-done.svg
person-remove.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: ffffcdc1e3e1c9ff

2 similar icons
close.svg
close-outline.svg

Hash: ffffc9c3e3c1dbff

2 similar icons
close.svg
close-outline.svg

Hash: ffe6c0bd9f9dc8e1

2 similar icons
refresh.svg
refresh-outline.svg

Hash: ffc191bfbf9dc1e7

2 similar icons
refresh.svg
refresh-outline.svg

Hash: ffff8096f7f7f7e3

2 similar icons
text.svg
text-outline.svg

Hash: ff8180e7e7e7e3e7

2 similar icons
text.svg
text-outline.svg

Hash: ffffd4c1cbe1c0d9

2 similar icons
percent.svg
percent-outline.svg

Hash: ffcd89c3e3c191fb

2 similar icons
percent.svg
percent-outline.svg

Hash: ffe1c19e9e9e9ee0

2 similar icons
square.svg
square-outline.svg

Hash: ff81bcbcbcbc81c3

2 similar icons
square.svg
square-outline.svg

Hash: fffce08089e1f1f3

2 similar icons
paper-plane.svg
paper-plane-outline.svg

Hash: fff9c101c1e3f3f3

2 similar icons
paper-plane.svg
paper-plane-outline.svg

Hash: fff0f0fb9185939f

2 similar icons
link-2.svg
link-2-outline.svg

Hash: fbe1e494a53f87cf

2 similar icons
link-2.svg
link-2-outline.svg

Hash: fffff8fc81c5e3ff

2 similar icons
done-all.svg
done-all-outline.svg

Hash: fffff0a181c3ffff

2 similar icons
done-all.svg
done-all-outline.svg

Hash: ffe3c9c1c1c1dde1

2 similar icons
attach-2.svg
attach-2-outline.svg

Hash: ffc7c3c1c1c3c3e7

2 similar icons
attach-2.svg
attach-2-outline.svg

Hash: ff9f8480c1e1e0f4

2 similar icons
wifi-off.svg
wifi-off-outline.svg

Hash: ff838080c3e3f5ff

2 similar icons
wifi-off.svg
wifi-off-outline.svg

Hash: fffff1f7f7c1c3f7

2 similar icons
corner-left-down.svg
corner-left-down-outline.svg

Hash: fff1e1e7e3c3e7ff

2 similar icons
corner-left-down.svg
corner-left-down-outline.svg

Hash: ffcf80cebedd80fe

2 similar icons
flip-2.svg
flip-2-outline.svg

Hash: ff8380dcbf8181fd

4 similar icons
repeat.svg
flip-2.svg
flip-2-outline.svg
repeat-outline.svg

Hash: ffe3cc98a08a9cd1

2 similar icons
checkmark-circle.svg
checkmark-circle-outline.svg

Hash: f7c79db922b481e3

2 similar icons
checkmark-circle.svg
checkmark-circle-outline.svg

Hash: ffffd3c3c3c1f9ff

2 similar icons
diagonal-arrow-left-up.svg
diagonal-arrow-left-up-outline.svg

Hash: ffffc3c7c3d1fbff

2 similar icons
diagonal-arrow-left-up.svg
diagonal-arrow-left-up-outline.svg

Hash: ffffe7cfc0cfe7ff

2 similar icons
arrow-back.svg
arrow-back-outline.svg

Hash: ffefcf8181cfefff

2 similar icons
arrow-back.svg
arrow-back-outline.svg

Hash: ffffe9e1e1e1e9ff

2 similar icons
skip-back.svg
skip-back-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: ffffe3e9f1f7f7f7

2 similar icons
question-mark.svg
question-mark-outline.svg

Hash: ffe7c3dbe3e7e7ff

2 similar icons
question-mark.svg
question-mark-outline.svg

Hash: ffe3e198fc8ca8f1

2 similar icons
sync.svg
sync-outline.svg

Hash: ffc398b89f1d83e7

2 similar icons
sync.svg
sync-outline.svg

Hash: ffe4ca98929e9ee0

2 similar icons
external-link.svg
external-link-outline.svg

Hash: ff81b8b3b4bc81c3

2 similar icons
external-link.svg
external-link-outline.svg

Hash: fff7f3fff3f7f3f3

2 similar icons
more-vertical.svg
more-vertical-outline.svg

Hash: ffe7e7e7e7e7e7e7

2 similar icons
more-vertical.svg
more-vertical-outline.svg

Hash: fffcf9888f81f8fc

2 similar icons
share.svg
share-outline.svg

Hash: fff9f1878fe1f9ff

2 similar icons
share.svg
share-outline.svg

Hash: ffffffe3e1c1ffff

2 similar icons
arrow-up.svg
arrow-up-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: fff79088d480f4f7

2 similar icons
shake.svg
shake-outline.svg

Hash: ffa580181881e7ff

2 similar icons
shake.svg
shake-outline.svg

Hash: fffde0c5898193c7

2 similar icons
attach.svg
attach-outline.svg

Hash: fff1e1c1818387ff

2 similar icons
attach.svg
attach-outline.svg

Hash: ffffe7c784f1f1fb

2 similar icons
activity.svg
activity-outline.svg

Hash: ffefc78480f3f3ff

2 similar icons
activity.svg
activity-outline.svg

Hash: ffe9c8aac598b0c9

2 similar icons
globe.svg
globe-outline.svg

Hash: ffc389888099c1e7

2 similar icons
globe.svg
globe-outline.svg

Hash: ffffffd9c9e3ffff

2 similar icons
arrow-ios-downward.svg
arrow-ios-downward-outline.svg

Hash: ffffff89c1e7ffff

2 similar icons
arrow-ios-downward.svg
arrow-ios-downward-outline.svg

Hash: ffffc8c0ebe2ccd9

2 similar icons
shuffle.svg
shuffle-outline.svg

Hash: fff9d9e1e7c999ff

2 similar icons
shuffle.svg
shuffle-outline.svg

Hash: fffffff3c1cdffff

2 similar icons
arrow-ios-upward.svg
arrow-ios-upward-outline.svg

Hash: fffff7c381ddffff

2 similar icons
arrow-ios-upward.svg
arrow-ios-upward-outline.svg

Hash: fffffdc9c3d7c3ff

2 similar icons
diagonal-arrow-left-down.svg
diagonal-arrow-left-down-outline.svg

Hash: ffffd9d3c7c3c3ff

2 similar icons
diagonal-arrow-left-down.svg
diagonal-arrow-left-down-outline.svg

Hash: ffffe1e1f1e5cfff

2 similar icons
diagonal-arrow-right-up.svg
diagonal-arrow-right-up-outline.svg

Hash: ffffc1f1e1c9dfff

2 similar icons
diagonal-arrow-right-up.svg
diagonal-arrow-right-up-outline.svg

Hash: 0303fff7e5e1f7f7

2 similar icons
upload.svg
upload-outline.svg

Hash: 037fffe3c3e7e7ff

2 similar icons
upload.svg
upload-outline.svg

Hash: ffffbf9bc0ecf8ff

2 similar icons
trending-down.svg
trending-down-outline.svg

Hash: ffff9f83c0f8f9ff

2 similar icons
trending-down.svg
trending-down-outline.svg

Hash: ffe3ddbebea2d0e1

2 similar icons
smiling-face.svg
smiling-face-outline.svg

Hash: f7c19dbc208081e3

2 similar icons
smiling-face.svg
smiling-face-outline.svg

Hash: ffffedc1d1c9e3ff

2 similar icons
arrowhead-down.svg
arrowhead-down-outline.svg

Hash: ffdfc9e399c3e7ff

2 similar icons
arrowhead-down.svg
arrowhead-down-outline.svg

Hash: ffd5c8d9dddd8dc1

2 similar icons
flip.svg
flip-outline.svg

Hash: ffc99899999981f3

2 similar icons
flip.svg
flip-outline.svg

Hash: fffff7f7f7c1e3f7

2 similar icons
arrow-downward.svg
arrow-downward-outline.svg

Hash: ffe7e7e781c1e7ff

2 similar icons
arrow-downward.svg
arrow-downward-outline.svg

Hash: ffff808080ff80ff

2 similar icons
menu.svg
menu-outline.svg

Hash: ffff8181818181ff

4 similar icons
menu-2.svg
menu.svg
menu-outline.svg
menu-2-outline.svg

Hash: ffffd9c48380c9ff

2 similar icons
code-download.svg
code-download-outline.svg

Hash: ffffc184a081dbff

2 similar icons
code-download.svg
code-download-outline.svg

Hash: fffffce4c0c1e7ff

2 similar icons
corner-down-left.svg
corner-down-left-outline.svg

Hash: fffdedc981cfefff

2 similar icons
corner-down-left.svg
corner-down-left-outline.svg

Hash: ffffffffc0bfffff

2 similar icons
minus.svg
minus-outline.svg

Hash: ffffff8181ffffff

2 similar icons
minus.svg
minus-outline.svg

Hash: fffff08181f3f3f3

2 similar icons
navigation-2.svg
navigation-2-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: fffffff3e7f3f3ff

2 similar icons
chevron-left.svg
chevron-left-outline.svg

Hash: fffff3e7e7e3ffff

2 similar icons
chevron-left.svg
chevron-left-outline.svg

Hash: fffffc80f9cf80cf

2 similar icons
swap.svg
swap-outline.svg

Hash: fffb8181df8181ff

2 similar icons
swap.svg
swap-outline.svg

Hash: fffffe9cc8c094f7

2 similar icons
eye-off-2.svg
eye-off-2-outline.svg

Hash: ffffbc9d8181e7ff

2 similar icons
eye-off-2.svg
eye-off-2-outline.svg

Hash: fffff8f8c0c39fff

2 similar icons
trending-up.svg
trending-up-outline.svg

Hash: fffff0c8c097bfff

2 similar icons
trending-up.svg
trending-up-outline.svg

Hash: ffe7c0c0e7d39999

3 similar icons
person-delete-outline.svg
person-remove-outline.svg
person-add-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

Hash: ffe9c896f69694c1

2 similar icons
alert-circle-outline.svg
info-outline.svg
🔍

No corresponding cluster found

The Python implementation did not group these icons in the same way

How It Works

📥

Collect Icons

Icons are collected from popular GitHub repositories like Eva Icons and Feather Icons.

🔢

Generate Hashes

Each icon is converted to PNG and processed through both Dart and Python implementations. Regular and z-transform variants are available.

🎯

Cluster Similar

Icons with identical hashes are grouped together, showing visually similar icons.

🔄 Z-Transform Variants

Z-transform variants (marked with orange border) apply histogram equalization preprocessing to normalize image brightness and contrast before hashing. This can improve clustering accuracy for images with varying lighting conditions.

Regular Algorithms

Process images directly with their original pixel values and lighting.

Z-Transform Variants

Apply histogram equalization first, then hash the normalized image.

📊 Data Source

This demo uses sample data showing how the icon clustering would work. The actual implementation processes thousands of real GitHub icons from repositories like Eva Icons and Feather Icons.

© 2025 dart_imagehash. Built with ❤️ using Svelte and Tailwind CSS.