Hoffer_Assignment2_HotTubTimeMachine

This is the patch
This is a video of the patch

At first I thought it would be cool to be make a patch that would make pixelated versions of your face infinitely blur and fall off when you got in front of the camera. That turned out to be well beyond my current skill level, because (1) facial recognition? and (2) how do you manage transparency? I tried to work on something where your face would constantly blur downward towards the bottom of the screen, but again I was having trouble getting the effect to seem… more or less relative to the face… And it didn’t work. But this did get me started on delaying and feeding back moving versions of matrices.

From somewhere back in the memory banks, I remembered some JRPG for the SNES where there’s a grid of identical sprites flying by in the background, left to right, while things are becoming emotional for a character. Can’t find it. But I decided to try and pick out an object in the center of a camera, and have a bunch of replications of that thing fly by in the background.

 

Step 1, I kinda-sorta figured out how to use jit.repos. Which is to say, honestly, I copy-pasted the help file and messed with it until it worked. I still don’t quite grasp how the guide matrix part works. But at any rate, I got it continuously scrolling vertically. I delayed the vertical scroll and fed it back into itself, with a horizontal scroll inserted just before the feedback point. I decided to leave the rate of the HV tracking (if you will) as variables. This was starting to work pretty well!

 

Next up, this looks stupid because I am tracking the entire screen and all I am able to notice are the straight lines and corners. So my usual analog approach here would be to do a luma-key, but this is a computer. OK. So I messed around with jit.expr and found something that would make a reasonable vignette mask. That got me close, then I used a boolean expression to filter out all pixels beneath a certain brightness threshold as well. I did the expression on all of the color channels individually… I think I would fix this in later versions to favor less red light in lo-light conditions.

Anyway, that got me pretty good pickup of single objects within the screen area. GREAT. Finally, I had a bunch of downsampling ideas laying around from the earlier version– and the camera had to be downsampled on input anyway if my computer wasn’t going to slow down to a crawl. So I put an additional downsampler on the delay line, so we could crunch up the flying images for fun.

And that’s about it. I went ahead and made a reasonable presentation-mode dashboard, so it would be kind of playable. Some of the more extreme settings are pretty cool, though I know I’m relying on my computer’s slowness to get some of these weird timings. The next step would probably be to hook the parameters up to audio inputs of various kinds, and wahoooo music video o’clock.