Recommended Daily Intake
Simple python script for serial plotters
#!/usr/bin/python3 import sys import serial if __name__ == "__main__": file = sys.argv[1] with open(file, 'r') as content_file: content = content_file.read() ser = serial.Serial('/dev/ttyUSB0', 9600, bytesize=8, parity='N', stopbits=serial.STOPBITS_TWO, timeout=5, xonxoff=False, rtscts=True) ser.write(content.encode()) ser.flush() ser.close()
Screaming Venus
This piece emerged from the challenge I was given at the time while I was working on a similar theme. The drawing was created by a machine, seeded from a digital collage of Botticelli's Venus and a still from Sergei Eisenstein's 1925 silent film 'The Battleship Potemkin', from which Francis Bacon copied the face of his screaming pope. The work allows us to see the copy on two levels: on one hand, the theme of Venus is perfectly visible, a literal copy; on the other, it refers to an induced copy of Bacon's work, thus extending the copy beyond the physical presence of the work presented to the mental copy we have of Bacon's infamous work.
Submitted to the The Curators 'COPY/PASTE' OpenCall.


News, good
I was able to solve some computational problems that were contaminating the algorithm's speed. I improved the calculation speed by a big factor using a faster convolution algorithm and a hack to the Gabor filter kernel with a q-Gaussian which enables shading and region detection (see example below).
The use of a mathematical model for the receptive fields of the neural visual cortex showed more potential than what had originally inspired my work. I'm using a pre-trained-by-nature GNN (G stands for Gabor).
Simple receptive fields have Gabor shapes, but not all Gabor shapes are receptive fields.

After some research and experiments I came to the conclusion that it was feasible to design a computational-robotic system, capable of automatic drawing. In my practice I started producing various experimental drawings with pen plotters and algorithms and found that it seems possible to refine this approach by better understanding the possibilities of the algorithmic modification of images and its embodiment, and linking this approach with a breakdown of the artist's way of working.
This opens new ways to better understand how drawing, and how (self)depiction is perceived, how variations of styles, procedures, algorithms can be used to explore the reciprocity of the artist (self)perception and (self) image over time.
Still life
Still life was never a subject until there was nothing else left to draw, then you get it.
Ballpoint art
- Thomas Muller: https://www.galerie-issert.com/artists/111-thomas-muller/biography
- Il Lee: https://en.wikipedia.org/wiki/Il_Lee
- Joolee Kang: https://www.gallerynaga.com/joolee-kang
- Wai Pongyu: https://www.grottofineart.com/wai-pongyu
- Ignacio Uriarte: https://www.gaepgallery.com/artist/ignacio-uriarte/
And more.
Simple receptive fields have Gabor shapes, but not all Gabor shapes are receptive fields.
There's a funny argument that follows from my claim that I don't use AI to generate my drawings, if I'm using a mathematical model for the receptive fields of the neural visual cortex, then, formally, I'm using a pre-trained by nature GNN.
Also, simple receptive fields have Gabor shapes, but not all Gabor shapes are receptive fields.

Convolute
My drawing algorithm relies heavily on making convolutions with large kernel filters for feature extraction, so finding a faster algorithm for this process significantly improved speed and provided an additional set of parameters to work with. :D

Trois crayons
Trois crayons is a drawing technique using three colors, usually red, black and white. The paper used may be a mid-tone color, grey, blue, or tan.
The technique works really nicely with my line drawing algorithm.
Personally, I have always been drawn to the drawings of Leonardo da Vinci or Rubens, or the two-color drawings of Pierre-Paul Prud'hon.
More recently, the robotic systems of Patrick Tresset or the "Floccular Portraits" of Golan Levin are clearly inspirational, whether in style, atmosphere, or expressiveness.













