Wednesday, October 14, 2009

Apps + Apps


Okay this lets you create QR codes in your browser:
http://flash.tarotaro.org/blog/2009/07/12/mgo2/

I'm very curious who tarotaro is. Thanks. I am stating to understand the hours it takes for these things to come together. I am a novice^2.


Also, after installing CS4 and flex I realise that I want be really want to be using a Beta Flash Builder located at Adobe Labs. Do I still need flex? Who knows.


huh.

http://labs.adobe.com/technologies/flashbuilder4/

Tuesday, October 13, 2009

Code Snippets


I bought flex builder. I'm in it to win it. Having professional tools makes things easier, creation faster.

Useful: code snippets. You can create hotkeys to do a lot of the coding for you instead of writing things over and over. I could delve into personal concerns about authorship and intimacy with code that this brings up, or I could use what the professionals use and actually get things done.

Helpful link, shout out to the gentleman who wrote it:

http://cookbooks.adobe.com/post_Handling_snippets_in_Flex_Builder-13507.html

Shortcuts != art?

Wednesday, October 7, 2009

Red Ink / Red Tape


sourceforge.com
tigris.org

These are places where you can download IDE's, packages of code that enhance Eclipse. What's Eclipse? Eclipse is a free code editor (think Word for programming). It's useful because, much like word, the editor highlights mistakes formats things and makes life easier in general.

I have spent the entire night hunting down the plugin for ActionScript. I eventually found it here:
http://www.fdt.powerflasher.com/developer-tools/fdt-3/download/

But this was after many brick walls and misleading blog posts. What I think is going on is that Adobe, the creators of Flash, Photoshop, Dreamweaver etc. want people to pay a few hundred dollars for THEIR plugin for Eclipse, called "Flex." The majority of developers do, so the subculture/open source culture for this project is dying out. Sure, it's only a few hundred dollars and is probably better than anything I'd find... but I've read all over the place that paying for ECLIPSE is a sin and there are ways around it.

I don't have the cash, but I also don't have much more time to mess around. I should be further along schedule than I am.

These tools shouldn't be so difficult to discover.

Or maybe they should.

Either way I'm probably going to shell out for this thing and eat less for awhile. What if I just_couldn't_afford it? Art wouldn't happen. The void between those who "can" and those who "can't" is only going to broaden as what we can do... develops.

I feel like I trying to catch up to a bullet train on a rusty tricycle.

Monday, September 28, 2009

Assessing Other AR Works (While adobe emails me back)

Wouldn't reviewing AR works, games and experiences be the greatest job in the world? What aspects of an AR work would lead to excellence? Let's give it a shot:

1) Lalala Lab's AR works' "AR Magic System" and "Careful, Fragile!" are both worth mention because they make meaningful, creative statements about identity and art using recently developed technologies (both were made in 2006). In Magic System, the artists seem to use a pre-established human ratio of eyes-to-mouth as a QR-Code to detect viewer's faces. Once detected, viewers faces are replaced by foreign visages (digitally laid over). The AR industry standard modus of the user staring at themselves on a screen is the most limiting aspect of the field today: the technology is tied to one place, one code, and the viewer has very little freedom of movement. However this technological imitation emphasizes Lalala lab's viewer-as-art message instead of detracting from the function of the installation overall.

The viewer is forced to solve a puzzle AR so often presents those unfamiliar with it: what's going on here?
Here, to answer this question the viewer must reassess their identity and experience what
their life could otherwise be. The designers take what would normally be another problem for AR designers,
the first moments of disbelief, and use them to a emphasize an artistic message regarding selfhood.

Careful, Fragile! uses what are now basic methods of laying a 3-dimensional object over a QR-Code (the vase, the black platform) to create an artwork concerning reproduction, originality and art itself. The vase-image is scripted to "fall off" of its pedestal whenever the QR-Code becomes obscured by a viewers passing hand. AGAIN, the artists take what would otherwise be a weakness in the tools they are using (QR-code obstruction) and make creative use of it with a bit of scripting.

Wonderful design.


The question remains: would these works gain acclaim today (three years later)? The technology has advanced to a point
where QR codes and face tracking have a been-there-done-that feel to them.

Other face-recognition projects, implemented later:

