Skip to main content
################################################################################
originally an ascii art graphics library for ssh terminal,
but expanded to include scientific visualization.

this package has 2 main files:
asciiporn/__init__.py ## initialize custom import hook to load main.py
asciiporn/main.py ## contains EVERYTHING

how to enable 256 color in putty: http://www.emacswiki.org/emacs/PuTTY#toc2
how to enable 256 color in xterm: http://www.frexx.de/xterm-256-notes/
how to enable 256 color in screen: http://www.frexx.de/xterm-256-notes/

~ L_ '_-s+ _ ?}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' `{' _~ ` 't` 7~-- ` ^ f@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@@@@@@@@@@@@@@@@@@
_,-),?j{WY+=+j ` ^7^ ` ` H@@@@@@@@@@@@@@@@@@@@@@@MQk9ZIV7=?IM@@@@@@@@@@@@@@@
t' ~``nvi;f*o7L? `L~ ` &#M@M$@@@@@@@@@@@@@@@@@P`/r`,_S^?`>^JT@{M@@@@@@@@@@
rr| + _` _^^LFFLW#W5| > '__`{PRy$y@Wf$N)i'fRM@@@@MM$r`^]g@`{~]{{rg>!'`}@@@@@@@@@
*' '`^!_ ^@&My;r,'p&#MV` 'ujmr)` `Lr( {_`R?@r= `_^'MPM#&B$f1Bp=` -]@@@@@@@@
-r,r9` `_`J]3@$[`P`AVN- -=yE ` _i ` ^`Li~i !YL `kj`'@MNMg@#Wggp{#@@@@@@@@
'` i' l|' F _]I]/#P )vAL >pqA}&_` !J x?g1>LV'i~l+ _ ?Vu__|V@@@@@$${1@@@@@@@@
` '`` '-h$g@@@&$w])#R[X/NF^>-t,r-=`/hTW=~x!'!^`+gg@@&M#&W@@@@Mu#M@@@@@@@@
` _' jg@@@@@M@@@@Mwm@p`#gj/c^ `' 9` v `` _Vg@M@@@@@@M@@M@@@gD{kM@@@@@@
` _ _3H##&@Mg#@@@@@@p#N4@Wu9Mx`` _ `!1 !`| (&@@@W@@@@@@@@$M@M@M@Wj`}M@@@@
!| !_ _[2c3d@M&@@Q$&p@@$@WWM@Wb)/` s-+c `s ' g@$@@$M@@@@@@@M$$@@M$M@$p_=@@@@
_`` +^lYSiH@M@@@@@@Md@@5=aa=EMVp`/`iNL +r `r@&@@@@M$@@@@@@$W@@@@#&#@@@W=(MMM
``, + F'c{^)(@@@@@@@@@@M@=]I7=w])$=_ _J^x``_ q$@@@@@M&g@@@@@#&&&&&&&&@W$$K]J^V
_>!{z-L7Ji_HLYE={[$@@@$$$&=jA][b^^VJ=++v=l_`-Cu@@@&M@MM@@M@MM$M@VMMW@@@@#W&1 =
~?LcY=sVcmggmmA6pk]Q#IVd$==]1scY[ {|){7i!=(q@@EE$@@M$@M&AMM#@@MMN$$$M&M@W 'v
{-L#MMPP%9PM@#&$MWW},`'rUWB|i#!)i_J|V|Vf%AM$MWG@WEg]jyy]{gg]YI?)l{A#@@e _`
`` !tl^ ` ` '?A@@#@Ewy'`^[=kEi}^ !^`v_ dQ=]jw###M@&$$$@$$@@M&mgp1}g]&# +
? ' ` ^#$W$g&wa{8Vh=r_VJ,?_` ]i_g@@@@M@@@@W@#@@@#MM@@@@@@R (WRT
' ` ` ' ' ?@#d3^``e~,V(-`! r`g&@M@F5``' `^^`ff@M@@@@@@@M_ a}i
_ , ``~ ` {` ``, ^_,i-+2 7)_pMF^ ' 's_^ ``` '`>=EM&g[g[A
_ j `>`' { icx_T^'| VV]?/ ` gy`J*|gypPgp ! ` '__ ,_w&&$$N@Mm
_ j ]>' _ ` T/|nr_' '_*wj? `(`-'_g&&@@M#@$Nu! ` ' ` ` !XW@@@$#bd$
,_=!tRL!>^ '~^~` `~ v#&6^- xr@W@&@M@@$@M@hc ^^ T=f3~-({GW$@@@@M@&M
' ' M'j{>vL { ]^R{(! ,Lc]Age}Lv+^]I{$F}][L^jjRCn!x_ `i_wgW{y/=[@@$@M@@@@@$^
+ ' 9[M0P{,,_V/dQL+rVi-wd$##$}yAn@'` _V>'^s')~^W@[c9yCnM&&$$QQ_J@@W@@@&$M#^
! 3#aF]T~^/V4M&4[w{W&WMM5&$Vtt` _t7=yL+VV]@W&73^i7E=p#]&]}b9#MM@MM$`
gEPVCc>]=&M@Wg&Y^kV]@@{#{'`` )NwEe+#Vy]$R[^kk/zL9gwq#&&#U}&@@MN@@p `
~AR-`^}wlvBMVEL{+'/^V^jW=r`V` ' @M@EWMqWP^'=Mj{Vri}2g&NMhgmp@W$@$@M$ + `
` ^ ^MJ__`}~_^)v~It>L' )'-|` T` W$W@W&*T` sZ=m@csX8&NM@@&@#E@AW@@@p{_'
' J{^i+`L`|iLXC _>|^_' >` I@6BW@K j#&ELoll=mEILVM@M&&M%M@MMW@@@$ojL
'izzzv>!|_^(`}+J'YY` '3X@MM@@FS@@WN@B_!{#e@E[ggg@@@&MM]#@@@@@B@g
!_=[j>_[z{p{o_^J=XS;/1__}&MgpWgpj#mgpp{GY sQq#&wMW@@@B$N###@M@M@@@
`kW{AA[}@#tts |`31&]WwaW]AV$A@@M@M@@&@M@C '=YWV[Q[F$G&a@@@@MM@@@@
'C|VC=)t>)^! ~`^^3pIJ}Wg==}P[@$FEMA@V$wVT !!1,>(||`s=@M#$@@@@@@@@
'&[ Y['(v^^ J` _``*J^dYVe]_={y$=@>=[L'wVI&Ae _{=NgZ(ccg##=WWMM@@@@#MWP
' |]!@WR }u{cc!L '{>{|`7^ iJC}}JM+xY^Y9'`^_`YzYVA1{@X@@M==^IXe@W@@@M@@@@@l=
,__wkV'L'#M_`JYC(i'C_Y+cj '` ``o]=!V^|-^jjxCr^(`M'T'&Aq#MW@bk@a$8$&@#@$@@R'i=]
yWV=y??T)+!?XE`_')*c/|vJ^^ ^~s r+ri` /vtt ^`^-s(^(oVw]$#$dmB&$A8#q&M@#Wl+'-{A
@$4=a])=VJ'L>>^+ '-C-ir{i__ >~>'`t`)r^>(i-J7_?~ ,i}z==VY=&]e49@#@@A&@@l^(^_?}^T
WGiY/[kzt'=^r_` _ (}__ C ` {`>rLx' ~=(n~`'Y'_r_Jc`,'(`wVC7^Y0M$VJ !'-x_^^Y +
&J|-~vVr^'{ '|| >L Ji`' _ l^ ^ i'''vT ' _~` ! ` ^~7W[V^ J__' i`|`7>>ju^C-
=[`+T+! `'`_!{x_?+'` L _J ^i~iJ` `V~']=(sCY+> '~ s(1]@-Ll' _>`!| ` l, L^!VF
L-~'| - 'Jt!!t-^`` t{J'^` `t`'c!C^`V'^ VkLL/r' >''i]+' |';V'_-`Y^s!L{+ ,tTi{rr
X2!^` {V(_?*/C~`|'Y ```>'~'`~`l'`{?|+7tVliiiJ{ - c ^)' r `-`'YV Lit+{Tv+!!r_
`})>i -S^==l[i-` Y~ i_~ o^?-!x'^Ltr*VL?S=) ~7 V``' L `|` C` ` _ `^!`i!vs)^)-r
~_( ^`zzzL1|`Yv^`!! ~(`t+t!|l t`^ ov-+t~!Y^` `,_``(!_ `'~ `` 'Y' |- ^^ s|F(`?k
`_=V'?oL*v ` ~ ?t`'_ ^)- V _|rJc{ L>)_^]v;{`|`> )`x _ x_s= ' ' `- ``iT)s7i-r
LL]iCinji ^ ,`'- ``vX_C+l` -Yr>r2#&M-}=]?J={`|~ '' ''~ > `- ~{_`, `+''^!?,`X
j-}vVL+ ^`_ !)v>_L(~r| ^'` vL`xc&@WM//o{Y_MM^'`T -'' x''x _ C)!(^v` `_(i ` tJ!
>c[/|`' ^ VL|J'+f|^VLL!)Yt^Vi'J-t@##jVVVJ?Vfl '> r`xV'J,`|` V>>ii`^- '_ `)^ '
`~^_(! c_JL(CiJ?xiTv`!s{^ L,`_Y $MKt_]]^~(V + g` `L ++ ! ?~ `( JV> _
` T}=`{=- 7ut,^u^LL=iir_ i_`_Li' @8_f~[!{uS__ ``` #@& 7'TC_^o t_ *``'`{' >-
Y)~:->vrx-YYtcoYJJx''?_)_tj^ viu{c3|/]-n`'' V'i &]NC J>^_ ` ^!`/{` J' ^V `{?
' tt-v{ lT !|+{-Lii )^L)`*oviYJJ-o{zY{{'L!>`V&&g _ @&Akv V^)vYx!' ` ^`_ ` +L>
(lr=-r)J+u| x^i ?`_+`C;ni,vVVt7S|)/lT~|` dM@Mp UAN&E s ~^i`_ i (_'' > _ )
>x>t+__>~`r?`^~(`) -`'+uLfcc{jj-}-|^(+=->Vs@@b@$&@*-`_ ``` `v` ^ -`(L- _` {
V _]>r`~` ! ``( ~(-lrTx{7{tVVLwgp{yvV|![|^=M@W&BmWW Ci^``| {|l^``' _V _ >
pp (gM@K` ` '' t`'- {-t+zz_=iyb&@@M@MNF]?V'~%#@#@@M@&/^agpp ^ ` |'!i! ''_~ C`
NWagM$P 'v~rs's' !?==|^Sc[=LzA&@@#W@#@E1^=^ &$&A$M@&@$@M@@$`' ` ``_ |||)_```
&W@@$''LMMj^`si V>>zV=^jF=-^'cT#@@@@B@M##WVTJ&#@M@MgM&$@N@MM# c` 'x' !-''rrr '
&&&A^ @&@$#P```i^?=7Vt^V*V===sy$&@M@M&@WM@^`VW@@M@@@@MgIb}ZW > ' ' { '_ _ ^,
@Me' m#M@#A _f=[k^_?V{JJ{`}8^@WN@@M#MM@n+tq@@W$$$M@@MM@W&^^ `{~ ~ _ C``'{
#M ` {ZA@WW@c?=j=-{ifYV^rYV=)rFV@&Z#M#W$Lvs }M@@M@@@6$MMMM_ ^ ``''^ r` s''L(
} `'' @MM@$@=_bvrt(^^i-}-_jt=-jz('FMM@{zJTs_?@P3@$#M@Bb7^` -`T `` ^)iJ_J >L^J;
W _`nB#@M#T_V+tSc{L >Vrr]+=|*jSi=L* oAr^bi o]s_w3K@{@~` '_ ` `^ ' ` ``|)~r
^` r^x@Li=]{)!^>cVxJ>(V~t^J3i^=}!>[zr,7ztt{_ ^#XFwu9#]yj^ ' `l `7' ~s !t`7^
x ^kT` '{i{! jNT~>^-'-jb-{TTVr|!'*r-xcVt ! `))]W[_g9d&>` ` ``v`t|| ' _ 7tc+
[ J/C`~{Yt!y+)`xJ))))J=L!ri)=V=LJn-i-^f7X7 _!r]@mMQ@@AAv _` J'i`l't_{`i!_iCJ
W^_Jk=v`|,LwT>_^rr||||VL3__=r=i^ _ Y'xtXj`^_ _-^Z#sMU&j2{ ^ J |'t7v 'i!n)
zL''?^`_?YLr^ sr|TV-+?!'+|[Y]'CY]jY^?i+iuL> ^ --Tsja]kIgL, `_ ~i` _ '- >`'-jLu
!C ` `w3Y^ `~(-+--3~sJ71l^i^^L>|?{+^``L - ` ^ ^>7cmQdkzC & '_`'`L' ```(?_' ~ll
r r`+vvr~ xJ__==={f=Ls_L7iVr V?T3`l`-]'t|^_ ' Y`=u}l^ s ]` -' ' `,|_i`t`t~,Lr
-+7 !_^+(----'VSVc>zzl?`L=~ioV'x`^)*>T` x+>77'^ %$` !!^~'` !x``'{`Y[-
``V{ ` Vrr-)?///?VC~l?>zx|_st{-oJ!xf+>!{=r! _ _ #$` ! `| `J,`` `!`!~
L`+_Jvi7++^='r?+n^T?[c!_,S?{{iF~( !^FL~ 'Y ` ' -NNMY ! { >, _,` `i+[
ci ` _`x_rr>_|'r>>`jY( (_kk|`{J)s_^L|V--+ ` ` - !'>)kkMeT s^|T {>L C''^'!-~r

SIDEVIEW Y: Z 0 to 2 Y -0.99983900113 to 1.0 T 0.0 to 7.0 MIN MAX
l?*~_-----_>cC}lTl{7Tx_--------------------------------------------_+*Tll'*+_---
| T, ,r',*l '_ ), .( `-_
| a_ / )_ \_ ,* ,(
| ,C ~C `. , ) )
| ) > \ \ \ / / (
| / / \ '_ ^ ' _^ '
| ( ' '_ `_ ) ' ' ,'
|r _' `c '_ ,' ,' ,
( ' _ c ` , ,' ,
| ' `c c `_ , , .
|' `c _ ` , ,' +
----------------`---------------L-`-------------- --.--------------,'-+--------
| _ c `_ . ,' +
| _ `C ` . ,' +
| c . . ,
| `C , c , , )
| , . ?c ) ) /
| x t . / < /
| \ \ \ ( / _*
| '_ '_ ;C ,' ,'
| x (%) x x _x
| '< _>' ?x_'C >'_r'
|------------------------------`*<____>r------`*<{jy_yj1+*'---------------------

TOPVIEW Z: Z 0.0 to 0.25 (top to bottom) Y -0.9999 to 0.9999 T 0.0 to 7.0
DOGKz1(7Lx\:,-'` `._~>r?;tfVne6H MQpZaV}oTY?+(,!'` `'-_>+|/Cc[]KPRg 8REnVSt7
DOGKX3(7/vi:_-` `-_~iv/YcS{aZqm &8qI4yzts7r~i'-` `-'i~r7stjy4Iq8& dqEa{jtYL
DAG5X3cY/vi~_.` `'-,:|xJT=3y4U9 Wm0EXnFTY?\(_!.` `'!,:\l^)Fn3U9mN m%Za{j=Y?x
DAZ5{jcY?r>~_.` `''!(+lsCf}neR8 $gRI4yz=slx*i'.' `'-_(+rYT2[]GO6D D9U5X3=T?r*
DAZa{jt;?r>!'.` `._~i|/YcoV5GOd BH9GXnF)Y?\:_-'` `.!i~vLstj{3PhbN HqE][fCsx*i
DAZa{jt;l|(!'.` `._~irL7=j{4U9 @D6OK][oT7r*>'.' `'-_(\|Y)FnXGqd# bAZa[ft;l+(~
mqEaVoCsl|(,-' '.,:\vJ)2}yeR8 &bhP3{jts?\:,-'` `.'i*r7Jo[VawmW OG5XSc;?r>!_
mqEnVoCs^+:,-' `'-!(+^;tSkuGOd WmAeV[oTYr*>'.` `'!,(vL^)fy4PhQ 8U4z1cY?ri!'.
mqEnkS)Jx*:_-' `'-~>|l7(j{50h gRZK{jtsl\:,!'` '-'>*|YT2k3U9H Hqwy}27/v\:'.'
mqeukS)Lx*~_.` `.'~|r/)F1ywqH $d9U3}2TY|*>'-` `.!,:v7J=zXGO6W dOZu[fCLv\:,.``
mqeu[fTLv\~'.` `._:*xLtfkueOm #%0EVfcslx:,!'` `-_(+|^)S{KZRg 9IKVSt;x*(,-`
mReu[fT/v\!'.` '-_(+^sco{5Gh @DhP5uF(Y?\>'-' `'!,:vLJ=z]eAHB Hqeu1FTL|i~'.`
mRe][27/ri!''` `'-,>|l;=3z4U8 $89e1noC/r*i!.` `._(+|Ytj{5w%D OZaV2)Jxi~_.`
mRP]}27?ri!-'` `''!ir?72}]PRd #H0a]zt^Lv:_-' `'!i~x7J2}Xeh8 8UKXjts^+:_.` `
dRP]}FY?|>,-' `.'!\vLTSknZA D%I5{ST/|*>!.` `.'(\?;)zyawH# dAPy1FYl|>,-' '
d6Py1F;l|>,-' `._~*xJCjXKI9 $8hGX}oslv:,-' `'!,*r/Cok3IhD 9InkfC/ri~-'` '-
d6wy1=;l+(_.` `-_:+l;c1yw68 #HAKyftY|+>_.` `.'>\L^tjVGOm 86w{oc;x\:_.` `._
d6wz3=s^+(_.` '-,(r?7=[uEA DRZ3kF(7x~i!'` '!,:r/T2n4ZRQ dAEu3=7?+(,-` `'_~
d6wz3(s^*(_.` `''!>vLT2V5G% $8qUV[=J?\(_-` `.'>*?^tjuGAH# p04zSCJxi~'.` '-~i
d6wz3(sx*:'.` `''!ixJ)fXKUh NdAGyft^|*>'.` `-,:v/C2n1ZRQ qe]}(Yl+:_.` `._(+
d04XjcJx\:''` `.'~\^stoywRH W6wKkFTYx:,!' `''>*|^tfya9b& 9GaVST/ri,-' `.'~*x
d04XjcJv\~-'` `._:*lY(3uEAm gpI3[=Jl+(_-` `.,:vlT2n3I6W m6wzj(Jx\:''` `''!>vL
d04XocLv\~-' `-,(+/7F}aG9 @d9GVj);?~i!.` '-i~r/)jyK0d& 8Gakf)?|>!.` '-,(+/T

AUTHOR:
kai zhu
kaizhu256@gmail.com

REQUIREMENTS:
posix os
Python 2.6
Python Imaging Library http://www.pythonware.com/products/pil
numpy http://www.scipy.org/Download

INSTALL:
python setup.py build
python setup.py install
python setup.py dev --quicktest

USAGE:
$ python setup.py dev --quicktest
render color image in shell terminal &
plot scientific functions as well



>>> from asciiporn import *

>>> print( img2txt("filename") )
display color image from gif, jpg, bmp, ... to screen.
only works if u have Python Imaging Library installed

>>> help(img2txt.load)
display img2txt options



>>> plot(ft = lambda t: cos(t), tmin = 0, tmax = 16)
plot cos(t) for t = [0, 16]

>>> plot(ft = [cos, sin], tmin = 0, tmax = 16)
plot 2 functions, cos & sin

>>> plot( y = [1.5, 2.5, 3.5], t = [0, 1, 2] )
plot datapoints (y, t) = (1.5, 0), (2.5, 1), (3.5, 2)

>>> f = lambda t, z: sin( t*(2*pi + z) ) * (0.5 + z) - z
>>> plot3d(ftz = ftz, tmin = 0, tmax = 16, zmin = 0, zmax = 1)
plot f in 3d using specified ranges for t & z

>>> help(plot.__call__)
>>> help(dataZYT.__new__)
display plot options



>>> fitpoly2d.test()
test asciiporn's polynomial fitting routine
peruse fitpoly.test in asciiporn/main.py for usage

>>> fft2d.test()
test asciiporn's cosine fitting routine
peruse fft2d.test in asciiporn/main.py for usage

################################################################################
RECENT CHANGELOG:
20090407
fixed installation bugs
added retro-gif feature
20090328
removed py3to2 requirement
update documentation
20090103
rewrote 3d plotter
fixed more 64bit issues
20081123
fixed bug where 64bit gets truncated to 32 on 32bit machine
256 color support
20081119
fixed bugs in setup.py

Release files for asciiporn 2009.05.01

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asciiporn 2009.05.01
File Size Uploaded
asciiporn-2009.05.01.tar.gz 358.0 kB Details

Release files / asciiporn-2009.05.01.tar.gz

Download URL asciiporn-2009.05.01.tar.gz
Size 358.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a2a51230f429e5ccbe2095a616fde303314b43b947ce0bff9b23d4faeff3d721
BLAKE2b-256 checksum
How to use checksums
7ea8e39edfcbb41abbf76d9fc8121c8d0fc092cfdcbe73ca855fb92a49bd73e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page