Proposal
For my final project, I would like to create a max patch that reads the temperature of water (in this case, a fish tank) and has the temperature data change the surrounding lighting.
Using hue bulbs, my fish tank, and most likely arduinos, this will create an immersive environment that brings the dry world of humans a bit closer to the small world of my betta fish.
Because fish tank temperature does not fluctuate too greatly (without risk of harming the fish), for experiment & demonstration purposes I will most likely work with cups of different temperatures of water.
This is inspired by a video about the use of data to make art (and warning to not reduce people to just data) - I imagine that this patch, once working, could theoretically be adapted to a larger installation environment. For now, though, the goal is to turn my living room into a reflection of the living conditions of my fish.
Research
10/18/20
This video (that we watched for this class!) influenced my thinking towards this project and the idea of using data to manipulate art.
Additionally, the popularity of fish tank time lapse videos pushed me towards considering how my fish tank may be a source of data.
In order to use the existing hue control patchers, I need to know how to use javascript with Max. As such, this week I'm reading this article.
10/25/20
I found this cool patch from Ferderico Foderaro - https://www.patreon.com/posts/art-of-code-to-21718118. Not sure it really relates to my project, but it makes a really cool visual - and is set up so that if you mouse around in the visual window, it moves with you!
In terms of how it works, it is generating and running an animation through jit.world (which connects to the mouse tracker). Another section seems to be the texture processing, and lets you change the zoom of the animation.
That said, while I really like this patcher, I wish it was more clearly labelled. I am going to make sure to label mine so that if someone else came along and wanted to use it, the mechanics would be clear.
Speaking of, I managed to edit the .json file for the existing hue control patcher to get color control!
Here is a video of it in action with a Hue Go:
11/4
This week I've been trying to figure out how to make a color wheel work. Hue bulbs receive color as "xy: [x,y]", where x and y are float variables.
After a lot of playing around and some help from my partner, who is a computer engineer, I think I need to tell max to send x and y separately, and figure out how to pack/format them in the javascript. I did a lot of messing around in max this week, only to be thwarted by how it handles commas.
Because ideally, the format would be a message box like this: "function lightID [x,y]", but I haven't been able to get that to work. When I get it to send something vaguely correct (see below), I can't get the javascript to understand what I'm sending.
Instead, my next approach will be to try sending "x lightID $1" and "y lightID $1" and see if javascript can pack it for me, into the correct xy: [0.,0.] format.
If I can get this to work, I'm considering switching direction from temperature sensors to motion detection/pixel tracking on my tank, where the location of the pixel selects on the colorwheel (see CIE diagram below). (Ryan, I was hoping I could get the XY to work before I emailed you about this - alas. Expect an email from me later today.)
11/17
I managed to adapt the color tracking patch we used in class to speak to the color picker in a satisfactory way! The only issue is that the video sends SO MUCH data that it sends color information faster than the hue bulbs can handle, leading to crashes. I remember there are objects to regulate data sending, so I think my next step will be implementing one of those before I can re-attach the color to the bulb control. (without it, my apartment turns into a rave and then max crashes...whoops)
I also need to do a test with this color tracking method to make sure my fish is actually visible enough for Max to track him.
11/21
So....thanks to Ryan's help & speedlim, I got the patch working without crashing.
But.
I did a proof of concept to see if Max can track my fish and....well, see for yourself.
Only downside is that OBS can't show you my mouse clicks, but my camera reacts normally to the red fish food bottle towards the end of the video.