Categories
CodeLab

Mini Project 7 – A Tribute To Bill Evans

https://n30w.github.io/cclab22/BillEvans/

https://github.com/n30w/cclab22/tree/main/BillEvans

I decided to choose the Bill Evans project that I had previously created for this mini project, because I felt that it lends itself to being framed in a portrait, or in this case, framed on a website. I added HTML and CSS to decorate and display the canvas. I took inspiration from art galleries and the way in which they display works of art. I put the title of the website at the top and three short paragraphs explaining my adoration for Bill Evans. I added a fade-in for these paragraphs because I thought that would make the introduction of them smoother, and let the viewer settle into the website.

For some reason, I found it difficult to implement flex containers. However, after a little bit of playing around with them, it turned out that I could have just used a parent div the entire time. Therefore, the webpage resizes with the size of the window. Setting up the website was also a little strange, however that was just a strange error on Github’s part.

This project was good practice for HTML and CSS. In fact, I have a strong distaste for web development. This was fine, though.

 

Categories
CodeLab

Reading #3: New Media Art Introduction

The author Mark Tribe describes New Media art as art that “require[s] audience members to interact with the work but not to participate in its production,” and continues onto say that with Interactive Media art, “the work responds to audience input but is not altered by it.” I fully agree with this definition and still believe that it still holds up to this present day, as it seems that the Interactive Media Arts (IMA) major is based off of this basic idea that interactive art is a sandbox limited to the experiential environment the artist creates.

This article covers many inceptions of what new media art is, for example hacktivism, corporate parody, or surveillance, all of which are disassembled, repurposed, or destroyed by an artist to achieve a creative vision, a vision guaranteed to reach a widespread audience given the interconnectivity developed by the Internet on Web platforms. These inceptions still occur today, however two decades of web existence created an interconnected culture representing individuals many and any, leading to increasingly accessible technology and the concept that the Internet is a basic utility akin to clean water and nutritional food. Therefore, hacktivism and parodies have extended past their ground roots and into the physical space and physical culture. Video games are works of art grounded in interactivity, whether it be on a touch screen or controller, and how much interactivity is granted to the player. Games have created their own culture and can be severely influential in a political climate. A game called Devotion was banned in China and taken off a major game distribution and aggregation platform Steam due to subtle anti-Chinese regime artworks and comments decorated on walls in the game. Games can be classified as a type of political or cultural hacktivism, and most importantly an organic organism synthesized from binary code.

Two Text Examples:

ACCESS (2003):
Created by Marie Sester, let internet users interact with a beam of light in real life that tracked individuals moving under the light, creating an automatic spotlight. Those on the web also triggered the projection of random vocal clips to the person under the spotlight. According to her artist statement, Sester “questions the status of the image” and believes in Transparency, which is obviously seen here in ACCESS.

In a greater context, this blind interactivity between the users online and the people in person creates a unique connection between them; it is a strange dance of control for both. It is almost like a video game, where two sides are battling for control, but also reveals the philosophical idea of a silent play between governments and the people; a fight for privacy and transparency. Who controls who?

Rara Avis (1996):
Created by Eduardo Kac, Rara Avis was an exhibit designed to put the user in the perspective of a bird in a large aviary. The user wears a headset placing their view into that of a robotic parrot, translating their head movements into the parrot’s as well. Kac is a pioneer of “Bio Art”, create art off of biological organisms.

In the greater context, this art could be viewed as a precursor to VR systems we have today, and also a parallel to the way these VR systems, used in simulations, can convey a new perspective through our eyes and ears.

Categories
CodeLab

Reading Response – Long Live The Web

Gathering with like-minded individuals is the double-edged sword to the web. The ill-effect of this is that extremist groups can easily congregate and share ideologies, limitlessly. The beneficial aspect of this is that those who are for a good cause can do the exact same. I feel that the benefits of this outweigh the ill-effects.

Universality and isolation along with open standards and closed worlds are similar concepts that go hand-in-hand with one another. In the context of the article, universality is when the internet is accessible from any device no matter where or what platform it is based on, and permission to access should not and should never be a requirement. In a similar way, open standards guarantee a certain transparency to the way entities operate on the web. For example, HTTP(S) is an open standard protocol used in the web today, however, as the article presented, Apple has their own standard for iTunes links, iTunes, which only works for iTunes and iTunes only. This protocol is not an open standard because it is not documented and not everyone can use it. This is an example of isolation and closed worlds. Apple is one of the greatest examples of this type of closed ecosystem, where all of the inner-workings to their web presence and source code is kept classified. The ironic part about this is Apple’s current effort to parade themselves as a user privacy-centric bastion amongst the lackluster security and privacy features that other companies seem to lack today. However, it does make sense that a walled garden is one of the most, if not best ways to keep maintain and develop a privacy safety since everything is walled off in the first place.

The antidote to some issues presented by the author in the article, such as snooping by agencies or interference with access to the web by companies, is that of decentralization and an openness to the idea of being open. I consider myself a computer hobbyist and like to dabble in working with flavors of Linux. The concept of Linux is quite interesting, since it is an operating system whose source code is freely and openly available to anyone to use to create anything. The idea of Linux was to create an open source operating system that anyone could use, and such a mission is quite important in the lack-luster privacy world we live in today. Linux further embodies this concept since the source code and flavors of linux that exist do not exist on a single server center’s database. Linux is not a company; it is an ideal translated into software. Linux flavors are hosted on servers all over the world and can be hosted on your own computer if you wanted to. This is a type of decentralization that Linux always finds itself in. The fact that the Linux source code is open source, and the fact that the community is full of enthusiasts and full-timers constantly checking and fixing the source code means that there is no “walled garden”. The OS does not track you. You fully own your computer.

