Friday, January 15, 2010

‘Release‘ 0.3 A mash up of mash ups.

After trying to follow in the steps of 2 Students aka Andor Salga (asalga) and Anna Sobiepanek. They have working 3d demos. I on the other hand do not have demos anywhere near as fascinating as theirs. I ended up getting so frustrated with not being able to merge my code with anna’s processing file, it ended up turning into this disaster. Then I come up with the brilliant idea to just rip anna’s demo off totally and make some minor changes while adding my function calls. After I don’t even know how many days, I end up with this abomination. At this point I’m ready to give up, I figure “you know what?… I might as well just do it the way java does it”. After about 1.5/2 days of converting the Java processing class called PMatrix3D to JS, I’m in IRC and someone links me this.

Serves me write for only keeping up to date with Andor and Anna’s blogs. MinyXO had already made a beautifully converted PMatrix3D set of functions. Once I recovered my monitors pieces and put them back together (not mad at you MinyXO, mad at myself.) I tried to see if MinyXO had come up with a working 3D demo I can try to get working with my code. Sadly he wasn’t focusing on any 3D demos I can learn from.

It is at this point I decided to go back to these tutorials I found way back at the beginning of this 3D stuff. As opposed to just submitting nothing and making all excuses as to why it’s not so bad to take another course next semester, I decided to focus on that tutorial. My train of thought was, learn how the webGL stuff works, then I can write this function in JavaScript and at least make it work in a webGL-only environment. The good thing is that I learned a bit more and have some point of reference to show where I am in understanding this 3D stuff. The bad thing is, I picked the tutorials source files from lesson 1. The most basic. This leads to a whole bunch of other problems I outline in my Tests below.

0.3 Deliverables

  • Wrote this blog!
  • Have 2 sets of 3 demos that demonstrate where I’m at in understanding webGL:

Code Tests

ModelX modelX()

ModelY modelY()

ModelZ modelZ()

ScreenX screenX()

ScreenY screenY()

ScreenZ screenZ()

My thoughts about 0.3 and future releases

Even though I’m not a student in the following course OSD700, I hate leaving loose ends. What I hate even more is not understanding things and moving on to the next subject/semester. The beauty of this open source course is that it’s existence is almost completely virtual (except for the registration payment). This will allow me to remain connected to the community and continue to learn and find out ways I am able to contribute.

One thing I must point out is the desperate need to develop some structure to put in place to unify all the different versions of the processing code that exists. There needs to be a new core file(s). Just as we started processing-js when it had only 2D functionality, as a group we started by feeling our way through this new code and experience. Now that we are hacking out this “3D” functionality, there needs to be a new core file updated with everyone's 3D stuff merged and organized and accepted as the new standard we all pull from. Looking to see if other students had certain functions created in their Git-Hub forks was a disaster that wasted more time then anything else.

A second idea that I think may allow going through processing-js code a bit easier, is if we start putting different types of code into different files processingjs.js is getting bloated. In the Java version of processing, most 3D functions are in files that have 3D in the file name Ex: and are a completely separate file.

Also, Andor organized a meeting when we started the 3D functions and I think there is a lesson in that. Having meetings like the one Andor organized once in a while is super powerful. IRC is great but it’s nowhere near the same as meetings in person.

Link for Dave back to my Cdot