Thursday, May 9, 2013

Final Project: Physics

My partner and I decided to try and combine two programs of ours into something cool for our final project. He had wrote a web drawing program using the TUIO library and I had had started build a basic 2D physics engine. Ill skip for now on what it ended up being and later explain how we got there. This what the starting screen looks like.
We ended up basing it mainly off the physics engine and just adding the web drawing as a feature. You can turn it on and off using one of the button in the lower right hand corner. The rectangles move around in the left area and you can control certain properties of the engine using the interface on the right. You interact with the program using the TUIO library. This also allows you to grab the squares and throw them around the screen or break certain squares into four part by turning break mode on. Here are some photos of the program in action.


In the middle photo you can see the web drawing feature turned on. The lines that are draw match the color of the square that makes it. In the lower image you can see the engine can handle a lot of shapes assuming collision detection is turned off. It can still do a fair amount of shapes with collision detection turned on.

Now let me describe my portion of the project. I did essentially all the coding for the project. I had already set up the main working physics engine but I spent a lot of time refining the program and adding lots of new features such as the breaking apart and  being able to switch from 3D view to 2D view on the fly. I also did all the UI coding. I figured out how to make sliders and buttons out of existing code in my program. I just use a shape and the function to detect if a cursor is inside the shape when it is added to tell if you click on a shape. And for making a slider I just bound a shape to a line and used my code that allowed me to move shapes but I just didn't move it along the y-axis. Also the numbers in the upper left hand corner is the collision counter for program. It started out as a debugging tool but I liked it a lot and just ended up leaving it in the program. One of the coolest things about this project is that I got results that I was not expecting or trying to make happen. If you increase the elasticity and get the shapes moving at max velocity they end up forming into lines and you can get some cool looking affects. With a certain amount of particles I could get it to look like grease popping on a stove. With more I could make it look like a water show. With even more I could make it look like waves of water on a beach. Or with even more it looks like those lines on old television screens.
I really enjoyed this project. It never really felt like homework. I wanted to work on it because I enjoyed it and I wanted to see what I could get it to do next. I hope to continue the project continue to upgrade the engine to do even cooler things.

Here are all the links you will need to run the program yourself:
The TUIO library software: http://www.tuio.org/?software
I used the mac track pad software called "Tongseng" for the tracker software.

Also I would like to try and add later a web version of the program that you can manipulate by using the keyboard or maybe the mouse.

Wednesday, May 8, 2013

Art Show

We had an art show during the middle of the semester and for my contribution, I and another student worked out how to make our professor's program work with a multi-touch library in Processing. Our goal was to be able to push around the simulated fluid dynamics with multi-touch inputs using the TUIO library. This library works by getting the information over some tracking software that using the TUIO protocol. This can be for any type of hardware: wii remote, track pad, light sensor, etc. For our project we had a table that detected touches by detecting light fragmentation on a piece of acrylic glass. I did a lot of the programming for this assignment. Setting the table up for the art show was quite a task. The table basically fell apart on the way over and luckily we had a back up battery power supply for the computer. Also for the art show I entered my Visual Poetry assignment. We ended up having to buy apple VGA converters to run the programs because the Linux machines that we had were not capable of running them. I enjoyed being in charge of getting mine and two others' programs to run on one screen. It turned out pretty well in the end. I enjoyed my first art show experience.

Thursday, February 14, 2013

Artist Statement / Three ideas


Artist Statement:
Andrew makes art pieces that are designed to make people thing about specific concepts. He achieves this through the use of technologies that he learned in college as a CS major and through psychological principles to impact the way that people think about things. He uses a combination of digitally created visuals and physical devices to make sure there is impact on the viewer/user.


“A Working Community”
The goal of this project is to make people aware of the implied trust that we all have in each other. For example I trust people will not attack me as I walk around campus and people will not cheat me on agreements. I want to achieve this though some sort of community simulation using digital technologies and hopefully some physical devices.

“Cyborg Art”
For this project I want the viewer to interact with a computer program in order to create a unique work of art. They could interact through gesture recognition or just changing some values that get fed into the algorithm. Harold Cohen inspired the idea and his artwork he makes with a program he made called “AARON”.

“Meaning Map”
For this project I want to visualize a mapping of word meanings. It would be something like a graph and each point on the graph would be a word and it would connect to other words to form the graph. For example ‘banana’ would connect to ‘monkey’, ‘apple’, ‘slip’. This could be used to show differences between dialects or differences between languages.

Sunday, February 10, 2013

Assignment 2 (Visual Poetry)

For this project we had to use words from some text to make new sentences out of another text. For my source text I chose the text from a computer science textbook. For the other text I choose song lyrics. The song was "Some nights" by Fun.

The main goal of this project was to form new random sentences and visualize them in some cool creative way. I decided to focus more on visualizing the background process of how you create the random sentences. It starts out by the source text scrolling across the screen and being filtered into group by parts-of-speech. Then the other text fades on the screen, then turns into the form or just the parts-of-speech. Then you can see random words moving into place to create the new sentences. Once the words are in order. You click on more time and the words will move slightly letting you know you are in edit mode.

