-
Notifications
You must be signed in to change notification settings - Fork 11
Contribute to bioWeb3D
bioWeb3D as it stands includes only basic tools to visualise 3D datasets. Users with more advanced needs who wish to visualise data in the browser can easily copy bioWeb3D (see "Fork" button a the top right of the page) into their own separate project.
As a fully open source software, bioWeb3D welcomes eventual contributors to add relevant functions to the program. To do so, one should first clone a local copy of the repository, do the modifications/additions then push them to create a pull request that I will be able to review and to discuss within the "Issues" section of this project.
Should you be interested in modifying bioWeb3D, here's a quick overview of how the code is structured. #Index.html
- Contains all the HTML of the project including the User Interface elements and the canvas of the 3D visualisation.
- Contains the definition of the main objects used throughout the application
-
World
: this object defines one 3D "world" in which will contain one 3D space and displayed (or not) on the screen. Each world contains an array ofDataset
objects attached to it. -
Dataset
: this object defines one dataset and all the informations attached to it, the number of points, the type of dataset (chained or not) and eachDataset
object contains an array ofClusterset
objects. -
Clusterset
: this object defines one information file, meaning a series of value and labels used to colour the points defined in oneDataset
.
The logical link between those 3 object types is:
- Many to Many between
World
andDataset
meaning that severalDataset
objects can be attached to severalWorld
objects (and reciprocally). - One to Many between
Dataset
andClusterset
meaning that oneDataset
object can be linked to severalClusterset
objects but oneClusterset
can only be in oneDataset
.
The following Javascript files are located under the js folder at the root of the project.
- dataUpload.js : contains the functions used to upload and process dataset files, creating the 3D points and coordinating the User Interface with the 3D view
- clusterUpload.js : contains the functions used to upload and process information layer files, creating the 3D points and coordinating the User Interface with the 3D view
- labelClasses.js : contains the functions and Classes used to create 2D labels attached to 3D coordinates on the 3D visualisation.
- material.js : defines sonme 3D materials and colours.
- utils.js : Contains functions directed towards user interaction, displaying messages or synchronizing UI parameters to the 3D view.