Saturday, March 15, 2025

10.1: ides of march project development



Assembly of the bottom section of the suncaster happened: and I've chosen to use the potentiometer for the movement of the clock hand. When I add the top to the piece, the top of the potentiometer will stick out just enough for the clock hand to be attached. 

I got the arduino and touchdesigner in communication so that when the potentiometer reaches a certain value that corresponds to one of my two clock hand positions, it triggers a request from the API and get the current time of day. 



When the potentiometer is at the value that corresponds to the other hand position, it will cause the projection and alter the parameters of an image collage I'm making. 




I'm using this image I took a while ago as a background that will change in tone based on the time of day. I still need to write the function that will place a circular sun image at the point in the sky that also matches with the time of day.

I'll also be adding a window structure to the collage and create shapes around it that invoke architectural/window shadows.

There is a lot of work to be done before the crit; this week, I will be:
-adding the mirror to the window inset
-fabricating the top piece
-attaching the clock hand to the potentiometer
-sanding the edges of the device
-completing the projected "collage"

Monday, March 10, 2025

9.1: more project development


These pieces are the frame for the Suncaster: there will be a laser-cut circle to serve as the bottom, and another one on top to conceal the imperfections in the cut job. 

Alongside fabrication, I am working on how electronic switches will trigger time calculations and projections in touch designer.

Something along the lines of this script should work: when a certain serial message is received, it will trigger a request for the sunrise and sunset time from the API, and also the script I have that gets the specific time of day.


I also have the sun's position in the sky as a number from 0 to 1.



The other part of the project I'm working on is what the projections will look like. I want there to be movement, not just a still image. I'm currently at my mom's house for break, and have access to my old bedroom window. I'm taking photographs throughout different times of day, and with enough photos, I can blend them based on an equation to create a unique image for any time of the day. There are lots of beautiful shadows created by the windows, trees, and sun around the house, and those will become the video aspect of the projection. 
 

Saturday, March 1, 2025

8.2: project development

1. Using API in Touch Designer

this API allows you to request the sunrise and sunset time of the day: https://sunrise-sunset.org/api

By using this in combination with the specific time that my object is activated, I'll be able to make projections in TD that are time-specific and relate to the sun's position.

First I used a web client DAT to request the sunset/sunrise times. These times can be parsed using a json DAT. 


The times then need to be converted to a seconds value that doesn't have AM or PM in it so that it can be used for calculations. The python script below does that, and then sends the value to a text DAT. Then the DAT to CHOP operator enables the values to affect the parameters of other operators.

2. Object Prototyping:

I also made a simple prototype of my thing, which I'm calling "suncaster" as of now. The half-circle interior inset will hold a two switches activated by the turning of the clock hand; and an arduino that will interact with my TD program. 



The sections made of wood and cardboard in the prototype will be wood in the final, but I'm thinking that the top cover that's gray here could be clear or some kind of acrylic. Whatever projection emerges from my TD program will be output onto a projector that is cast onto the mirror inside the suncaster, creating another projection in the space the sculpture is in. 

My focus during the upcoming week will be projection-making and beginning fabrication.  



8.1: soldering demo

✷ the temperature that's ideal for soldering is 325-350 c, with the higher end of 350 being safer only for non-complex objects like wires.
✷ when soldering boards/computers, its important to take breaks between solders so as not to cook your electronics.
✷ make sure to constantly wipe the tip of the soldering iron on the metal sponge to keep it clean and shiny
✷ two types of wire:
    solid: if you bend it and it stays in that position
    braided: if you bend it and it curls back towards its original shape
        braided: twist it and solder: use heatshrink!
✷ painting on flux helps solder flow better
✷ unsoldering: first heat it (using new solder) then click the solder sucker to remove
✷ don't bother with lead-free solder 

✷ to solder wires:
    ✷ place your wires in an x over each other and twist them several times
    ✷ away from the wires, melt a bit of solder on the tip of the iron
    ✷ press the tip onto the wires to heat them
    ✷ take more solder and run it along the wire twists, allowing it to flow between them

Saturday, February 22, 2025

7.1: Project plan

Timeline

Feb 21-March 1:
-construct base 
-make mold for/pour the face
-design window inset
-design clock hands

March 2-8:
-fabricate clock hands, window inset
-get switch mechanism and code working
-develop installation output

March 9-15:
-troubleshoot
-create digital installation output


I started thinking that my lightbulb/lamp sculpture idea was too literal, so I designed another object that creates a similar experience but with more symbolic interest and richness. 

I'm most interested in the affect of sunlight inside interior spaces; also in the gradually shifting position of the sun in the sky by hour, day, and season as related to apparently stationary architectural planes like windows. I want to make a device that captures the sun's placement in the sky at a specific location which is then able to be brought inside to become a part of an installation. I'm still not sure on what the result of the data in the installation should be, so for now im focusing on constructing the portable object.

Iterating through ideas:



