Difference between revisions of "Fall 2010 Mozilla Open Source Project List"
(→Create Candy.js: an effects extension to Popcorn.js) |
(→Open Video Player) |
||
Line 96: | Line 96: | ||
===Open Video Player=== | ===Open Video Player=== | ||
− | The | + | 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. | ''NOTE:'' This project is large enough for a few people to work on it. | ||
Line 106: | Line 106: | ||
==== Initial Tasks ==== | ==== Initial Tasks ==== | ||
− | * 0.1 release should demo the chaptering, bookmarking and playlisting features as described in the "page and player interactions" section of the [http://developer.nfb.ca/trac/web/wiki/NFBHTML5videoplayer | + | * 0.1 release should demo the chaptering, bookmarking and playlisting features as described in the "page and player interactions" section of the [http://developer.nfb.ca/trac/web/wiki/NFBHTML5videoplayer bbb developer wiki] |
===Get Microsoft's WiX MSI toolchain working with Mono=== | ===Get Microsoft's WiX MSI toolchain working with Mono=== |
Latest revision as of 11:24, 22 October 2010
Contents
- 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.11 Create Music.js: an API for dynamic music generation in JavaScript
- 2.12 Create a WebGL Performance Test Suite
Introduction
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.
Potential Projects
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.
- Technologies: JavaScript, WebGL, HTML5
- 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.
- Technologies: JavaScript, light scripting (python, bash), Makefile, canvas and HTML5
- 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.
- Technologies: JavaScript, JetPack Extension API, CSS
- Contacts: Dave Humphrey
- Primary: Konstantin Novichikhin
Popcorn.js Visual Debug Mode
The Popcorn.js library is a JavaScript library that allows semantic and timeline data to be added to a web video. Currently, it is text-based (xml and json) with no way of visually seeing what is in a Popcorn timeline file. This project will create a 2D canvas based visualization tool, allowing developers to easily turn on debug mode, and have a visual timeline appear at the bottom of the web page, showing various commands and their times. See the recent Github redesign, which added a timeline canvas view for network activity.
- Technologies: JavaScript, Popcorn.js, canvas and HTML5
- 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.
- Technologies: JavaScript, Popcorn.js, video
- 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
- Technologies: JavaScript, video, canvas, HTML5
- Contacts: Brett Gaylor, Anna Sobiepanek, Joel Young
- Primary Choice: Crystal de Nobrega
Initial taks
- 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.
- Technologies: JavaScript, video, canvas, WebGL, HTML5
- Contacts: Brett Gaylor, Scott Downe, Anna Sobiepanek, Dave Humphrey
- Primary Choice: Kenneth Pangilinan
- Secondary Choice: Crystal de Nobrega, Kevin Lasconia,
Initial Tasks
- 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
- Blue screen functionality demo, similar to this
- Check out http://desandro.com/resources/close-pixelate/ and see if we can use this
HTML5/Video Comic Book
For the release of Firefox 4, Mozilla is creating a web-based comic book application, which uses video, canvas, and other HTML5 features. This project will help create the back-end JavaScript necessary to make things work with the video and canvas in the page. A professional designer will work on the HTML/CSS with you. This project will overlap and support the Candy.js library project.
- Technologies: JavaScript, video, canvas, HTML5
- Documentation: https://wiki.mozilla.org/Documentary
- Contacts: Brett Gaylor
- Secondary Choice: Kenneth Pangilinan, James Evangelista
- Primary Choice: Brian Law
Initial Tasks
- investigate the <track> element to see if it is an interesting way to trigger javascript commands in time
- 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.
- Technologies: JavaScript, video, canvas, HTML5
- Documentation: http://developer.nfb.ca/trac/web/wiki/NFBHTML5videoplayer
- Contacts: Brett Gaylor, Anna Sobiepanek, Dave Humphrey
- Primary: Steven Weerdenburg, Kevin Lasconia
Initial Tasks
- 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
Create Music.js: an API for dynamic music generation in JavaScript
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
- Technologies: JavaScript, Mozilla Audio Data API, 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.
- Technologies: JavaScript, C++, OpenGL, WebGL
- Contacts: Vlad, #gfx, Cathy Leung
- Primary: Carl Desautels