Monday 7 March 2022

Modifying Mantissa.



 In the new version of mantissa I'm currently working on exclusively in linux so far ( original explained here https://crash-stop.blogspot.com/2021/07/mantissa-self-capturing-displacement.html ) rather than using webcams to capture the initial images and use those as a basis for feedback I've modified the basic script to take advantage off ffmpegs use on linux of x11grab to define an area and display it as a virtual webcam and the -follow_mouse centered function which turns the mouse itself into the lens of the virtual webcam. So I open two windows on the desktop which essentially work as feedback generators without need for a webcam at all.

That command line looks like this for one window :

xterm -e 'ffmpeg -f x11grab -follow_mouse centered -framerate 5 -video_size 960x540 -i :0.0 -f rawvideo -vcodec rawvideo -pix_fmt monob -s 960x540 - | xxd -p | sed 's/808/181/g' | xxd -p -r | ffplay -f rawvideo -vcodec rawvideo -pix_fmt monob -s 960x540 -' 

By playing with the pix_fmt function you can achieve different colours or textures ( here I have monob which is just 1bit black and white you could try pal8 which is rather nice and retro) and by altering the hex editing part ' sed 's/808/181/g' ' I can get different levels of corruption or non corruption.

So that part is very similar to the original mantissa scripts . What is different though is that rather than using displacement maps and constantly recording video then replaying that Ive created a script which screenshots the smaller window, saves that then sets that as the desktop background then saves a screenshot of the entire desktop, continuously. So the changes in the background start to influence what the virtual webcams in the centre of the screen see and reflect so it becomes at points self generating, changing and self sustaining ( as you can see in the video at the top) 

the basic capture script looks like this ( though I call it using a script which basically says xterm -e ./norandom.sh , which opens a terminal so that I can cancel the script running otherwise it just runs in the background constantly!!) 

#run this if using lxde or similar

echo "To kill process press CTRL+C......"

while true

do

sleep 35

scrot -o -z -a 364,226,640,360 $n /home/crash-stop/background.png

pcmanfm --set-wallpaper=/home/crash-stop/background.png

scrot -z -a 0,0,1366,768 /home/crash-stop/Pictures/mantissa/'mantissa-%y-%m-%d-%H_%M.png'

done


I found through a little research that you can change the desktop background in lxde by using pcmanfm from the commandline - handy for scripting . It also works with modifications in ctwm ( you have to make sure you have the xloadimage package installed ) that modification looks like this .


#run if using ctwm or similar

while true

do

sleep 35

scrot -o -z -a 364,226,640,360 $n /home/crash-stop/background.png

xsetbg background.png

scrot -z -a 0,0,1366,768 /home/crash-stop/Pictures/mantissa/'mantissa-%y-%m-%d-%H_%M.png'

done



 


ikillerpulse ( requires tomato.py in working directory)

I've been working on this script for the last week or so. What does it do? It takes an input video/s,  converts to a format we can use f...