<>

Introducing Based64: ASCII art that compiles to binary images and more

by Breck Yunits

September 5, 2026
.............."",,,,""""""","""''"'.'"''..'.'``",..',,""`.......
................'""""""""""''"""""""'.'",''.""",'""``...........
............`""""""",,""""","""""""'."''"...""'''...............
.......'....''.'"""","""""",,,,"""""",,""","",,,"'`""'".........
.......'..`"`"'""'"""""""""""""""""""""'.'"""",,,"`""'''........
.......'....""'""","""""""""""""""""'""'""''"'''""""'...........
............",",""""""""""""""""""""''''''""""'""...'...........
........."",,,",,,,,,,,,,,,""""",",,"""""'""""''`.'","''........
.........""",,,,,,,,,,,,,",+~ii:."<i.,"""""""""""....'..........
.....''",,,,,,,,,,,,,,,i)-m8&W&oUmjj)i,,,,,,,,,,""""...`........
.``",",,,,,,,,,,,,,,,,id8%BBB@BBBB%8&j,,,,,,,,,,,,""""""'.......
''"`,,,,,,,,,,,,,liiijWBBBBBBBB@BB%%8#i,,,,,,,,,,,""............
``,,,,,,,,,,,,,,iiii+WBBB$BBBB$$$BB%%8J+,,,,,,,,,,,,""``........
"`",,,,,,,,,,liiiii+J%BBB$BB$BBB$$%BB%Boi,,,,,,,,,,,,,,"`.......
``",,,,,,,,,,liiii+)#BBBBBBB$$B@$$BBBBB%XiiII,,,,,,,,,""`..`....
,,,,,,,,,,,iiiii>++)#BB$$@$BBBB%&8%%BBBBoiiii,,,,,,,,,,"`..`....
,,,,,,,,,,,iiii++))m8B@B&hq00qwQvvLw*%BBW{iiiii,,,,,,,,,,"""``".
,,,,,,,,,,iiii++))j8B%h0Lx|||?|||||xCw&@@diiiii,,,,,,",""'.`....
,,,,,,,,,,iii+++))oBBazvx\||]__|]?]|\xQ8B&+iiii:,,,,,,,"""`"....
,,,,,,,,,,ii+++-))WB8pvx\|??________|\xb%%J<<iii,,,,,,,,,``"".``
,,,,,,,,!iii+++)))oB80v\\|??____??_?|\\L&%k+~<iii,,,,,,,,"`"````
",,,,,,,iii<+++-))oB&Qxx\|]?____??(|||\vh%#+<<iii,,,,,,,,"`..`.`
,,,,,,,:iii~+++)))#B&Qvx\|]______?_?||\\p%&)+~iii:,,,,,,"".."...
,,,,,,,!iii~++-)))#B&Qv\\|?________?||\\0%8)+~iii!,,,,,"""```...
"",,,,,!iii~++-)))WB&Qvx\r\??_?_?\LwLv\\0%8)+~iii!,,,,,,"``"....
",,,,,:!iii<++-)))#B80vvQ0ppC\|?|w*apq0vv8W+++<ii!,,,,,,"```....
",,,,,:!iii~+++)))k@%QzphphapQ|_xwpqLL00v&#++~iii!!,,,,""``.....
,,,,,,,!iii<+++)))j8%0Qp0qobwwx|v0q&opzvv8o+~~iii!I,,,,"""......
"",,,,:!iii<~++1)))WB0vzaooqQQv|xLL0zQv]v*w{+~iiiiI,,,,,""```...
""",,,,!iii<+++-))fp%pvvQvuvCQx||Cv\(?||\0x/+~<iii:,,,,,""````..
",,,,,,!iii<~++-))fCppv\\xxrrvx||x||||?]\0r{+~iii!,,,,,"""``""..
""",,,,:iii<~+++1))Cwpx\\\|?\Cx_|x|___]]\wC>+~iiii!,,,,,,`""""..
""",,,,!!ii<~+++1))uQpv\|__\Cx\__|\r___|\wx++~iii!!,,,,,"``""...
""",,,,:!iii<~++1))fQpv\__|vCQL\\Lxx\__]xQ\++~iii!,,,,,"`..`....
"""",,,,!iii<~++-)))vpQx||xCwppwwpwvr\]\vz++~~iiii!,,,,,"``...`.
'""",,,:!!iii~+++1)))wQv\\Q000QQLLQQQQ\\vf~+~<iii!:,,,""```..``.
''"",,,,!!!ii~+++1)))j0v\vQwwvx\\ruwwQx\vf~~iiiii!!,,,""`.......
"'"",,,,!!!iii~+++-)))0Qv\vwq?>^^lfhCv\vv{~~~iiii!:,,,,"```.`.`.
..'"",,,:!!iii<+++-)))0QzurxQwwLuLQx\v\vz{~~~iiii!,,,,,""```....
..'",,,,:!!!iii~++-)))Y00zv\xxr|((|\rvvzz+~iiiii!!,,,""``.......
...""",,:!!iiii<+++)))j0000vrvvruvr|vQL0f~~~iiii!:,,,,"``.......
...'"",,,:!!iii~+++))))Ypwq0xrLw0Q\\Q00Q}+~~iiii!!:,,,,"`.......
...."",,,:!!iii<+++1)))f0pppQvvxrxvL0qQx{+~~iiii!!:,,""`........
..."",,,:!!!ii<<++-))))Yv0pb0Qv||rL0p0rx0+++~iii!!:,,""`........
...'",,,,:!!iii~++1)))Javv0hb0LvvL0bpv\\hX~+~iii!!:,,,"``.......
....",,,,:!!ii~~+-))))d*xxv0aapppbhpv\|\hO++~~iii!I,,,"`........
..."",,,,:!ii<+++1))))d&x\\vQph**b0v\\|\hY}++~~ii!!,,,,"`.......
...."",,,!!i<+++-1)))jY*v\|\vuuzzz\\|(|xhtt)++~~ii!I,,,"``......
...."",,,iii~++-)))tjXXq0r|?\\(__?(\((\Qhtttt}+~ii!I,,,,``````..
.``"",,,!ii~++))))tXJXjXqC\?(\\|_(|((|vaYtttX{{}~iiiII,,,,^``...
.``,,,,,iii++)))tttjOXXXXpv(?\\ur\(((rpot/{tXtt{}}>iiI,,,,,^^``.
`,,,,,liii++))))fftfYYXXXXqv??\\\\\(\w&X}tttXtttttt+ilI,,,,,^```
,,,,,liii++)))tt)fttXXXXXfXqv??((\\\w&otfXtfJtt}ttttt+iI,,,,,,^^
,,,,liii+{)tttftff{tjXftttttbv(\\\v0*#OtfttfXttttttttt{>l,,,,,^^
,,lllii++)fft{jftfttfXXfjXfUdOv\\vQhokJtt/tXX}tttt}tttt{}>I,,,,^
,llii>+{)tfftttttfttttXXXXmkmdYvvQwqOk#Ot}{Xtttttttttttt{{}i,,,,
llii++)ttt{ftttttftttXXXXOkdOOXzw0QcXm##Jtttttttttttf)tt/{{}i,,,
li>++{tttt}tfttttftttXXfXmOXUUXOhwwXOUmdkjttttt{}tttttttt{}}+il,
i+++){tt{tttXttfff}tttjtXXXXXXUYap0XXUXXUXttttt/ttttttft}{{{ti!I
+++)t{t}ttttf/tttfttttttfftXtXXX*pXXXtXt}tttt}/ttt/}fftt}/{{t}ii
++{t)tt}tttttftfttttt}ttttf}XXtOOXtcXtttttttt/ttttt}fXttt//t}{!!
++tfttttttttcctttt{tt}tttttttXOdtXtttttttt/tttt/tttttt{tttttttiI
+}fftttttt>tXff/tttt{tttttttttOOttttt}tttt}>t/tt>/t{c/}ttt{tttiI
+{XXt/ttttttcXtfft{ttttt}tttttXXXttt)tttt/t/{/t{/t/tttttcttttf}I
Decoded based64 image
Download png
Source
based64
 colors ddddccff ccddccff ddccccff ddccbbff ccccccff ccccbbff bbccbbff ccbbbbff ccbbaaff bbbbbbff bbbbaaff aabbaaff bbaa99ff aaaaaaff aaaa99ff dd9988ff 99aa99ff cc9988ff cc9977ff aa9999ff aa9988ff 999999ff 999988ff cc8888ff cc8877ff bb8877ff aa8888ff 998888ff 998877ff 888877ff bb7777ff bb7766ff aa7777ff aa7766ff 997777ff 997766ff 887777ff 887766ff 777777ff 777766ff aa6666ff 996666ff 996655ff 886655ff 776666ff 666666ff 885555ff 775555ff 775544ff 665555ff 665544ff 555555ff 664444ff 664433ff 554444ff 554433ff 444444ff 444433ff 443333ff 333322ff 332222ff 222222ff 222211ff 221111ff
 .............."",,,,""""""","""''"'.'"''..'.'``",..',,""`.......
 ................'""""""""""''"""""""'.'",''.""",'""``...........
 ............`""""""",,""""","""""""'."''"...""'''...............
 .......'....''.'"""","""""",,,,"""""",,""","",,,"'`""'".........
 .......'..`"`"'""'"""""""""""""""""""""'.'"""",,,"`""'''........
 .......'....""'""","""""""""""""""""'""'""''"'''""""'...........
 ............",",""""""""""""""""""""''''''""""'""...'...........
 ........."",,,",,,,,,,,,,,,""""",",,"""""'""""''`.'","''........
 .........""",,,,,,,,,,,,,",+~ii:."<i.,"""""""""""....'..........
 .....''",,,,,,,,,,,,,,,i)-m8&W&oUmjj)i,,,,,,,,,,""""...`........
 .``",",,,,,,,,,,,,,,,,id8%BBB@BBBB%8&j,,,,,,,,,,,,""""""'.......
 ''"`,,,,,,,,,,,,,liiijWBBBBBBBB@BB%%8#i,,,,,,,,,,,""............
 ``,,,,,,,,,,,,,,iiii+WBBB$BBBB$$$BB%%8J+,,,,,,,,,,,,""``........
 "`",,,,,,,,,,liiiii+J%BBB$BB$BBB$$%BB%Boi,,,,,,,,,,,,,,"`.......
 ``",,,,,,,,,,liiii+)#BBBBBBB$$B@$$BBBBB%XiiII,,,,,,,,,""`..`....
 ,,,,,,,,,,,iiiii>++)#BB$$@$BBBB%&8%%BBBBoiiii,,,,,,,,,,"`..`....
 ,,,,,,,,,,,iiii++))m8B@B&hq00qwQvvLw*%BBW{iiiii,,,,,,,,,,"""``".
 ,,,,,,,,,,iiii++))j8B%h0Lx|||?|||||xCw&@@diiiii,,,,,,",""'.`....
 ,,,,,,,,,,iii+++))oBBazvx\||]__|]?]|\xQ8B&+iiii:,,,,,,,"""`"....
 ,,,,,,,,,,ii+++-))WB8pvx\|??________|\xb%%J<<iii,,,,,,,,,``"".``
 ,,,,,,,,!iii+++)))oB80v\\|??____??_?|\\L&%k+~<iii,,,,,,,,"`"````
 ",,,,,,,iii<+++-))oB&Qxx\|]?____??(|||\vh%#+<<iii,,,,,,,,"`..`.`
 ,,,,,,,:iii~+++)))#B&Qvx\|]______?_?||\\p%&)+~iii:,,,,,,"".."...
 ,,,,,,,!iii~++-)))#B&Qv\\|?________?||\\0%8)+~iii!,,,,,"""```...
 "",,,,,!iii~++-)))WB&Qvx\r\??_?_?\LwLv\\0%8)+~iii!,,,,,,"``"....
 ",,,,,:!iii<++-)))#B80vvQ0ppC\|?|w*apq0vv8W+++<ii!,,,,,,"```....
 ",,,,,:!iii~+++)))k@%QzphphapQ|_xwpqLL00v&#++~iii!!,,,,""``.....
 ,,,,,,,!iii<+++)))j8%0Qp0qobwwx|v0q&opzvv8o+~~iii!I,,,,"""......
 "",,,,:!iii<~++1)))WB0vzaooqQQv|xLL0zQv]v*w{+~iiiiI,,,,,""```...
 """,,,,!iii<+++-))fp%pvvQvuvCQx||Cv\(?||\0x/+~<iii:,,,,,""````..
 ",,,,,,!iii<~++-))fCppv\\xxrrvx||x||||?]\0r{+~iii!,,,,,"""``""..
 """,,,,:iii<~+++1))Cwpx\\\|?\Cx_|x|___]]\wC>+~iiii!,,,,,,`""""..
 """,,,,!!ii<~+++1))uQpv\|__\Cx\__|\r___|\wx++~iii!!,,,,,"``""...
 """,,,,:!iii<~++1))fQpv\__|vCQL\\Lxx\__]xQ\++~iii!,,,,,"`..`....
 """",,,,!iii<~++-)))vpQx||xCwppwwpwvr\]\vz++~~iiii!,,,,,"``...`.
 '""",,,:!!iii~+++1)))wQv\\Q000QQLLQQQQ\\vf~+~<iii!:,,,""```..``.
 ''"",,,,!!!ii~+++1)))j0v\vQwwvx\\ruwwQx\vf~~iiiii!!,,,""`.......
 "'"",,,,!!!iii~+++-)))0Qv\vwq?>^^lfhCv\vv{~~~iiii!:,,,,"```.`.`.
 ..'"",,,:!!iii<+++-)))0QzurxQwwLuLQx\v\vz{~~~iiii!,,,,,""```....
 ..'",,,,:!!!iii~++-)))Y00zv\xxr|((|\rvvzz+~iiiii!!,,,""``.......
 ...""",,:!!iiii<+++)))j0000vrvvruvr|vQL0f~~~iiii!:,,,,"``.......
 ...'"",,,:!!iii~+++))))Ypwq0xrLw0Q\\Q00Q}+~~iiii!!:,,,,"`.......
 ...."",,,:!!iii<+++1)))f0pppQvvxrxvL0qQx{+~~iiii!!:,,""`........
 ..."",,,:!!!ii<<++-))))Yv0pb0Qv||rL0p0rx0+++~iii!!:,,""`........
 ...'",,,,:!!iii~++1)))Javv0hb0LvvL0bpv\\hX~+~iii!!:,,,"``.......
 ....",,,,:!!ii~~+-))))d*xxv0aapppbhpv\|\hO++~~iii!I,,,"`........
 ..."",,,,:!ii<+++1))))d&x\\vQph**b0v\\|\hY}++~~ii!!,,,,"`.......
 ...."",,,!!i<+++-1)))jY*v\|\vuuzzz\\|(|xhtt)++~~ii!I,,,"``......
 ...."",,,iii~++-)))tjXXq0r|?\\(__?(\((\Qhtttt}+~ii!I,,,,``````..
 .``"",,,!ii~++))))tXJXjXqC\?(\\|_(|((|vaYtttX{{}~iiiII,,,,^``...
 .``,,,,,iii++)))tttjOXXXXpv(?\\ur\(((rpot/{tXtt{}}>iiI,,,,,^^``.
 `,,,,,liii++))))fftfYYXXXXqv??\\\\\(\w&X}tttXtttttt+ilI,,,,,^```
 ,,,,,liii++)))tt)fttXXXXXfXqv??((\\\w&otfXtfJtt}ttttt+iI,,,,,,^^
 ,,,,liii+{)tttftff{tjXftttttbv(\\\v0*#OtfttfXttttttttt{>l,,,,,^^
 ,,lllii++)fft{jftfttfXXfjXfUdOv\\vQhokJtt/tXX}tttt}tttt{}>I,,,,^
 ,llii>+{)tfftttttfttttXXXXmkmdYvvQwqOk#Ot}{Xtttttttttttt{{}i,,,,
 llii++)ttt{ftttttftttXXXXOkdOOXzw0QcXm##Jtttttttttttf)tt/{{}i,,,
 li>++{tttt}tfttttftttXXfXmOXUUXOhwwXOUmdkjttttt{}tttttttt{}}+il,
 i+++){tt{tttXttfff}tttjtXXXXXXUYap0XXUXXUXttttt/ttttttft}{{{ti!I
 +++)t{t}ttttf/tttfttttttfftXtXXX*pXXXtXt}tttt}/ttt/}fftt}/{{t}ii
 ++{t)tt}tttttftfttttt}ttttf}XXtOOXtcXtttttttt/ttttt}fXttt//t}{!!
 ++tfttttttttcctttt{tt}tttttttXOdtXtttttttt/tttt/tttttt{tttttttiI
 +}fftttttt>tXff/tttt{tttttttttOOttttt}tttt}>t/tt>/t{c/}ttt{tttiI
 +{XXt/ttttttcXtfft{ttttt}tttttXXXttt)tttt/t/{/t{/t/tttttcttttf}I

That's my photo, reduced to 64Ă—64 pixels and compiled to Based64, a Base64 + ASCII combination. The text not only compresses the images, it provides a preview of the image, and editing it edits the images.

Try Now

Choose an image, GIF, video, or audio file. Edit the text and watch it change. Everything happens locally.

Less media, same idea

Based64 keeps at most 64Ă—64 pixels and 64 colors per frame. Enough for a face, a diagram, or a short instructional animation.

Simple example:

Below is an image of an arrow:

...$...
..$$$..
.$$$$$.
...$...
Decoded based64 image
Download png
Source
based64
 ...$...
 ..$$$..
 .$$$$$.
 ...$...

Use based64 animation for a flipbook or based64 audio for sound. Dimensions are inferred. Optional colors, delay, and rate settings live inside the block; animation frames start with frame.

Spaces, unfamiliar characters, ragged rows—even an empty drawing—still render. Short rows get padded; oversized drawings get cropped. Scramble away.

One character per pixel. A shared palette keeps animations small. We deliberately throw away detail instead of preserving the original file.

The parser and tests are single Scroll files.

Now ships in Scroll 179.0.0.

npm install -g http://github.com/breck7/scroll

Thanks

Thanks to Sam Altman and the ChatGPT/Astra team for making this possible.