PVector – Initial Project Plan

What is Processing.js?

Well to sum it up in one line, Processing.js is a Javascript port from the original Processing program written in Java.  That, however, doesn’t specify what Processing is.  Here is an excerpt from the main Processing page:

Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is an alternative to proprietary software tools in the same domain.

To learn more about the Processing tool, click here.  Processing.js is trying to solve the problem of  having load a Java applet to use the tool.  Instead, with the help of Javascript and CSS, Processing.js will be available almost instantly within most browsers.

I have chosen this project mainly because of the exposure this could get once finished.  It is part of the revolutionary movement that Mozilla and Google are trying to achieve that, through the internet, personal applications aren’t necessarily needed anymore.  Everything can be done through a browser, over the net.  Secondly, I’m very interested (my game developer side is) in the WebGL process and I believe this would be a good place to start immersing myself in it.

How can you keep up with my work?

The main way to see my work progress is through this blog.  I will be posting the ins and outs, the goods and bads, the  small and big problems and accomplishments right here in this very blog.  There is also a wiki page setup on the CDOT wiki specifically set up for Processing.js.  There’s also the list of things to be implemented on the main Mozilla wiki, which can be found by clicking here.  The list has more specific details on the items being implemented and needing to be implemented.  I may also make a specific page on this blog for more details.

What is your timeline for this project?

I’ve thought of a main release schedule and a backup release schedule.  This all depends on what I can accomplish by my 0.1 release.  I’ve picked PVector class, which can be found by clicking here, for my main focus on my 0.1 release.  Now, the way my release schedule differs is how difficult this initial release will be.  If it’s simpler than anticipated, I will pick several different functions to complete for my 0.2 and 0.3 released.  If it’s harder than anticipated, my next few releases will be completing the different methods for the classes.

0.1 Release (Oct 19, 2009)
Main release schedule:  Finish the PVector object
Backup release schedule:  Finish the PVector constructors

0.2 Release (Nov 16, 2009)
Main release schedule:  Finish other functions for Processing.js
Backup release schedule:  Finish several PVector methods

0.3 Release (Dec 7, 2009)
Main release schedule:  Finish more functions for Processing.js
Backup release schedule:  Finish the PVector object

What do you need to learn for each of your releases?

The main thing that I would need to learn for this is Javascript, and learn the processes of a functional language.  The main process that I need to learn this would be to just jump right in and play with code.  Learning by immersion is the best way to learn different languages and coding styles.

Collaboration and Contribution

With the help of David Humphrey and Al MacDonald, I hope to achieve my goals.  I also have a team of other students working with me and their information can be found on our Processing.js wiki paged linked above.  I will also include their blogs on the sidebar to the right for easier access.  If you wish to help or participate in the creation of this program, feel free to leave a comment and some contact details.  Or get on IRC on the Mozilla server in channel #processing.js.

What barriers stand in your way?

The biggest barrier would be learning a new language and way of coding.  One thing I’m uncertain of is the difficulty of the scope of my goals.  The only way to find out is to dive right in and do some work.  Overcoming both problems would be easily solved with lots of hardwork and research.

One Response to PVector – Initial Project Plan

  1. F1LT3R says:

    It will be great to see PVector arrive, a very useful function for making games and interactive software in general. You will be able to figure out how to implement it without too much trouble I think. I created a simple 3D vector function in Javascript, I have to admit it took more reading than I would have liked :P, but I got it working after three or four days of hacking away (was only just getting into the lower-level 3D stuff at the time). If you can find the code to adapt from somewhere else, that is great, but it is always worth doing some research on the math with Wikipedia etc and try it yourself first: then even if you do go with someone else’s code, you have a much better understanding of what is happening.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: