Final Project

For my final sketch, I wanted to create something that resembled a game and allowed the user to create their own universe, and the fate of their universe would be dependent on the choices they made. I completed what I set out to do; the user enters and is told to enter their name and then directed to a blank universe where they use checkboxes to create planets and sliders to manipulate the radii of the planets. The possible fates of the universe include: getting consumed by a black hole, the universe exploding, getting taken over by aliens, environmental problems, problems with meteor showers, having tense relationships with aliens, unhappy inhabitants, and successfully creating a thriving planet. My biggest hope was to get the planets to hover in place because rather than view the universe from above in a circle, I wanted the view to be of the side (so that the planets are side by side). I didn’t plan on adding the ability to alter the planet’s radius, but I wanted the user to have more input in the creation of their universe. I originally had the idea of making the game 3D, but I did not like the way the p5js spheres looked because I didn’t want the lines of the sphere to appear and I preferred the look of 2D. I was disappointed that Openprocessing changed so that the gif library no longer worked because I had to replace my gifs with still images and the gifs added movement to the sketch. Overall, I’m happy with the way my sketch turned out; if I had more time I would add more questions to the quiz and make the scoring system more complex.

 

Final Sketch

Final Update

This week’s biggest accomplishment was getting the radio buttons to work; now the planets can be added and removed from the universe. Last week I was unsure about what I wanted to do with the universe after it has been created; during this week I worked on making a quiz that will decide the fate of the universe created. The fate of the user’s created universe is dependent on the decisions they make in the quiz as well as the number of planets that are created. Based on the score, a message will be generated that describes the fate of your universe. I also added a button that allows the user to start the ‘game’ over once they get their universe’s fate (this way they can create new universes and possibly get a few outcome). This week I am going to translate my code so that it uses the scene manager library. After talking to Scott, he recommended I use that instead. This next week I will be working on moving my code and making final touches. I want to make it more stylized; I’m going to finalize text and button placement and pick the final colors.

Final Project

I have the general setup for my final project; I want to allow the viewer to create the solar system, but I haven’t figured out all the details. So far, I have created two home screens; one where the user enters their name and then another one that greets them and tells them the big bang happened and they are going to create the universe. I have all the planets drawn as well and I’m trying to figure out how to use the boxClicked() function to allow the user to create and destroy a planet. I also want to have a button that destroys the universe where a black hole comes and sucks everything up. I am still figuring out all the details because I definitely want to add more. Ideally, I would also add rotation and movement to the sketch to accurately show how planets move. I haven’t decided if I’m going to use the 3d dimensions library because I had difficulty downloading it. By next week I plan to have all the buttons working and hopefully add in some rotation to the planets.

Final Project Inspiration

For my final project, I’m thinking of creating an interactive sketch where the user creates their own solar system.Using a drop down menu, someone can choose the amount of planets that are in the sky and then there would be a slider to control the color of a certain amount of planets. I plan to use the DOM library to make it easier for the user to build up and destroy the solar system. It would also be interesting to have a button that represents a black hole that destroys that the solar system. I think the most challenging part will be allowing the user to control the amount of planets and then generating them to interact and rotate as a solar system. I think the initial sketch will have a rotating sun in the center. I don’t know if I’m going to work in 3D; I will first try to get the basics of the sketch down before I attempt to go into 3D.

I really like the sketch linked. It is not interactive, but I liked how they formatted the solar system so that it looks like the planets are moving, but they don’t have the normal movement look that most solar system sketches have. This could be an approach that I could try rather than have something like: https://www.openprocessing.org/sketch/386189. Ideally, I would like to combine the two designs and then allow the user to interact with the sketch.

p5js Library

While on the p5js website, I found the dimensions library extremely interesting because it allows you to expand beyond the three dimensions typically found in p5js. The library expands the vector functions of p5js to make the dimensions work. On the p5js website and under the dimensions library, there is a picture of the square that seems to have multiple dimensions and that’s what peaked my interest initially. I think it would be challenging, but fun to work with multiple dimensions beyond the three we typically work with. In processing, working in 3D was confusing, but I think a lot of cool sketches could be made just by fooling around and changing the variables and the number of dimensions. I would potentially want to make a sketch that somewhat mirrors the galaxy because when I think of dimensions, I think of space; I would want to experiment with the effects and functions of the library to see if I could make a similar effect.

https://github.com/Smilebags/p5.dimensions.js

Data Sketch

This week’s assignment was more difficult than most for me because not only did I have to come up with an idea for the visualization but finding which API information I wanted to use. Finding an API was difficult; a lot of them required you to disclose why you were going to use it and you had to apply and then get approved. I ended up using Spotify, but I had difficulty because only some of my API requests originally worked; sometimes they would say that I didn’t have access. Accessing the data within wasn’t very difficult; I just followed the path through the array to find what I wanted. I decided to take artists that have died and then show how many followers they have and how popular they are in the United States. I think it’s interesting that despite their death, their music continues to be increasingly popular. I also added pictures of them at their peak to add more to the visual aspect.

Research Project – Adam Ferriss

