User:Gkrilov/fsoss 2011
Contents
Introduction
For my DPS909 Open Source class I was tasked with going to two different FSOSS presentations and writing a report on them. The way that I selected which presentations to go to was not by random selection or as a choice of interests but instead I selected the two I did based on the fact I knew the presenters; I thought this was a good idea because firstly they will appreciate the fact I came to watch them as well as the fact that I will be able to better analyze everything I see as a result of already somewhat knowing the presenters backgrounds as well as some of their opinions. This report will first summarize each talk in terms of what the presentation was about as well as what is the speaker’s background. Next it will analyze the speaker’s views on Open Source and lastly it will include a self-reflection on what I think and learned about Open Source after watching these presentations.
Building a Commercial Game Using Processing.js for Cross-platform Delivery
The first presentation attended was called “Building a Commercial Game using Processing.js for Cross-platform Delivery”. The presentation was introduced by Dawn Mercer and presented by Jeremy Friedberg, David Perit and Daniel Hodgin. The main purpose of this talk was to talk about Spongelab Interactive’s dragon breeding game, how it was started, what programming language it used and why it used it. First the Jeremy Friedberg talked about his company, Spongelab Interactive, which is a company that makes different interesting educational games geared towards students, teachers, and different professionals. Spongelab Interactive’s mission statement is to make educational games which are not dry and boring but instead ones which are interesting to play and at the same time highly informative – from what I saw by looking at their website it seems that they are very successful at supplying what they seek to deliver. Next Daniel Hodgin and David Perit talked about the programming language used and the evolution of the game itself. Daniel began by saying that the game was created using processing.js and html5. He gave a brief history of processing.js as well as discussing the main points about why it is good: processing.js is a cross platform language since all it needs to run is the browser (Firefox, Chrome, Internet Explorer, Opera, Safari, and mobile browsers that support the HTML 5 canvas element), is a plugin free language meaning it can work in environments where plugins cannot be installed such as businesses and mobile devices, is an open source language meaning that anybody from the community can suggest changes as well as contribute and fix bugs, stays away from flash to support iOS, does not require compilation, and lastly one of the main points about processing.js is that is has the potential to provide real solutions to real life problems. Next Daniel talked about the game itself and how it started from scratch; this included the different stages of work that went into it such as requirements gathering, initial drafts and storyboard creation. He showed us a really cool game flow diagram which was messy and all over the place showing the different classes and interactions which are in the game; it looked extremely complex with many different classes having relationships with a large amount of others. He talked about how they had an artist working on the different dragon sketches as well as talk about the different things they had to do to get things working, for example he talked about how processing did not have support for sound and how they had to create their own JavaScript sound classes ported from java libraries and the difficulties this posed. Lastly he talked about the current stage of the product which is early beta testing and then David Perit showed a demo of the game which showed how it works as well as the different features. The speaker’s background varied greatly between the three. Jeremy Friedberg has a doctorate in molecular genetics & biotechnology from the University of Guelph which is really interesting because how does somebody like him end up in the computer business? You would think somebody with such credentials would be a genetic scientist doing medical or genetic research. Daniel and David on the other hand are both previous Seneca students with Daniel being from the BSD program and David being from CPA; they both work in CDOT at software developers and Daniel is one of the people who helped port Processing which was written in Java to Processing.js. Jeremy Friedberg is very fond of open source and its amazing communities. He is very happy with the fact that the team at Seneca was able to complete this game in such a successful way in such a short time. Daniel has been working on open source for a few years now ever since he took the DPS909 open source class as his professional option. His opinion of it is very high as it taught him many important things and gave him a lot of experience working with JavaScript and other languages. One thing I learned which shocked me about this was that although the language used to program this (processing.js) is an open source language, the dragon project itself is not open source. Up to the beta stages of the game it was worked on behind closed doors and in secret. This is really interesting because you can see that although a project uses an open source library for its coding it can still be a closed source application which could be sold for a profit. I was initially not aware that such a thing is possible as I thought that open source was always free and that a profit was not possible from it; I thought that the only way that open source developers could make profit is by working for a big company like Firefox who receive much funding through donations. In conclusion this was a really interesting topic and I learned a lot about how open source could be applied to real life for profit applications.
XB PointStream
The second presentation I sent to was about something called XB PointStream. It was introduced by Cathy and presented by Andor Salga. The main purpose behind this talk was to talk about what XB PointStream is and how it came to be. Andor started his talk by talking a little bit about cdot, explaining what it is, how it works, how long he has been working there, and what he has been doing there. He talked about the projects currently going on there (Processing.js, Popcorn.js, Paladin) and which ones he has contributed to. He then started his discussion about XB PointStream by beginning to talk about Arius3D and what it is. Arius3D is a type of 3D object scanner and is based on 17 years of research by the National Research Council Institute for Information Technology. It consists of a laser scanner and a motion control system for moving the camera. The system characterizes each measurement point according to its colour and location in 3 dimensional space sing the principles of high resolution, low-noise, three-colour laser triangulation and optically-synchronized scanning. Each measurement point is described by three geometric values as XYZ and three reflectance values as RGB collected simultaneously from the target surface. Scanned data is recorded and processes by proprietary software to create high-quality 3D colour images of real-world objects. Now this system is world known as it is used not only in Canada but also in museums and galleries across the world. After a brief introduction to Arius3D Andor proceeded to talk about how Ariud3D wanted to look into finding a solution better than polygons for their 3D images and that's where they learned about point clouds. Point clouds are a different way of looking at object, where objects are presented as a dense cloud of points instead of polygons; these are higher quality and take less space. They found out about a plugin called 3DImagePlayer which draws 3D point clouds in internet explorer. The problem with this plugin that Arius3D encountered was that it is only supported by internet explorer, it requires installation and it requires the installer to have permissions. They came up with a conclusion that they need to develop an open source cross browser point stream plugin and so they came to Andor to create them such a plugin. Andor used WebGL which is a subset of OpenGL which gives direct access to the graphics card as well as being supported by all major browsers. Andor showed us a few demos of how this works as well as one where we can actually see a 3D image with PointStream on certain images if we have 3D glasses which Cathy kindly brought in. Andor's background is that he is a student at Seneca who started in cpa and then moved to BSD afterwards. He has been at Seneca for a few years now and he works part time at CDOT. He has been working with open source for a while and is a really good go to person when it comes anything to do with open source graphics. A really interesting thing about this project in contrast to most other open source projects is the fact that Andor works alone. While in something like processing.js there is a big community of people contributing and working together in Andor's case in PointStream he is the only one actually working on it. In conclusion this was a really interesting presentation about a different way to view 3D graphics and has taught me that open source although usually a community can also be smaller and only have one person working on it.
Comparison
Between both of the presentations the point that comes across as being delivered is basically the same; open source is a very flexible way to create applications as well as it can be profitable in the right light. In both cases a pretty big company hired Seneca students to create something out of open source software and in both cases they were paid. One difference which would be good to mention is the fact that in the case of the dragon game the final product is not open source meaning you would have to buy it and obtain a license in order to use it while in the case of PointStream the final creation is an open source product meaning anybody could use it for the purpose of creating PointStreams in any browser they want as well as be able to edit code and suggest changes. In both cases the hiring company was very happy and satisfied with the final product, the dragon game is going to be a huge part of Spongelab's portfolio and Arius3D already has PointStream up on it's website as it's PointStream imaging software. While both companies have the opinion that open source can be effectively used in creating their applications Spongelab Interactive does not want it's software to be free as it sells the created software as a means for education meanwhile Arius3D does not wish to sell the created software but in actuality uses it to create it's own 3D PointStream images.
Conclusion
What I learned from these presentations reinforce my previous knowledge on open source with that fact that it can be easily and effectively used to create real world solutions and work is done mostly in communities of people. The new things I have learned which I did not know before is that you could actually have open source communities as small as one person who works alone and the other thing is that open source software can and is used to create for profit software such as in the case of Spongelab Interactive's dragon genetics game. The open source concept continues to innovate development and I think it is just getting started.