Changes

Jump to: navigation, search

Canvas3D JS Library

388 bytes added, 20:42, 26 January 2014
no edit summary
== Introduciton =={{Admon/obsolete}}
Under Construction== Introduction ==
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 to make the canvas more accessible for developers that want to develop 3D content in browser. == People Working On This Project Contributors==
* Catherine Leung
* [[User:asalga | Andor Salga]]* Peter Callaghan* [[User:Pplam3 | Patrick Lam]] (Picking)* [[User:Jamesboston | James Boston]] (Garbage collection)* Mark Paruzel (CodeBot)
* Andrew Smith
* Chris Bishop
* Jeremy Giberson
* Joe Drew
* Matthew Postill
 
== Downloads ==
NOTE: these downloads are mostly meant for in-house testing and not really polished. It may also only work on a specific platform only. please read the note regarding the download.
<BR>
For the library, samples, and tutorials, go to [http://cswww.senecacc3dl.onorg/ c3DL.ca/~leung/canvas3d/canvas3d-0org]As of c3dl 2.0, our library uses WebGL.xpi Andrew's patch] - this change Any WebGL enabled browser will be able to view our content. To get a WebGL enabled browser see Tutorial 1 from our website and you do not need any addons. For all older versions of c3dl, you will need the canvas 3D addon available here:You can get the extension allows the "simple" examples from Vlad's page to work with ati cardshttps://addons.mozilla.org/en-US/firefox/addon/7171 (use suckmenot@mailinator. This is intended com/bugmenot for Windows onlyauthentication). Model viewer examples  NOTE: It is HIGHLY recommended that you do not work yetuse the older version of our library but to use version 2.0 or higher.
== Links ==
* [http://littlesvrwww.c3dl.org c3DL.org]* [http://github.com/cathyatseneca/c3dl GitHub Repo]* [svn://cdot.senecac.on.ca/canvas3dOld SVN Repo]* [http://blogen.wikipedia.org/ Our blogwiki/C3DL Wikipedia page]  == Related Resources ==* [http://www.khronos.org/webgl/ Khronos WebGL]  == Documentation == Documentation can be found on our website: [http://www.c3dl.org/index.php/documentation/ c3DL.org].  == Ideas List == Here are the wishlist of things we want to be able to do with the library.... If you want something add it to the list. * 3D Asteroids - Good use of Collision detection, animation, particles, camera work, both mouse and keyboard controls. * Solar System Explorer - Pull the positions of our planets from some sort of webservice and display them, allowing users to see their relative alignment. * Simulation of 3D path finding * 3D graphs:* Display social networks and their relationships<br />:* Get earthquake Richter-scale values from a service and show graphs on a map<br />:* Display 3D graphs beside one another, gas prices along stock market values<br />:* 3D flowcharts<br />
== Prototype ==* 3D Traceroute - graphical view of an IP's path across the internet. More details [http://img126www.imageshackc3dl.usorg/img126index.php/3032uncategorized/layoutqe4.jpg Canvas 3D API canvas3d-traceroute- Class Designidea/ in this blog post]
== Math Operations ==* 3D Canvas Racing Demo - like [http://www.tapper-ware.net/canvas3d/ this] but better, to show that it's both easier to use, more functionality is available, and runs much faster (hopefully)
=== Vector Class ===A Vector basically describes a direction in the form of X, Y, and Z coordinates of a * Molecule Viewer - Rotate 3D worldmolecules. Basic Similar to [http://www.worldofmolecules.com/3D math cannot exist without the utilization of spatial coordinates which the Vector Class encapsulates/bcarotene_3d. The Vector Class will have the following members within it:htm this]
* Getters** getX() - '''Retrieves the X value'''** getY() - '''Retrieves the Y value'''** getZ() - '''Retrieves the Z value'''3D Sudoku
* Setters** set(newX, newY, newZ) - '''This sets new (x, y, z) values to the Vector'''** setX(newX) - '''Takes a number value as the new value for X'''** setY(newY) - '''Takes a number value as the new value for Y'''** setZ(newZ) - '''Takes a number value as the new value for Z'''** setFromVector(vec) - '''Takes a Vector object as the new value for this Vector''3D Rubik's Cube
* Calculations** normalize() House Explorer/Designer - '''Unit Normalization'''** dot() - '''Calculates the Dot Product. Returns Load a number'''** length() - '''Returns the Length mesh of Vector from (0, 0, 0)'''** lengthSq() - '''Returns the Squared value of Length'''** cross(vec) - '''Takes a Vector object and computes the Cross Product between the two values. Returns room or a Vector object that is the cross of the two'''** add(vec) - '''Takes a Vector object house and adds its values allow users to its own'''** subtract(vec) - '''Takes navigate through the environment or design a Vector object and subtracts its values from its own'''** multiply(scalar) - '''Takes room in a number value and multiplies (x, y, z) by it'''** divide(scalar) - '''Takes a number value and divides (x, y, z) by it'''** isEqual(vec) - '''Takes a Vector object and compares it to its (x, y, z) values. Returns true if they match'''** multiplyByQuat(quat) - '''Takes a Quaternion and multiplies its orientation by (x, y, z)house. It returns a new Vector orientation'''
=== Matrix Class ===A Matrix Class is necessary to provide Matrix operations such as rotation, translation, * 3D Photo Album - Download images and scaling create a 3D photo album similar to any point in the 3D world[http://www.mypictures3d. It is composed of a 4x4 matrix of floating point values that can be applied to any Matrix operationcom/images/screenshots/art_gallery/art4. This matrix is stored in '''Row-Major''' format, meaning its first 4 values are in the first rowjpg this]. The Matrix Class has the following members:
* Getters** getMatrix() Matrix - '''Returns an array of 16 numbersQuery search engines for sites, chat logs, blogs, etc. Each value represents and display all the text in a location of the matrix starting at the top left corner (Row-Major)'''like fashion.
* Setters** setMatrix(newMatArray) - '''Takes Really fancy animation of a bar graph, with columns growing and arrow moving. Will be an Array of 16 numbers that represent the matrix in Row-Major format''instant hit with business people. Usable as easy as [http://code.google.com/apis/chart/ google's toy][[Image:higherhigher.jpg]]
* Calculations** identity() - '''Sets Generic model viewer application, with back/forward/index + zoom/rotate buttons that would download and display models from the matrix up web. Would have to be an identity matrix'''** transpose() - ''' Transposes the matrix able to be convert 3dsmax models in Column-Major format, and vice versa'''** inverse() - '''Calculates JS. So a museum or such could just slap the Inverse of app on the matrix. Returns NULL if it fails, else page and give it returns an inverse matrix'''** determinant() - '''Returns a number that is the Matrices determinant'''** adjoint() - '''Returns the Hermitian transpose (Adjoint) array of this matrix'''** multiplyByScalar(scalar) - '''Multiplies URLs for the values of the matrix by a number'''** divideByScalar(scalar) - '''Divides the values of the matrix by a number'''** multiplyByMatrix(mat) - '''Multiplies two matrices together. It returns a new matrix'''** multiplyByVector(vec) - '''Mutiplies the orientation of the matrix by the vector. This function returns the newly oriented Vector'''** addMatrix(mat) - '''Adds the values of two matrices togetherstuff to show. It returns a new matrix'''** subtractMatrix(mat) - '''Subtracts the values of the two matrices. It return a new matrix'''
== Camera ==* Pong. Should be fairly easy, we just need to code the collision detection.
=== Pan Camera Class ====== Fixed Camera Class ====== Chase Camera Class ====== Free Camera Class ===* multi-player network air hockey. Supports up to 8 players. Create an arena based on number of players . Each wall has a hole and a paddle that players can move left and right. A ball is randomly sent flying and each time it goes through a hole, the player loses a point. Lose 10 points and that player is eliminated. Last person alive wins.
== World Objects ==* 2 Player Online Chess:* Orbit camera can be used to orbit around the board.<br />:* Effects can be used to change what material the pieces and board use such as metal, wood, etc.<br />:* Picking can be used to allow a simple interface to move the pieces. Either clicking on two tiles can move a piece or clicking on a piece and then a tile can move the piece.<br />:* Further research is needed to determine the best server-side language to use to share board state between players.<br />:* Animation can be achieved simply by setting velocities of pieces.<br />
=== Shape Class ====== Primitive Class ====== Model Class ===[[Category:Open Source Communities]]

Navigation menu