In edit mode you can adjust the spacing between words, randomize the color of words, randomize the fonts, and randomize the font sizes.

- Pressing the 'w' key will decrease space between words
- Pressing the 'r' key will increase space between words
-Pressing the 'h' key will randomize the color of the words
-Pressing the 'y' key will reset the color of the words
-Pressing the 'j' key will randomize the font of the words
-Pressing the 'u' key will reset the font of the words
-Pressing the 'k' key will randomize the font size of the words
-Pressing the 'i' key will reset the font size of the words

Below I have two images of my sketch at the end of the program. The top one is when everything is default. The one below is where all the variables have been randomized.
Here is a link to the zip file of the source code:





Some lacking of the sketch is the variety of parts of speech. I only have the basic 8. So the sentences do not often flow well. Another big one is the lack of punctuation. I didn't consider it till closer to the end and basically ran out of time to try and find a way to make it work. Also I would have liked to have added more features to edit mode but again ran out of time.

Sunday, January 20, 2013

Assignment 1 (Abstract Piece Mimicry with Processing)


I chose a piece by Josef Albers called Gitterbild. It was made in 1921. It is a combination of glass, iron latticework, and bronze wire.
The main reason I like this piece and the reason it is in the MOMA exhibition is because of the color. You can really see how smart the original position of the squares are when you start shuffling them around. I have shuffled them around a lot of times and none of the other arrangements have looked near as good. It really shows that he knew what he was doing with his color. There is no real shape that you can make out of the squares so it allows the eye to focus more on the color. Initially I didn't know it was made of glass but knowing now it makes the piece more impressive to me. In the new realm of digital art it is hard to tell how much work a person put into their piece unless they tell you. With a piece like this one you know how much work he must have put in to making the glass and carefully putting it all together. It shows the physical skill as well as his amazing understanding of color theory. In fact he later became  a teacher and had a great influence on color theory.
This is the link to his work in the MOMA exhibition: http://www.moma.org/interactives/exhibitions/2012/inventingabstraction/?work=14

Here is the link to my attempt to mimic this work with Processing:
https://www.dropbox.com/s/isg173qzdmrftwl/Assignment_1.zip
I tried to match the colors as well as I could and focused on the squares and the wire. There is some randomness to the squares that have dots on them and I randomized the angle of the wire lines to make them look bent and curved. There are some interactive features. If you mouse click it will toggle between an image of the original piece and my generated one. This allows you to easily compare the two. Also, I added a feature that allows you to scramble the squares into a new order and then you can see them move into their new positions. You press the 's' key to shuffle the squares' position values then you press and hold the 'm' key to move the pieces. It takes about 5 seconds for all the pieces to move into place. You can press the 'r' key to reset to the original placement or toggling to the original image with a mouse click will reset the placement of the generated piece.

Sunday, January 13, 2013

ISTA 401 Three Artists

I found an artist on http://www.dataisnature.com. Lucid Phantom Messenge – Herwig Weiser. I did not entirely undertsand what the piece was but it had something to do with inputing electricity into chemicals and seeing how they react. The main point is the idea of observing an autonomous process that you do not have control over. This is what interests me about the piece and about computing possibilities. When I develop games or brainstorm about what I want to do, it often involves some awesome autonomous process that makes the game unpredictable and more interesting experience.

Here is another piece I found on http://createdigitalmotion.com. It is by Peter Kirn. It is a really cool and beautiful visualization of music. This idea of visualizing music is not something super new. It reminds me of the Fantasia movies by Disney. It's very interesting how different but similar they are. I don't understand much about how this is done technically or artistically but i'm interested to try and figure it out.

This is a game from the Massachusetts Institute of Technology's Game Lab. It is called "A Slower Speed of Light". It is a basic run around and collect 100 orbs to win the game but the more orbs you pick up the slower the speed of light gets. This changes the game a lot and lets you, in a way, experience some special relativity situations and helps people understand them more intuitively. I wish I could play it. Hopefully it will be available sometime in the future. I'm interested in it because of the representation of physics in a virtual environment. I love simulations of the real world. I love playing flight simulators or anything in that venue. Here is the link to the article about the game.

ISTA 401 Introduction Post

I was homeschooled all the way up till college. I went to a community college my senior year of high school. I took their basic computer class which had a little programming at the end in Visual Basic. I really enjoyed it and that is what got me initially interested in programming. The next semester there I took a very basic C++ class which really only taught simple syntax.

Fast forward to present day and I am a senior CS major hoping to graduate this May. I have taken CS 227(java), CS 245(discrete math), CS 345(data structures and algorithms, w/ java), CS 335(More advanced java), CS 252(Assembly), CS 352(C and Unix), CS 452 (Principles of Operating Systems in C), CS 425(Computer Networking Java/C), CS 460(Databases), CS 473 (Automata/Computing Theory), and I am currently CS 466 which is Computer Security which is in C. I have a good amount of programming experience. I'm fairly confident in my technical ability.

As far as my creative abilities go I am not nearly as experienced. I wouldn't consider myself to be very creative but I am excited to see what I end up creating throughout this class.