I feel that the author’s vision for the future of the web is valid. He is most excited about the way it will further our connections with each other and in doing so deepen our knowledge of everything. I do not disagree, however I feel that this change is gonna take a little more years to come to full fruition. As more young people take positions in power, this change may become the standard in our society.

Categories
CodeLab

Project A – Constellation

Title: Neo Alabastro – Constellation
Subtitle: A looking glass into starlight
Elevator Pitch: Create constellations based on random user-generated restrictions.

https://editor.p5js.org/n30w/sketches/oFcnUffFG

Develop your own “constellations”, in other words intricate, web-like structures that grow on their own. The user places down a node that of which is where a point, or a star if you will, on the constellation spawns. Once placed, the point will start to extend and shoot out rays of opaque white lines toward the rest of the canvas, inevitably stopping at points called “boundaries”. These boundaries are intentionally invisible in order to add depth to the rays of constellations, because the rays create a sense of a finite space in such a way that when the rays do intersect, they will still terminate at a common boundary and do not continue on into infinity. Yet, there are an infinite number of possibilities to each canvas a user creates, since boundaries are placed on user control but at random points, the user can place nodes wherever they please on the canvas, and browser dimension changes aforementioned boundary placement. Furthermore, opaque white, triangular-prism shaped objects criss-cross about every placed node point. This adds a new third dimension to the piece, which adds literal depth, but also is used to illustrate a star system. The algorithm for the way these rings are generated can be toggled using “C” on the keyboard. Pressing backspace on the keyboard allows the user to remove placed nodes, but keeps the generation of the solar system at each node point. This allows the user to have a little more control over what nodes have what solar systems around them. Please keep in mind that controls are kept minimal and intentionally vague. Therefore, this is meant to be an exploratory project.

Reflection:

I wanted to create a minimalist design for this project, because the greater concept that I wanted to tackle from this project is the concept of user exploration. The initial concept for the project, as documented in my slide show for Project A, was to create a some kind of simulator that let the user create their own crystals. I also wanted to take inspiration from two games that had the essence of letting the user decide what to build by giving them options, instead of creating an all-out sandbox. After talking with professor, I decided that the crystal was not necessarily the way to go, because my idea seemed too foggy in my head. A suggestion by Professor was that I should take the action of something and remove that something from the action therefore only showing the consequence.

I was pretty fascinated by ray casting, so I decided to implement ray casting in some form in this project. Ray casting is a technique used in a lot of areas of computer science technology to aid guidance systems or create lighting in games. For this project, I did not use ray casting for either of these purposes, instead I decided to use it to shoot rays from a point, or a node, to hit boundaries. These boundaries are not rendered. Therefore, the only thing that is rendered is node of origination and the rays terminating at the invisible boundary. This created some neat effects, and followed the advice of making two things react and removing the things and just leaving the reaction.

I used a YouTube guide by The Coding Train on how to implement ray casting in P5. I referenced the source in my code. I did some minor edits to the ray code though in order to accommodate the use of arrays. The ray casting code is based off of the line-line intersection formula that is on Wikipedia. This formula is, as I would say, falls under the category of general mathematical knowledge and therefore the implementation of it does not necessarily need to be quoted perhaps. I am not using any novel or groundbreaking techniques to achieve this effect.

Technical challenges I faced regarding the raytracing was just using arrays for the entire thing. Arrays were definitely the way to go, however I kept getting confused as to which array index was which, since the equations were using x’s and y’s each individually denoted with different subscripts. Furthermore, I think that I will be utilizing ray casting more in future projects, because it is an interesting concept and has a multitude of applications in any kind of coding project.

In order to improve this project, I would like to have added more colors or more variance in the way that the rays are formed and cast. Right now the rays just follow a simple rule: hit a boundary and stop. However I find that it would be interesting to develop something where rays would interact with each other, based on placement or whether or not they intersect or are perpendicular to each other. This would create a more organic structure and texture to the entire piece. In fact, a way that I tried to add this organic nature to the piece was by implementing sphere generation. This sphere generation generated around each user placed point. The spheres generate via two different algorithms that employ trigonometric functions. To change the algorithm, the user presses the letter ‘c’ on the keyboard. This changes the way the spheres generate on the canvas. Backspace is then used to clear the user placed points. If there are no user placed points, then no ray nodes will generate, however these sphere structures will still generate around those user placed points, allowing some form of user control over the canvas drawings.

Some critique about the project:

A big part of this project was the exploratory nature of things. I wanted the user to explore how to do things instead of being told to do them a certain way. A lot of the controls were kept a little vague and the user is meant to figure it out on their own in order to let them have creative control over their piece in an abstract way.

– One piece of critique given to me was that the person would click and nothing would necessarily “happen”. I would say that I am at fault here. However, I think I failed to mention that it is exploratory and clicking would let you see the constellation grow from a singular point.

– Another piece of criticism was the idea of “boundaries” and what that meant since they were not showing up on the canvas. My argument is that the boundaries are existent but non-existent. They are there, just not displayed, something that I discussed with professor but perhaps I labeled them wrongly. They are really just termination points in a sense.

– Furthermore, another piece of critique is to adjust the canvas size to custom browser dimensions. I employed that and went from a 2000×2000 canvas size to the browser’s local dimensions.