Skip to content

Contribute to bioWeb3D

Jean-Baptiste edited this page May 31, 2020 · 5 revisions

Forking 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.

Contributing to bioWeb3D

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.

A few words on how the code is organized

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 of Dataset 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 each Dataset object contains an array of Clusterset objects.
  • Clusterset : this object defines one information file, meaning a series of value and labels used to colour the points defined in one Dataset.

The logical link between those 3 object types is:

  • Many to Many between World and Dataset meaning that several Dataset objects can be attached to several World objects (and reciprocally).
  • One to Many between Dataset and Clusterset meaning that one Dataset object can be linked to several Clusterset objects but one Clusterset can only be in one Dataset.

js source files

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.
Clone this wiki locally