Design for the object (second page by Prof. Duarte):



The object will be a handheld circular object that references construction and home materials. The circular base will be made of wood, and the face of it will be made of a reinforced plaster.
I will include a small window-like inset on the front with a mirror to reflect light behind it; and a door handle on the back as a grip. The device will have two modes: capturing, which records location and time, and displaying, which causes effects in the installation. 

What switches the modes will be a clock hand on the face of the object that resembles a clock hand. Mode changing will be triggered by switches underneath the plaster. 


Saturday, February 15, 2025

6.2: Project updates

The two electronics I've purchased for the project are this GPS module:

https://www.amazon.com/gp/product/B084MK8BS2/ref=sw_img_1?smid=A2QTZX14X1D97I&psc=1

and this microcontroller: https://www.amazon.com/dp/B0B94JZ2YF?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

I'm thinking that I want to use something like ComfyUI (an AI-image/video generating program that runs locally) to generate the visuals to be projected onto the lampshade. ComfyUI uses flow programming like Touch Designer does, so I found it easy to navigate the interface without as much of a learning curve as there would have been otherwise.

I'll want to use API data to get weather, lighting, and location data to determine the generation of visuals, but for now, these are examples of some images I generated with one of the pre-downloaded safeTensor checkpoints.

For the purpose of this project I will want to figure out how to (if it's not too steep of a project) create my own sort of image library for the AI to draw from when generating images. I don't want my projections to read as AI images, so narrowing down the aesthetic of what the generator draws from will be important. 

ChatGPT is my initial stop for gathering information on the different steps required to make geographic location data eventually turn into a generated image. Here is the code it suggested for having an API cause effects on ComfyUI: 




 What I need to solve next is how ComfyUI can interact with Touch Designer and the electronics I've ordered. 

6.1 Going in-depth with Touchdesigner

Touchdesigner tutorial: https://youtu.be/qbupHTeJCeU?si=RNrKQOkRDrGAqVKa

TOP operators:


Lookup: allows us to change colors/have manual control over colors



Edge: outlines the edges of shapes in a previous operator

Transform: applies 2D changes to an image

**You can select all layers and change the resolution of all of them under the "common" tab


Noise: a data-generating operator

Displace: can be combined with data operators like "noise" to create mathematically-determined displacements/transformations of images

Level: changes brightness and contrast

HSV adjust: changes hue/saturation values

Crop: crops any output image

Movie file in: allows any video file to become a part of the generated images (in the screenshot above, it's the banana)

Tile: multiples the image

Mirror: flips images at different angles

Cross: combines images with a customizable ratio

Switch: blends from showing one input to the next (good for making animations that change over time)


CHOP operators

CHOPs get data from elsewhere to be input into Touch Designer: data can be used to drive other parameters.

Math: helps to remap the range of our inputs to be suited for their specific purpose in the next step of the program.

Null: allows networks of nodes to be closed properly so that the data can be used in the next section of the program



Pattern: produces different mathematical patterns that can be used to control other operators

Beat: acts as a timer that rests on a regular beat, allowing it to be used as a pace-keeping inpup

Lookup: combining lookup with beat and pattern (or other chops) to return the value of where the pattern is at:



**making sure the index ranges of chops that work together match up is important.

Lag: slows down rapid changes in input channels (for example, it makes animations cleaner)

Filter: smooths or sharpens input channels

COMP Operators:

COMP operators contain their own networks. COMP is short for component

Base: allows for a whole network to appear as a single operator in a larger network

In: used to create a TOP input within a COMP: (here, sop_tutorial is the COMP)



SOP operators:

SOP operators are surface operators; you can create, import, and modify 3D geometries with them.

Merge: combines 3D shapes

Transform: changing translation, rotation, scale; you can use them to make a 3D scene.

Noise: morphs shapes across time.

Adding images to the surface of COMPs requires:

    Camera COMP: acts like a real world camera to film your point clouds in pixel format

    Light COMP: casts a light in a scene

    Geo COMP: turns a geometric scene into a COMP

    Render TOP: renders all 3D objects as pixels





DAT Operators:

Text: allows the editing of freeform text; can also be used for writing and executing python scripts

    to run a script, right click on the text box and hit 'run script.'

    text boxes and global and do not correspond to a specific module

"members" in python return parameters/information about operators

use the Python TD documentation to create scripts for specific purposes

COMP Operators:

slider COMP can be send to a null to control the parameters of another operator

if you have a network of multiple operators you'll use repeatedly, drag them into a base COMP to be able to use them as a single operator

Working with Audio:

Audio file in CHOP -> Audio device out CHOP plays an audio file.

you can use data occurring in an audio file to affect other parameters

    Audio spectrum -> Analyze: outputs a single number to the channel

    tools -> audio analysis -> null: another way to have audio data cause change



14.1 project 2 prototypes/planning

I began prototyping this week by mapping out all the individual elements I need to construct for my seed growing lamp, which has become some...