User:Ssstephen/prototype/20231113

From XPUB & Lens-Based wiki

rodent trace ornamentation

a few weeks ago i made a script that saves my mouse actions to a text file. and by made I mean i pressed, among other buttons, ctrl+c and ctrl+v.

from pynput.mouse import Listener
import logging

logging.basicConfig(filename="mouse_log.txt", level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_move(x, y):
    logging.info("Mouse moved to ({0}, {1})".format(x, y))

def on_click(x, y, button, pressed):
    if pressed:
        logging.info('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button))

def on_scroll(x, y, dx, dy):
    logging.info('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))

with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

today I want to send that data to the plotter instead in a language it understands. i want to do this as a way of ornamenting and documenting the work that happens through the mouse or trackpad. pen plotters are often used for presentations: it is about finding what is between the past and the future. i want to try not to focus on the cartesian coordinates in the data but they might be useful. the data looks kind of like this:

2023-10-25 12:17:36,329: Mouse moved to (1816, 799)
2023-10-25 12:17:36,337: Mouse moved to (1814, 799)
2023-10-25 12:17:36,345: Mouse moved to (1812, 799)
2023-10-25 12:17:36,353: Mouse moved to (1809, 800)
2023-10-25 12:17:36,361: Mouse moved to (1807, 801)
2023-10-25 12:17:36,369: Mouse moved to (1805, 801)
2023-10-25 12:17:36,376: Mouse moved to (1803, 801)
2023-10-25 12:17:36,385: Mouse moved to (1800, 801)
2023-10-25 12:17:36,393: Mouse moved to (1799, 801)
2023-10-25 12:17:36,401: Mouse moved to (1798, 801)
2023-10-25 12:17:36,553: Mouse clicked at (1798, 801) with Button.left
2023-10-25 12:17:36,729: Mouse clicked at (1798, 801) with Button.left
2023-10-25 12:17:37,440: Mouse moved to (1798, 801)
2023-10-25 12:17:37,953: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:37,969: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:37,977: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:37,993: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:38,009: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:38,033: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:38,040: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:38,057: Mouse scrolled at (1798, 801)(0, -1)
2023-10-25 12:17:38,065: Mouse scrolled at (1798, 801)(0, -1)

Setlosttotrue.png
set lost to true

the data being collected in the script that i can see:

  • something happened (listener)
  • it happened now (asctime)
  • by something, it was either a click, move or scroll
  • it happened somewhere xy (this is presented as if it's two pieces of information, weird)
  • if it was a click, it involved a particular button (strange my trackpad does not have buttons)
  • if it was a scroll it moved to another relative position dxdy#

how to track and dance with the work done by the rodent? how long has it been since you last did something? the longer its been, the further you move. the direction isnt important yet.

Its working. the longer I take to move the mouse, the longer the line becomes. the script is like this:

# It sends your mouse data to the pen plotter to see 
# what you're up to over there.

from chiplotle3 import *
import math
import random
import time

from pynput.mouse import Listener
import logging

# initialise chiplotle
plotter = instantiate_plotters( )[0]

t0 = 0
t1 = 0
dt = 0
x = 0
y = 0
notplotting = 1
eventwaiting = 0
button = "0"
coords = []

plotter.select_pen(1)
plotter.write(hpgl.PU([(0,0)]))

print("init done")

def on_move(x, y, button="Left", pressed="1"):
    #logging.info("Mouse moved to ({0}, {1})".format(x, y))
    global t0
    global t1
    global dt
    global notplotting
    t0 = t1
    t1 = time.time()
    dt = (t1-t0)*1000
    print("new move length is " +str(dt))
    if dt > 3000:
	    plotnow(dt)

def plotnow(dt):
	print("plottin now")
	dx = int(dt/100)
	plotter.write(hpgl.PU([(0,0)]))
	plotter.write(hpgl.PD([(-dt,7000)]))
	time.sleep(0.1)

with Listener(on_move=on_move, on_click=on_move, on_scroll=on_move) as listener:
    listener.join()

Scan MFP-528 3116 001 Page 1.jpg
plotting and doubting irrationally

so in summary the script gives bigger gestures the less work is done by the rodent (the longer the times between gestures on the trackpad). It is a celebratory performance of laziness. It encourages working less. It measures the opposite of time and translates it to vectors. There is an inverse relationship between busy-ness/business and the intensity of the performed gestures.

to do: should the hpgl commands be relative instead of absolute? it would be more lost then which would be nice. Its something to do with gregory bateson and christopher small and taylorism and Frank and Lillian Gilbreth. Joseph says talk to steve rushton about it. is the language getting too abstract or is that the point?

https://www.cambridge.org/core/journals/dialogue-canadian-philosophical-review-revue-canadienne-de-philosophie/article/phenomenology-of-gesture-between-heidegger-and-flusser/7730314A14E992C2C6F913D661107989

https://zetabooks.com/wp-content/uploads/introSP22.pdf