Coraline: http://www.youtube.com/watch?v=pOrAaCnkBeg
Transformers (http://www.youtube.com/watch?v=pzB4mIPdm9k)

Lalala Lab's made incredible use of what they had when they had it by creatively designing their installations
around their technological shortcomings.


So how do I make creative use of new limitations today? Need to find the limitations first.




Gearing up for ISMAR



Found a very detailed and useful guide on how to set up FLAR at http://www.gotoandlearn.com/playid=105. I'm conducting an independent study this term in AR.
The goal: to create an AR music visulizer. To keep me honest, I'm going to post the proposal right here.

Hold me to it:

Brendan Scully (why is microsoft word having difficulty importing text?)

Digital Humanities Study 09F

Professor Mary Flanagan
Digital Practicum: Reality Manipulation

Concept:

In this course of study the student will explore new methods

in the creation of mixed reality media works by building a

music visualizer presentable to the public in the form of a

gallery exhibition. Three-dimensional sculptures laden

with data will be displayed to viewers using AR goggles.

As Augmented Reality is a fledgling technology, much of

the effort involved in the creation of this project will

involve research and experimentation with Flash and the

FLAR toolkit. The end result could thus range anywhere

from a series of three-dimensional sculptures to a fully

dynamic 3D visualizer tied to live musical data.

To aid in the production of this installation, the student
will attend the International Symposium on Augmented and
Mixed Reality in Orlando Florida in October. By this point
in the term, the student should have a concept report and
appropriate questions for specialists in the field.

Project Schedule:

Week 1: September 20th – 27th

Concept fully realized, workflow established between within Flash

Due: The production of one Papervision-> FLAR model.


Week 2: September 27th- October 3rd

Attempt to tie music data to Flash models (via socket

programming?)

Due: Log of attempts to establish socket server and/

or tie data together.

Week 3: October 3rd – October 10th:

Build out visualizer into floor-based experience that ties

music input to visual changes.

Due: One model column rising/falling

Week 4: October 11th-October 17th

Skinning/Shading Objects in Papervision using Photoshop.

Due: One test model fully skinned / shaded. (color)

Week 5: October 18th-October 24th

ISMAR 2009 Orlando Florida,

Present questions regarding sockets/FLAR data

to specialists.

Week 6: October 25th- October 31st

Refine Flash visualizer data input using methods

gained from ISMAR.


Week 7: November 1st- November 7th

Implement visualizer in FLAR/Papervison using QR code

and glasses obtained at ISMAR.

Due: Establish model to ascertain optimum viewing distance.

Produce large custom QR code for testing purposes.


Week 8: November 8th- November 14th

Refine visualizer to handle large amounts of sound data input

What is the upper limit?

Once established, continue work on sound design to make best

use of technology available.


Week 9: November 15th – November 21st

Aesthetic/Design work on visualizer with technology available.

Week 10: November 22nd – November 28th

Due: Performance/Exhibition using visualizer (Final Product)













I'm taking Music 9, "Music and Technology" along with this independent study;
the two should compliment each other perfectly.

My professor for Music 9 (www.twitter.com/mu009) has experience
with AR: he built an ocular reader as an undergrad and is currently
working on a project that helps amnesiacs recall their surroundings
by labeling their world for them...
woah.
I am not worthy.

In the mean time, watching the tutorial and trying to clean up my AR
folder from the summer. We sort of jumbled everything together to
make things work...
I'm starting from scratch to make sure my workflow/folders are clean
and ready to roll. How lame is that? It's like I'm growing up or something.

Why waste my time? Because Adobe is giving me grief about my
"control code" and I'm locked away from the tools I need. I mean,
sure, they programmed everything and deserve the right to charge
me but... what kind of artist is one who's work is
the whim of a toll-free number?

What kind of artist is one who just figures things out by watching demos
and reading blogs and trying things out?

There are no formal schools of training for what I want to do.


Wednesday, August 26, 2009

Philosophy != code?






So taking some time off was good for the soul, but did it help my Flash literacy? Maybe.





My time spent away was refreshing, grounding. But a pure experience of reality like the one Aldus Huxley attempts to explain in his "Doors of Perception" would, most likely, render coding completely uninteresting. How would he have responded (under the influence of mescaline) to Augmented objects in his reality?

Anyway my progress has been held up a bit. Wrote a small Flash game called "Alien Shooter" Where you just click on triangles as they fly by. Not sure how to host things like that.

I also ordered a scanner so I could correctly model the figures I want to augment with first. Turns out "Mixed Reality" is a more easily understood term for what we are doing. Does that imply that there was another reality of ideas that is currently mixing with the physical?




Been doing a lot of research, writing a series of proposals. Turns our AR is way more advanced than I had previously thought.

www.gamesalfresco.com has the right idea exactly. His links and posts are incredibly useful.

"Welcome to “games alfresco” where I vow to sensuously take the pulse of the new field of Augmented Reality (AR). They say it will reinvent interactive entertainment. And I believe it’s best played outdoors – alfresco.

If it’s your first time, start the journey by observing augmented reality through my eyes with the Top 10 AR Demos post."If you’re into hardware – you’ll find solace with the Top 10 AR Devices, always a top post.

As a game developer, you’ll probably hang out in the Top 10 AR Engines area – a constantly evolving field."


Look at where things are! It's incredible already. So my post about programmers being succeptible to spiritual entropy inspired a response from a close friend in the field:


[her email]


... Also, what is this?


"It seems like every programmer I've met has let go of a certain degree of flexibility (spiritual?). I hope I don't lose touch. But I don't think I have to. Programming is the newest artform, and only a certain kind of person has been willing to engage with it."


explain, I want to talk about it!


--- end of quote ---


[My response]


I guess I have an irrational fear: by studying the way logical, digital, formal systems work and by bending them in intricate ways, programmers become affected by the systems. The mental processes of those who use code/ can think in it may or may not become somewhat logic-leaning. I don't believe rationality has anything to do with the phenomenon I'm trying to describe. It's just... something I experience in meeting people who program.



Some people get taken down by it, others don't (you) because they're stronger, have a stronger personality, something....


I guess I was afraid that programmers become "hard," inflexible to a certain degree because they know a logical decision when they see one and, understandably, might be more likely to act in unnecessarily efficient ways.


But so far... I remaind unaffected. Maybe a little, in that my mind is becoming more able to think in coding structures, literally beginning to think in a different language.


It's a similar effect I guess I'd pick up after meeting a series of people who had learned to speak russian after english late in their lives. Or arabic. Something. These people might develop a kind of alternate personality.


Or maybe not.


ps. I dont really like the name "Augmented Reality" maybe "Holodeck narratives" or "interactive movies" would be better.



[Her reply]


Hmm. I suspect that we do get a bit hidebound about things, because we spend so much time with the constrictions of current technology that we focus on what we can do, and what we can do easily. So when we see something that isn't going to be easy, we immediately think of the painful hours that are inevitably going to come. And part of it is probably the type of people who usually become programmers - people who really like logical systems. Because it's just easier for them to think that way, and it makes them happy.

If we're talking about programming seeping out into the rest of life and, if you want to view it like this, muddying the waters, I feel like logical decisions and efficiency and all that comes from having an analytical vs. non-analytical approach to life. To be a good programmer, you have to be comfortable approaching problems analytically, which again means that many programmers are naturally analytical - correlation does not imply causation.

A lot of programmers are incredibly literal-minded and think very logically, but it's not necessarily because of the programming. Granted, when I program I put on my logic hat and end up talking logic-speak. I also use computer metaphors a lot more than nonprogrammers (inevitably, I suppose), like the concept of conversation as a stack. But my mind isn't completely computer analogies (although there are many in there) - it's also stacks, and filing cabinets and doors and the occasional grassy field (or sloggy, dreary swamp, I suppose, depending on my mood).

I get extremely annoyed when I'm surrounded by non-analytical people because oftentimes straightforward logical argument doesn't work. But I get more frustrated with the analytical types, because only logical argument works (none of this "emotions" nonsense, now, that's just not the thing).

At the same time, working within all those constrictions, and learning to think within them, leads to creativity. (As we know all too well.) To use a metaphor my brother uses for constructing math proofs, writing programs or developing algorithms is like writing poetry in french. If you don't know french, you're screwed. But once you know it, and know it well, then it's a matter of choosing the perfect word and working within the constraints of a system, and being miserably creative, and hopefully ending up with something clever and beautiful and slightly ineffable.

Re: Also, you know I get a little creeped out by AR stuff, because I like my technology nicely compartmentalized




[my response]



Hmm, this question of programing's effect on the spiritual self is going to have need more time, let us... put it on simmer, if you will. I agree that correlation is not causation. Perhaps the mind just works in patterns, and the types of patterns you carry out tend to echo within one's neural system. Logic begets logic. Emotion begets emotion. Have you seen this?:


Perhaps there is a relationship.

Anyway thanks so much for checking that out. I am also worried about mixing realities... but for some reason I am drawn to it. Maybe its like wandering down to the battlefield to try and save the wounded.

maybe I'm just trying to escape.



That seemed worth posting, forgive the length. Now it's time to look at socket programming, work on proposals and try to freshen up with maya. All while working 7 days a week. Coding is a full time adventure, but for right now the it will have to take turns with maya.


Gotta build the illusion before you make it do tricks.

Monday, July 27, 2009

The Solar System



So I used tweener to move mercury once around the sun, but Nick wasn't satisfied with the way it was working so he used a file downloaded from "FLARmanager" that did the same thing as our borrowed "simplecube" but did so by extending "sprite" instead. What the hell is sprite? We're figuring that out, its used to display graphics in flash somehow, but whats handy is it has a method called "moveobject." We discovered that each object that's displayed is held within a "container", and that by moving these containers ("basenode" in the original code for simplecube was itself a container), you can move the objects they "contain".

Long story short, with some sin/cos tricks and by getting variables from an imbedded timer called "getTimer," the planets in our solar system not only move around the sun, but do so at the correct relative speeds. Gotta give this one to Nick, I made them move but he made them fly.

Get Hyper baby:



Off for vacation in Aruba for two weeks, hopefully the project doesn't suffer. It feels good to have gotten this far.



-Brendan

Wednesday, July 22, 2009



July 22nd:
So we're trying to get a "simplecube" to move around.
Looked up "Papervision motion" and found an open source library extension of papervision called "Tweener," downloaded the code (really just a bundle of new classes) and dragged them into what I hope is our library.

Tweener is incredibly complicated, but the examples are amazing. Now we're trying to just use LAzyRenderEngine, the graphics renderer used by Sasqoosha, to move something around.

An exaple on osbo.com tells us to:

  1. Import event class

import flash.events.Event;

  1. Listen for enter frame event

addEventListener(Event.ENTER_FRAME, handleEnterFrame);

  1. Handle enter frame event

private function handleEnterFrame(e:Event):void {}

  1. Rotate object one degree on Y axis

object.yaw(1);

  1. Set material to double-sided

material.doubleSided = true;


But what the hell does that mean?

But these instructions left out quite a lot, required too many parameters. I tired to write an if/than loop to make the z coordinate of the cube increase by one for every render tick.... flash didn't like it. I had no idea what the write grammar was for flash, it might even be that only java actually HAS if/than loops.


Then I found Tweener, an open source addition to the Papervision 3d Library that sets up a series of "tweens", what flash usually uses to fill in frames between transitions, so as to simulate motion. Their site explains:

"Tweener is a static class - that is, a class that allows you to run methods on it, or call its properties, but that never lets you create instances from it. This means that, with Tweener, you never create a new object - you simply tells Tweener to do something for you.

Tweener works on the idea that, instead of setting the value of a given property of a given object directly, as in myMC._x = 10, you can tell that property to create a transition to that value - by doing this transition or tweening, you can control your numeric data in a more fluid way, also by using easing equations in this process. Doing slides, fades, and all kinds of animation is the result of this kind of manipulation: by making a property or variable go to one value or the other fluidly, not immediately. Rich transitions and animations with simple code is the aim of Tweener.

With Tweener, you write your code by adding new tweenings or transitions to the movie, using the method addTween. Like this (AS2 version):

Tweener.addTween(myMovie, {_x:10, _y:10, time:1, transition:"linear"});"

So after downloading tweener, and the tweener editing addon for adobe (so that the editor could properly identify errors), I literally dragged the "caurina" folder into the folder where I had everything else saved, imported the class:

import caurina.transitions.Tweener;

And arm wrestled the parameters for an hour until I figured out:

Tweener.addTween(_cube, {x:5, y:5, z:400, time:7, transition:"linear"} );

This takes out simple cube, and moves it to 5,5,400 on the axis in a straight line over 7 seconds.

I want to cry. Hitting command-enter to runt he program over and over and over, searching for errors over and over... then getting it.

Indescribably satisfying.

Even though I copy pasted the classes.

The cube is really really shaky. We cant hold it still enough to read it over a long period of time. This might be a problem.

Implemented a long series of tweener methods to make mercury revolve around the sun in our solar system example. Felt good, but there have to be more efficient/elegant ways to make things move.

I imagine we will need a refresher in geometric equations....

Tuesday, July 21, 2009

Table Calendar Scrawlings

Professor Aden Evens, my research adviser, suggested that I keep a record of my attempt to learn how to program. I have selected Actionscript 3.0 and Flash CS4 as my desired languages because, ideally, they'll allow me to dabble in augmented reality.

Here's what has been written (word for word) on the side of my oversized desktop graph paper tablet thus far:

July 8th:
Books arrive.

July 9th:
Went into the city last night to retrieve my laptop. Thought I was ready. Hit me like a sack of bio-energetic bricks when I actually got it and started using the internet again.

Mind--> Gone

I'd been using my sister's mac. But... with onyx [embarassing name for my MacBook Pro] came
-memories
-illusions
-thinned time.
felt terrible.
Took meditation(?) and cold shower to wash it off me
try again tomorrow with better intentionality
-read an article on the importance of silence. Thinking about selfdom. Why create if not to be seen/heard? No. A misunderstanding. create to create. Niezche said that if we become too fond of an art it begins to take over, that we feel inferior to it.
--> this is how I feel about programming

And yet it controls me. It is energetically powerful.
Need to approach it [laptop] in a better way.
--> put laptop on bookshelf, its just another resource

[written sideways]
there are ways
to control yourself
Rules you can pick.
Best to make these
things a game.
make the rules enjoayble
Up.

July 12th:
After trying to slog through the textbook, a friend came over and we saw an AR example at http://www.boffswana.com/news/?p=392 it was amazing.

-installed papervision + SVNx to upload classes off the web
-debugger for flash 10
-trial version of Flash (30 days)
-flash code editor
-FLAR Manager V.1 sets up default config for papervision + FLAR toolkit (which is crazy complicated)
-also downloaded FLAR toolkit, which apparently also comes with the manager
FLEX (trial version)
--> downloaded a bunch of useless garbage from words.transmode.com "oh, just initialize the constructor!" --> Sasquoosha gives it all to us much more clearly.
Marc Pellund --> program called flash developer (turns out not to work on mac)
Peck [my friend] struggles with my laptop as much as he struggles with code (turns out not to work on mac)

But we make this happen, thanks to sasqoosha, and it feels good:
[July 22nd: looking back, this sounds confusing. That's because it was. We had to install a multitude of libraries and programs to begin authoring things. Just getting simplecube to show up was magical. Can't take much credit for it, though I assume there is considerable labor involved in figuring out what to install and click by browsing the internet. It's a shame that this heavy barrier exists. Children are handed books made for them to learn how to read. We had to search for code we couldn't begin to understand. Fun challenge though, exciting. Most people probably wouldn't be as jazzed]

July 15th:
-libraries still scattered, not quite sure HOW everything is working, but moving forward anyway.
-used google language tools to translate Sasqoosha's Japanese comments on his example AR class "SimpleCube." Suddenly the code makes a hells of a lot more sense
-trying to steal "holy sphere" example from pv3d.org.
-code editor in flash helps SO much, it tells you where your errors are popping up. Tells you the specific line where there's an issue. invaluable.
-Succeeded in changing sasqoosha's simplecube into an augmented version of John Lindquist's holysphere. Also changed the color by randomly switching f's and 0's in the material's hexidecimal color code. I have no idea what hexidecimal is, or how it works, only that altering it changes colors.


[July 22nd: later, excited, I explained what we had done to an engineer friend. He was impressed, but skeptical. He was concerned about our aspirations when all we had done was slightly remix "stolen" code found on the internet. I guess he has a point, we aren't starting from the bottom up, as he would like. But to do that would involve learning binary (one's and zero's), making a machine language, inventing another abstract language to edit that, building an operating system, editing user software, writing a graphics renderer, a code editor, etc. IMPOSSIBLE. That's the thing. My friend's criticisms, at their roots, were remixes of words he had "stolen" from his teachers and parents while growing up. We are learning, or attempting to learn by doing. I feel no shame in using the OUTRAGEOUSLY HELPFUL guidance of Mr. Sasqoosha and Mr. Lindquist. In a way, they are our teachers. Languages exist only between the people that use them, we could not have constructed these things ourselves.]

July 16th
Nick and I discussed future uses for what we are doing. games that lay over reality using eyeglasses with cameras in them. Told him about my friend E's ideas, about Brian Mengwasser's engineering ability. It's easy to get excited about the future, but hard to stay excited about the code without setting mini goals. "lets make a cube" --> "lets make a sphere" --> "lets make the solar system!" --> lets make it spin!
-talked about 3D modelling, read somewhere online that we'll need to worry about something called a Ravix vector plugin to make that work.




[July 22nd: Also realised that buying maya to import models into reality and flash to make them move was going to cost us hundreds, if not thousands of dollars. Quite an entrance cost when joining this market, this industry, this art. Far steeper than pen/paper/dictionary, eh? Far more culturally and socially exclusive than molding clay or painting figures. We need to free these tools. Open source is the answer, and it's the only reason we've made it as far as we have. Thank you whoever figured out papervision, a free, opensource 3d graphics enginge for flash. Thankyou Sasqoosha for the open source FLAR toolkit. Thankyou blender, a free open source 3d modelling software we might have to use. These people understand how the tools need to be distributed for digital literacy to happen.... but still....

learning how to use a keyboard, how to read a webpage, how to use a mouse.... all play into it as well. We need to free these methods/technologies from the absurdly expensive, limited and controlled machines we currently use to run them. Perhaps augmented reality could make learning computation more readily explainable to those unfamiliar with slogging through simulations. (3rd world populations, computer illiterate citizens, children). Do we even really want them to be using this stuff? So far, yes, there seems to be nothing sinister or anti-spiritual about setting up cascades of logic. But im keeping an eye open ]

Wednesday, July 22nd:
I must say, just trying to understand what is going on feels like attempting to read french with a dictionary by my side. It's LITERALLY another language.

Frustrating, but what feels good is when you observe how the author of whatever class im reading (currently LazyRenderEngine) extends something in an efficient way or calls a variable that he/she has plucked from another class. Watching the ways in which functions are interwoven.... it's quite like admiring the tone or rhetoric of a piece of writing. Once you can read the basic words, literacy builds up. "Oh, I've seen that method called before" Slowly, subtly, it adds up. I hope one day to be able to sit and read the work of masters with full appreciation. The feeling of satisfaction (and a pinch of jealousy) will most definately satisfy my liberal arts passion-for-beauty-in-art.

In short: This code is beautiful.

Final note: we "test" the code by literally holding a QR code up to my laptop's webcam. If it works, the object we imagined suddenly joins us in the (augmented) physical world. This is intensely satisfying. Really nice feedback for our hard work. It has become a bit of a ritual. Now that all of this is down in writing it feels more serious. Time to get to work.

Friday, July 17, 2009

Impetus

Who the hell cares about programming? People turn away from it, laugh at it. They fear it. But that's why I'm interested. "I am a designer" is often just an excuse for not being willing to figure out how things work on a basic level. NO ONE in our society has any idea how their computers are working all the way through.

With all of my time spent looking at a Digital Humanity I never took coding seriously, never thought that I could. I was scared away from it by a hostile intro to compsci prof, by the stigma surrounding it. I spent 2 years studying that fear, looking at what computers were doing to me.

So now I want to get my hands dirty, to see what I can do to it. Logic logic logic. It's beautifully different from how I am used to thinking. It seems like every programmer I've met has let go of a certain degree of flexibility (spiritual?). I hope I don't lose touch. But I don't think I have to. Programming is the newest artform, and so far only a certain kind of person has been willing to engage with it. As the forward in "Foundation ActionScript 3.0" explains:

"Today, we look upon programming as a purely technical pursuit. We talk of a divide between the creative and the technical, and lump programmers in the latter. The programmer is today as the filmmaker was early last century: an artist toiling in relative obscurity, awaiting a code-literate society to appreciate the nuances of her art. Will it take a century to happen? I don't think so."

It's really not that hard.