Anisotropic Diffusion example
Always wondering why does almost all AI generated art or images looks "the same", that is, aesthetically equivalent. In a way all neural networks do a anisotropic diffusion on images.
Some refs:
- http://helper.ipam.ucla.edu/publications/gss2013/gss2013_11351.pdf
- https://peterkovesi.com/matlabfns/#anisodiff
Kovesi's works nicely, and we have some parameters to play with :D
% ANISODIFF - Anisotropic diffusion. % % Usage: % diff = anisodiff(im, niter, kappa, lambda, option) % % Arguments: % im - input image % niter - number of iterations. % kappa - conduction coefficient 20-100 ? % lambda - max value of .25 for stability % option - 1 Perona Malik diffusion equation No 1 % 2 Perona Malik diffusion equation No 2 % % Returns: % diff - diffused image. % % kappa controls conduction as a function of gradient. If kappa is low % small intensity gradients are able to block conduction and hence diffusion % across step edges. A large value reduces the influence of intensity % gradients on conduction. % % lambda controls speed of diffusion (you usually want it at a maximum of % 0.25) % % Diffusion equation 1 favours high contrast edges over low contrast ones. % Diffusion equation 2 favours wide regions over smaller ones. % Reference: % P. Perona and J. Malik. % Scale-space and edge detection using ansotropic diffusion. % IEEE Transactions on Pattern Analysis and Machine Intelligence, % 12(7):629-639, July 1990. % % Peter Kovesi % www.peterkovesi.com/matlabfns/ % % June 2000 original version. % March 2002 corrected diffusion eqn No 2. function diff = anisodiff(im, niter, kappa, lambda, option) if ndims(im)==3 error('Anisodiff only operates on 2D grey-scale images'); end im = double(im); [rows,cols] = size(im); diff = im; for i = 1:niter % fprintf('\rIteration %d',i); % Construct diffl which is the same as diff but % has an extra padding of zeros around it. diffl = zeros(rows+2, cols+2); diffl(2:rows+1, 2:cols+1) = diff; % North, South, East and West differences deltaN = diffl(1:rows,2:cols+1) - diff; deltaS = diffl(3:rows+2,2:cols+1) - diff; deltaE = diffl(2:rows+1,3:cols+2) - diff; deltaW = diffl(2:rows+1,1:cols) - diff; % Conduction if (option == 1) cN = exp(-(deltaN/kappa).^2); cS = exp(-(deltaS/kappa).^2); cE = exp(-(deltaE/kappa).^2); cW = exp(-(deltaW/kappa).^2); elseif (option == 2) cN = 1./(1 + (deltaN/kappa).^2); cS = 1./(1 + (deltaS/kappa).^2); cE = 1./(1 + (deltaE/kappa).^2); cW = 1./(1 + (deltaW/kappa).^2); end diff = diff + lambda*(cN.*deltaN + cS.*deltaS + cE.*deltaE + cW.*deltaW); % Uncomment the following to see a progression of images % subplot(ceil(sqrt(niter)),ceil(sqrt(niter)), i) % imagesc(diff), colormap(gray), axis image end %fprintf('\n');
Here's an example (regular (left), diffused (right):

and code
im=imread("vangogh.png"); im=rgb2gray(im); jm=uint8(anisodiff(im, 20, 100, .25, 1)); imwrite(jm,"ad-vgogh.png")
Pen plotter on the cheap
You don't need to spend a fortune, let's say ~230€, to have a pen plotter. Get a vinyl cutter, a cheap machine will be fine, it's a lot of fun in a small space. Get one with a pen USB port.
Various sizes are available. I have this one, it's almost A3 size.