Adam Ferriss is a digital artist based in Los Angeles; he studied photography at the Maryland Institute College of Art where he became interested in using code to manipulate his photos. Later he received his MFA from UCLA. He experiments with RGB tricolor separation, shader programs, and pixel sorting algorithms. When Ferriss first started to manipulate photos, he took black and white photos and added red, green, and blue filters. He started incorporating code by exploring and experimenting in processing; he studied using Daniel Shiffman’s Nature of Code and Learning Processing.

Ferriss creates these psychedelic and optical illusions using photoshop, Adobe After Effects, and putting the photo through an algorithm to distort the pixels. The technical tools he frequently uses are: openFrameworks, GLSL, and Javascript. In an interview with Software Development Times, Ferris explains how he alters the color and movement of the pixels: “I work a lot with noise functions, Perlin noise, or simplex noise. They’re ways to generate pseudo-randomness in color, like shaping form. It generates a seed pixel, and from that one seed pixel it looks out at its neighbors, and continuously expands so its neighbors will start expanding. It’s essentially like you’re growing an image or a crystal in the way it clumps itself together and generatively expands.”

In interviews, Ferriss talks about how he takes inspiration from around him. He finds code that is already out there (he describes searching around GitHub) and then tinkering with it. He changes variables and runs the code over and over again until he sees something he likes.

Before earning his MFA from UCLA, Ferriss ran the photo lab at Otis College of Art and Design.He has also worked with companies such as the New York Times, Google, and Nike and has been featured on Wired, the Creators Project, Fast Company and many others.

I think my favorite pieces are from his collection called “500 Years Away”; the visuals are futuristic and parallel what I imagine space to look like.

Ferris also explores interactive art; on his website he has shared pieces where the user can control what happens. For example: https://adamferriss.com/seeds/

His tumblr      His Vimeo

Learning Processing Reflection

After reading chapter 10 and 11, it reiterated that I should continue some habits and that I need to improve on others. While working on the midterm, like the book said, I primarily worked on the project by breaking it up into parts. I would work on making one object at a time and making sure one worked before I tried to implement another. I also did what the book recommended; I often created new classes in separate sketches so that when I knew it was working, I would add it to the compiled sketch. I think the debugging chapter was the most helpful to me because while making my midterm sketch, it was really easy to get frustrated. Going forward, I will take more breaks from my sketch and talk through it with someone. I think since we know our code so well, problems or errors don’t stand out to us. Something the book doesn’t talk about is not breaking it down into parts, but what tools to use to make something. While working on my sketch, I wanted to make or do things, but I had no clue where to begin. It wasn’t a problem of having too many things or being overwhelmed, it was a problem of not knowing what to do whatsoever.

 

Midterm Part II

For my final sketch, I added a shooting star using an array and a fruit class. I also added rotation to my stars; so that when the user clicks on the screen, a rotating star is created. I added a fruit class; the color of the fruit corresponds with the color of the tree’s leaves. Last week I had a full moon and this week I added phases to the moon. When the user presses a key, the moon’ phase changes. Rather than have a random colored house each time, I just chose to have the house’s door color change randomly.

When I started to create the shooting star, I thought I was going to have to scrap the idea because after making the shooting star, everything else did not work. I have to put the shooting star in the draw class and that means I have to put the background in the draw function so that there is no trail. If I put the background in the draw function, I have to put the rest of my objects in the draw function so that they don’t get overdrawn, but because a lot of my objects change color, it looked really bad. I ended up adding the shooting star by having a black rectangle being drawn to cover up the star’s trail.I also wanted the stars to rotate; I applied the same black rectangle to the stars so that there would be no trace of past rotations. I limited the star’s location because I only wanted stars to be drawn in the sky (and not on the house and moon) and this made coding the interaction between the stars and the shooting star easier.

I added a lot to my new sketch; I refined the colors, added a changing moon, a shooting star, rotation to the stars, and fruit to the trees. If I had more time, I would have made the shooting star look more like a star with a small line following it. I would have also made the tree using recursion so that it looked more realistic with branches.

Link to Sketch:

https://www.openprocessing.org/sketch/516141

Midterm Part 1

My inspiration for the project was the background picture on my laptop which is the night sky. Originally, I wanted to create a solar system where the user can interact with it and add stars and constellations. I changed my mind after seeing a picture of a shooting star and decided to implement that idea. In my final sketch, I hope to have a house with a tree in the backyard where the user can create the stars in the sky by clicking their mouse and simulate a shooting star by hitting a key on their keyboard.

I have already created my House, Star, Tree, and Moon classes and I still need to finish the Moon and Star class and create the shooting star effect. Right now, the color of the roof, door, and house change randomly, but I may refine the colors or limit their changes. The color of the tree changes randomly to simulate the changing of the seasons. White represents winter, pale pink represents summer, green represents spring, and orange represents autumn. I have used the mousepressed function to allow the user to add stars in the sky, by next week I would like to have the stars rotate in the sky. I have created multiple classes and used if statements. To finish the project, I need to learn more about arrays and rotation.

 

https://www.openprocessing.org/sketch/512793