Saturday, December 11, 2010

c3dl Ref Tester 0.3

Closing out OSD before extracurricular work sets in. Let me break done the work and the problems I encountered.

Before I begin let me explain what c3dl is. C3dl is a javascript library used to make writing 3D applications easier. Most notably it utilizing webGL for graphic accelerated rendering in your browser which is all the rage now.

Structure (before my upcoming rework) was taken from Processing.js. My goal was to take that test structure rip all signs of processing out of it and mash c3dl in. I've adjusted my scope a bit, currently my goal is to rework the tester so that it simply tests 2 canvases and spits the result into a third canvas. That way any method of rendering into a canvas can be used because a pixel by pixel comparison won't care how the pixels got there. Of course my contribution will inject c3dl into one canvas and an image into the other.

The purpose behind putting an image and a c3dl rendered scene is this. The reference images were taken at a point of time where that particular scene rendered properly. Comparing that to the same scene rendered now as you load the test. The idea is any changes that broke or changed the result of c3dl rendering would be apparent.

Some problems I encountered were:

  • Wasted 2 weeks trying to generate the reference images. Until I realized you can either canvas.getPNG or even better right click "save as" and get a png.
  • Learning c3dl, adding multiple canvases and multiple callback mains for each test case revealed many bugs, learning not to test everyone else code was a huge hurtle.


Future problems and goals:

  • Break apart the tester and make it focus more on just the pixel arrays of canvases, not how the canvases were filled.
  • Change the test case library to something friendly of a larger scale, based on feedback from David Humphrey. That I have no clue.
  • Confirm that the pixel comparison and blurring actually work, so I can trust there results. It seems a bit questionable at the moment but it's out of my current abilities.
Links:

Monday, November 29, 2010

c3dl Ref Tester 0.1

What is C3DL?
The Canvas 3D JS Libary (C3DL) is a JavaScript library that will make it easier to write 3D applications using WebGL. It provides a set of math, scene, and 3d object classes that makes WebGL more accessible for developers that want to develop 3D content in browser but do not want to have to deal in depth with the 3D math needed to make it work. Website found here.

Ref Tester

Largely ported from David Humphreys Processing.js ref tester found here. I attempted strip out processing and replace it with c3dl to do similar pixel comparisons between canvas's. This proved far more complicated then I anticipated, i had a lot of trouble interpreting all open source projects I encountered. This was solved through exhaustive scanning of Mozilla Development Network and project specific documentation, in addition to asking the pros on #moznet!

0.1
Numerous errors in implementation can be found here, however 0.1 contains:
  • ported Processing.js ref tester
  • integration of a single c3dl demo
  • blurring and comparison of the canvas's 
Beyond
look forward to a fast 0.2 release pending the reviews requested on current release, future goals include:
  • exhaustive still tests
  • modularization of tests
Links



Tuesday, November 16, 2010

Osd Lab moz-transform matrices

Last week David Humphrey challenged us to create some video demos, we were instructed to watch these javascript tutorial lectures:

I attempted to use moz-transform: matrix() to alter videos with wild success. Click here for mozillas MDC.
My lab code can be found here.  Any suggestions are appreciated, I would like to become more proficient with javascript.



Monday, October 25, 2010

Revised Project Plan

Project Name

C3DL test suite

Project Description

Create and implement an automated test suite which compares C3DL still frame render demos and a still frame pictures. Additional innovation will be required for the implementation of moving C3DL demos.

Project Leaders

Andor Salga
Catherine Leung

Project Contributors

Andor Salga
Catherine Leung
Carlin Desautels
Peter Leaning

Project Details

The project will require the initial step of porting Processing.js automated test suite created by David Humphrey. That will produce a framework for which the C3DL demos can be added. The framework will need to be tailored for the project needs, such as: moving demos need to be integrated, replacing Processing.js still frame demos with C3DL ones.

Project Plan

Goals for each release:
  •  0.1: 
    • Port Davids code 
    • Integrate a C3DL demo
    • Archive with git and github.com
    • Integrate github with C3DL dev team
  •  0.2: 
    • Integrate all still C3DL still demos
    • Streamline automation to developers needs
    • Attempt method of including moving demos
  •  0.3:
    • Fully integrate existing moving C3DL demos
    • Attempt personal demo.
Project News

C3DL lighthouse
  •  http://c3dl.lighthouseapp.com/dashboard
Processing.js Repo
  •  http://github.com/annasob/processing-js