Actually I have a bigger one (we'll talk about it later).
You should feed it with HGPL, not g-code, Inkscape does this beautifully.
You'll be restricted to the use of ballpoint pens, but that is not a real problem. There's lot you can do with a ballpoint pen.
![]() |
| BIC ballpoint pen on Fabriano paper (A4, 200g) |
I've added a BIC ballpoint pen tip adapter for a Vevor vinyl cutter and a solenoid 4 bar replacement in TPU, this last mechanism will break under heavy use (my plots take about 2h each).
Have fun and happy plotting!
Day start

There are fundamental diferences between a computational system designed to produce images that look superficially like drawings and embodied computational systems that physically produces drawings e.g. the characteristics of the machine, the physicality of the output, the agency of the system.
A dissolução da autoridade
Hoje o nosso horizonte mostra-nos duas perspectivas em conflito, a primeira de um mundo harmonizado com a sensibilidade ecológica baseada no compromisso com as comunidades, ajuda mútua e a tecnologia e a segunda a antropogénese do aquecimento global, o ressurgimento dos movimentos extrema direita e o espectro do holocausto e a ameaça nuclear. Parece que para termos futuro o nosso mundo ou sofrerá uma mudança revolucionária radical tão profunda de tal forma que a humanidade se transformará completamente nas suas relações sociais e na própria conceção da vida ou sofrerá um Apocalipse que terminará com o lugar permanente da humanidade no planeta.
Bookchin fala-nos da proposta desse futuro no livro “The Ecology of Freedom: The Emergence and Dissolution of Hierarchy”, na mitologia da desintegração e na dissolução da autoridade. As linhas que se seguem vão também por esse caminho.
A mitologia nórdica conta-nos uma história de um tempo em que a todos os seres estava atribuı́do um lugar terreno: aos deuses um domı́nio celeste, Asgard, aos homens a terra, Midgard, por baixo ficava Niffleheim, o domı́nio escuro e gelado dos gigantes, anões e mortos. Todos estes domı́nios estavam ligados por um enorme freixo, a Árvore do Mundo. Tinha ramos que chegavam ao céu e raı́zes que alcançavam as profundezas da terra. Apesar de constantemente mutilada por animais permanecia sempre verde, renovada por uma fonte mágica que continuamente lhe dava vida.
Os deuses que formaram este mundo presidiam na realidade a um precário estado de tranquilidade. Baniram os seus inimigos, os gigantes, para a terra do gelo, Fenris o lobo foi preso e a grande serpente de Midgard afastada e mantida a uma distância segura. Apesar de todos os perigos ocultos prevalecia uma paz geral e havia tudo em abundância, tanto para deuses, para homens e para todas as coisas vivas.
Odin, o deus da sabedoria, reinava sobre todas as divindades, o mais forte e o mais sábio, supervisionava batalhas humanas e escolhia o mais bravo dos perdedores para festejar consigo na sua grande fortaleza, Valhalla. Thor, filho de Odin, era não só um guerreiro poderoso, protetor de Asgard contra os gigantes inquietos, mas também era uma divindade defensora da ordem, fazendo cumprir a fé entre os homens e os tratados. Havia deusas e deuses com fartura, da fertilidade, do amor, da lei, do mar e dos barcos e uma multiplicidade de espı́ritos animistas que habitavam todas as coisas e todos os seres da terra.
Mas a ordem do mundo começou a partir-se quando os deuses, desejosos de riqueza, torturaram a bruxa de Gullveig, a fazedora de ouro, e obrigaram-na a revelar os seus segredos. E a discórdia desenfreada entre deuses e homens começou. Os deuses quebraram os seus juramentos; a corrupção, a traição, a rivalidade e inveja dominaram o mundo. Com a quebra da unidade primordial, os dias de Asgard e Midgard estavam contados. A violação inexorável da ordem do mundo levava a Ragnarok – a morte dos deuses sob Valhalla. Os deuses caíram numa batalha terrı́vel com os gigantes, o lobo Fenris e a serpente de Midgard. Com a destruição de todos os combatentes a humanidade pereceria também e nada sobraria para além das pedras, oceanos transbordantes num vazio frio e escuro. Tendo pois o mundo se desintegrado no seu princípio, ressurgiria renovado, purgado dos seus males anteriores e da corrupção que o destruiu. O novo mundo que emergiria do vazio não sofreria outro fim catastrófico porque a segunda geração de deuses e deusas aprenderiam dos erros dos seus antecedentes.
O profeta que nos conta a história diz-nos que a humanidade daqui para a frente viveria em alegria para sempre.
Nesta cosmografia parece estar o tema habitual do eterno retorno, uma sensação que o tempo anda à roda e se repete perpetuamente em ciclos de nascimento, crescimento, morte e renascimento. O que a lenda explora é uma área muito pouco explorada da mitologia, a mitologia da desintegração.
O cristianismo selou definitivamente o conceito de tempo histórico linear e unidimensional, numa orientação irreversı́vel e um fim tendencial pré-determinado, a criação ab initiio e a incarnação como explicação única total e a parúsia do messias no fim dos tempos, com ascensão dos escolhidos e a danação dos restantes. Mais ou menos desfigurado mas mantendo a estrutura inicial este cenário temporal linear haveria de ressurgir em ideologias afirmando a unidirecionalidade do progresso, das luzes, dos ventos e do fim da história, mas a lista está longe de ser completa, há mais exemplos. Não podemos afirmar a existência de um limite no fim na história da humanidade, um absoluto hegeliano ou um comunismo marxista e nem a confiança no progresso inevitável no compromisso do iluminismo dos avanços tecnológicos.
O que nos assombra nestes mitos de desintegração não são as histórias que relatam mas as profecias que fazem. Tal como os Nórdicos, ou os medievais, sentimos que mundo está também a partir-se, institucionalmente, culturalmente e fisicamente. Se estamos perante uma nova era paradisı́aca ou uma catástrofe ainda não é claro, acho que nunca será, mas é difı́cil acreditar num compromisso entre o passado e o futuro neste presente ambı́guo.
Para obter a sabedoria Odin bebe da fonte mágica que alimenta a Árvore do Mundo. Em troca tem que perder um olho. O simbolismo aqui é claro: Odin tem de pagar um preço, assumir uma penalização, para adquirir o conhecimento que lhe dá o controlo do mundo natural e que viola a prı́stina harmonia natural. Mas a sua “sabedoria” é de um homem de um olho só. Só vê um lado.
Renúncia à honestidade da perceção em troca da exactidão, predição e acima de tudo manipulação; tornar-se num certo sentido no usual do termo “ciência”. Esta ciência que hoje vigora é a visão de um só lado, de um deus de-um-só-olho, cuja vantagem fundamenta a dominação e o antagonismo e não a co-igualidade e a harmonia. Na lenda nórdica a “sabedoria” levou ao Ragnarok, à queda dos deuses e à destruição do mundo tribal. Nos nossos dias a sabedoria de um só olho levou-nos à catástrofe ecológica e à possibilidade concreta da extinção da humanidade. Neste percurso de-um-só-olho conseguimos obter mais liberdade do que os nossos antepassados: temos base material alargada para mais tempo livre, fruição, segurança e potencial para ainda mais liberdade em ligação com a natureza.
Talvez o grande projecto do nosso tempo seja o de abrir o outro olho: ver tudo clara e completamente.
As chamas de Ragnarok purificaram o mundo nórdico. As chamas que ameaçam engolir o planeta deverão deixá-lo sem esperança e hostil à vida como uma testemunha morta de um fracasso cósmico.
Ficamos assim com duas alternativas. Podemos tentar acalmar o guerreiro Odin, pacificá-lo e à sua corte e talvez ventilar Valhalla com o sopro da razão e reflexão, tentar arranjar ou emendar os tratados esfarrapados que suportam precariamente o mundo e trabalhar com isto o melhor que consigamos. E depois esperar pelo nosso esforço que Odin se convença a largar a sua lança, a largar a sua armadura e que se preste à doce voz do entendimento e do discurso racional.
Ou podemos usar o nosso esforço para uma reviravolta radical: depor Odin cuja cegueira parcial é evidência de uma sociedade sem esperança e abandonar os mitos contratuais que falsamente harmonizam uma sociedade inerentemente hierarquizada e dividida e ficar assim com a responsabilidade de criar um novo mundo e uma nova sensibilidade baseada na reflexão e na ética da qual somos herdeiros de uma evolução em direção à consciência partilhada.
No entanto, não chega retirar a poesia de que a revolução no nosso tempo necessita do futuro e também não precisamos de abandonar nenhuma das teorias lineares anteriores que bem serviram a humanidade ou uma qualquer outra teoria de noção circular de causalidade que junta o inı́cio com o fim.
Temos apenas de esculpir a razão coletiva no exemplo, carregada de sensibilidade individual e socialmente emancipatória, seja ela linear ou circular.
Tiago Charters Lisboa, 10 de Maio de 2020
Nota
Neste texto, publicado na revista Libertária, faltou, por falta de espaço, a referência à emulação pelos pitagóricos de um touro por descoberta dos números irracionais, o eterno retorno de Nietzsche e ainda o teorema de Liouville essencial para a descrição de sistemas da física chamados de sistemas Hamiltoneanos. Fica para trabalho de casa numa versão mais completa do texto.
Holiday Penplotter Postcard Exchange: 2024
Last year was my first time participating in the Holiday Postcard Exchange. It's an activity where artists and pen plotter users from all over the world swap original postcards they've drawn on their machines. The activity is organized by Paul Butler and has already had several editions (five years now).
The first one I participated in was in 2023 with this postcard.

And received these

I'm still working on this year's postcard, but the final idea is already there.

If you're interested in NFTs, I've put a preparatory version on objkt.com.

I've call it 'city view: study for a pen plot' and was seeded from an old postcard. Also took the opportunity to participate with it in the 200tez event. So there are 100 editions at 2 tez each.
But if you have a pen plotter you can just grab the SVG file and plot it! Let me know how it went!
Update: to the postoffice!

Happy plotting!
Made some drawings last night











Some more drawings







Playing around
Last year I participated on this call with some machine drawings, I guess nobody notice that these where made by a machine ;). I'll try the trick this year again. These drawings were seeded by some old postcards from archive.org.
I'll use the same idea this year, found some good candidates for it. This is the first.

And the penplot.
![]() |
| BIC ballpoint pen on paper (A4 200g) 2024 |
Criado/Created: 2024 (created)
Última actualização/Last updated: 06-09-2025 [15:20]
For attribution, please cite this page as:
Charters, T., "Recommended Daily Intake": https://blog.nexp.pt/index.html (06-09-2025 [15:20])
(cc-by-sa) Tiago Charters - tiagocharters@nexp.pt

