Fall 2010 Mozilla Open Source Project List
- 1 Introduction
- 2 Potential Projects
- 2.1 C3DL Library Core Refactoring
- 2.2 C3DL Build, Package, and Test Automation
- 2.3 CSS Checker JetPack Extension
- 2.4 Popcorn.js Visual Debug Mode
- 2.5 Video Wrapper for Popcorn.js
- 2.6 Create Soda.js: an interface extension to Popcorn.js
- 2.7 Create Candy.js: an effects extension to Popcorn.js
- 2.8 HTML5/Video Comic Book
- 2.9 Open Video Player
- 2.10 Get Microsoft's WiX MSI toolchain working with Mono
- 2.12 Create a WebGL Performance Test Suite
The open source course is a project based course, which puts students in direct contact with the open source community and real-world open source code. Students are encouraged to jump inot something big and unknown, and to do so with the full support of their colleagues, professor, and the open community.
All projects will be done individually, but with collaboration between students and the open source community. Some of the projects below are complicated enough that they can be broken into parts for multiple people. If more than one person is interested in the same project, speak to your professor to figure out if it can be broken into sub-components.
C3DL Library Core Refactoring
c3dl is a js library that provides higher level functionality for web developers wishing to develop 3D web applications. Currently the library always includes all features c3dl provides, even though they won't be needed in all cases. This adds download size, code complexity, etc. This project will refactor c3dl so that we have a core component, and then all the features can be added to this core and become unbound.
- Contacts: Cathy Leung, Andor Salga
- Primary: Andrew Condinho
- Secondary: Pete Leaning, Carl Desautels
C3DL Build, Package, and Test Automation
The c3dl library is currently manually packaged and deployed, and does not have a proper automated test suite. This project will create an automated build system that takes care of such tasks as: combining the multiple source files into one, minified file (better for download); port the automated test system from Processing.js to c3dl; and create a way to package various sub-components of c3dl into a single custom version of the library.
- Contacts: Cathy Leung, Andor Salga, Dave Humphrey
- Secondary: Konstantin Novichikhin, Steven Weerdenburg
CSS Checker JetPack Extension
CSS as a standard evolves more slowly than browser vendor implementations, and as such, browser extensions are created. For example: -moz-box-shadow (Mozilla only), -webkit-box-shadow (Chrome/Safari), box-shadow (CSS standard). This extension will allow the user to tell when a a -webkit-* extension is being used for which there is also a -moz-* version. This will help with finding compatibility issues on websites that appear to work in one browser and not another.
- Contacts: Dave Humphrey
- Primary: Konstantin Novichikhin
Popcorn.js Visual Debug Mode
- Contacts: Scott Downe, Brett Gaylor, Dave Humphrey
Video Wrapper for Popcorn.js
The video element provides basic functionality for playing, pausing, seeking video in a web page, and for doing things like changing the volume. However, it is quite limited, and could be enhanced to support multiple overlapping videos, controlling more than 1 video in a page, fetching and displaying thumbnails, better seeking, buffering, etc. This project will create a new programming interface and API for the video element.
- Contacts: Anna Sobiepanek, Joel Young
- Primary Choice: Chris DeCairos
Create Soda.js: an interface extension to Popcorn.js
Various projects using video on the web need to create innovative and non-standard user interfaces to control things like visual timelines, play, pause, changing the volume, etc. This project will create a library that provides some commonly needed interfaces, specifically aimed at the Global Lives project
- Contacts: Brett Gaylor, Anna Sobiepanek, Joel Young
- Primary Choice: Crystal de Nobrega
- multiple videos playing at once
- 2 videos playing in sync
- interface to switch between these videos
Create Candy.js: an effects extension to Popcorn.js
Various projects using video on the web need to create innovative and non-standard effects to transform the video, for example, applying filters, altering the video, using 2D and 3D effects, etc. This project will create a library that provides some commonly needed effects (e.g., colour filters, tilt shifting, etc.). This project will overlap and support the HTML5/Video Comic Book project.
- Contacts: Brett Gaylor, Scott Downe, Anna Sobiepanek, Dave Humphrey
- Primary Choice: Kenneth Pangilinan
- Secondary Choice: Crystal de Nobrega, Kevin Lasconia,
- create a video demo that shows:
- Make the video black and white
- Make the video sepia tone
- Flip the video horizontal, vertical, etc.
- Add interlacing lines, to make it look like an old TV
- investigate the [Paul Roget demos http://people.mozilla.com/~prouget/demos/] to see what can be turned into a library
HTML5/Video Comic Book
- Documentation: https://wiki.mozilla.org/Documentary
- Contacts: Brett Gaylor
- Secondary Choice: Kenneth Pangilinan, James Evangelista
- Primary Choice: Brian Law
- have a video move through 3 divs on a page, using timecodes provided by Brett
- Create a halftone/duotone effect to resemble comic books, include in candy.js
Open Video Player
The BBB wishes to start experimenting with the possibilities of HTML5 video. Seneca will do early experiments and proof concepts while Mozilla is formalizing the partnership. They want to implement and deploy an HTML5 video player on the BBB website that meets the high quality feature set that we have currently in place with our flash video player. In order to demonstrate how this player would extend the ability of the BBBto create dynamic interactions with page content, this project will also produce several "demos" of the possibilities for educational distribution.
NOTE: This project is large enough for a few people to work on it.
- Documentation: http://developer.nfb.ca/trac/web/wiki/NFBHTML5videoplayer
- Contacts: Brett Gaylor, Anna Sobiepanek, Dave Humphrey
- Primary: Steven Weerdenburg, Kevin Lasconia
- 0.1 release should demo the chaptering, bookmarking and playlisting features as described in the "page and player interactions" section of the bbb developer wiki
Get Microsoft's WiX MSI toolchain working with Mono
Microsoft has an open source tool written in .NET that can create MSI installable packages. Currently this toolchain runs on Windows using the Microsoft .NET Framework. This project will get this tool to run using Mono (the open source, cross platform .NET runtime) and working on Linux.
- Technologies: .NET, Windows, Linux, XML
- Contacts: Mike Hoye
The music.js library is meant to provide a high-level API for music generation, with functions and data sets for things like notes, scales, arpeggios, chords, phrases and rhythms. Music.js will be highly abstracted, but primarily developed to work with dsp.js
- Contacts: Al MacDonald, Corban Brook, David Humphrey
- Resources: https://wiki.mozilla.org/Audio_Data_API
- Primary: Pete Leaning, James Evangelista
Create a WebGL Performance Test Suite
Compare the speed of Mozilla's WebGL implementation with other implementations, and build an automated test suite to allow Mozilla to track that it's implementation doesn't get slower over time.
- Contacts: Vlad, #gfx, Cathy Leung
- Primary: Carl Desautels