-
Notifications
You must be signed in to change notification settings - Fork 4
Feature Set
The following is a summarized list of the feature set as specified in the assignment spec document. Most of these features have been implemented, but some of the lower priority ones did not make it in to ID5.
Outside of WebVR
-
This interface permits the user to load in a set of tabular data, as specified in comma separated variable (.csv) format. The following features are supported:
-
Load a file:
- Prior to loading, the program shall provide the user two means of
specifying files to be loaded
- Via a local file. For this case, the program shall allow the user to browse on their computer for the dataset to select the file to be loaded
- From a URL. The user shall be able to specify a file as a URL.
- Prior to loading, the program shall provide the user two means of
specifying files to be loaded
-
Sharing the space:
- The system shall support use of the Google Drive API to permit the creator of a given visualization space to share that visualization with other users with authorized google accounts invited to this space. This interaction is standard for the Google Real Time API and Google Drive API, and is commonly undertaken outside the interface itself, and is rather accessed via the user’s Google Drive. Regardless of source, the file should consist of rows denoting items and columns denoting specific fields, where each column includes a header in the first row giving the column name (either a single word or a string in double quotes). Following loading, the space visualized in the Oculus Rift shall display an initial visualization using the first three columns of the file.
Within WebVR
-
At any given time, the Oculus will display a three dimensional space. Each row of the data shall be visualized by a point shown in in that space, with the coordinates of that point being determined by the value of corresponding fields (column) in that row. That is, with each row plotted in an X-Y-Z space as dictated by the values of the fields associated with each axis (see next).
-
At all points in the visualization, the axes shall be visible
-
For continuous and ordinal data (e.g., integer [e.g., “1”, “23”, “323”] or real-valued data [e.g., 21.52], the axis should display the data in a labeled continuous line. Regular “ticks” should be present to denote values in that line.
-
For categorical and nominal data, (e.g., “Male”/“Female”, or “Single”/”Married”/”Divorced”/”Widowed”, choice of provinces or occupations), the axis should consist of a set of categories, where each category has a certain location associated with it, and is specified by a label.
-
For each axis, the user can choose whether to show missing data for a displayed field (e.g., “NA”) values as a special location along the axis associated with that field or to simply not show the point (the initial default). It bears note that which points are not shown because of missing data will vary when different subsets of axes are considered
-
The user shall be able to undertake a set of actions in the space. Some of these actions affect only the user undertaking them, but most affect all users.
-
Affecting only the user
- Walk around in the space (when viewed in particular orientation). This will allow the user to view the space from different angles.
-
Actions affecting all viewing users
- Change of displayed fields Associated with each axis shall be a drop-down menu supporting choice of a field, as well as incremental search for a field (as each successive element of the name is typed). Selection of a new field shall lead to the update of the visualized space.
-
Change scale: Change the scale of the space (zooming in/out out of the space). A given scale will limit the range of data shown within the virtual “room” provided by Oculus.
-
Change orientation: Change the orientation of the space (by rotating the space using the “joystick” control on the Oculus control). All users will see the space rotate in this fashion.
-
Select one or more points simultaneously. For selected points, the user will further be able to undertake the following:
-
Report characteristics: Enumerate information on the points for fields selectable for this purpose. This will list the characteristics of each point for the selected. For each of the selected points, the user will see the value of the selected fields for that particular point.
-
Request summary information on the points: This will list the average of the characteristics of each point for each of the selected fields.
-
Labeling: Label a selected point with a chosen colour and (optionally) a text label
-
Hide the point: Request that this point be hidden
-
-
Presence awareness: When different users are present in the visualization, a given user’s view shall incorporate some indication of the location and (ideally) viewing angle of all other users within the view. This awareness might, for example, associate the user with a distinctly coloured stick figure, a depiction of an eyeball or a (fuzzy) ball with an arrow indicating orientation of viewing.
-
The system shall provide a means of indicating the identity of each user. Two possible options are as follows:
-
The users should be coloured, with a legend provided (e.g., on the floor or wall of the space)
-
A legend provided or clicking on or hovering over a given user’s visualization can lead to the information on that user being shown
-
As that user moves around the space, their representation in the space shall be updated as well, according to the google real-time API.
-
The points selected and labeled by a given user shall be visible to other users, as should be the information shown about those points (as shown to the selector -- e.g., summary information or fields information). This awareness of the selected points shall be shown in a distinctive fashion (e.g., via a colour or shape or label) reflecting the user who selected it.
-
A given user shall be able to unselect points selected by any other person
-
An easily accessible option (e.g., button) within the system shall be able to reset the status of all data points with respect to
-
Hidden status
-
Selection status
-
-
Setting point characteristics based on field values: Similar to how each axis can be associated with a field, for a given point that is displayed (corresponding to a particular item), the value of the fields for that item can also be used to determine each of the colour and point shape/size for the associated point. That is, each of the following should have a default associated with it (e.g., a default colour, or default size for point), but the user should be able to select a field for that characteristic to indicate their desire to set this property for a point based on the value of the field for the item associated with that point.
-
The colour of a point
-
For continuous data: this will run from dark to bright, with a hue that can be otherwise selected by the user
-
For categorical and nominal data: this will choose different particular colours
-
-
Marker (e.g., point) characteristics
-
For continuous data: Sets the size of a point
-
For categorical and nominal data: The shape of a point
-
-
-
-
Beyond the axes directly referred to in the original data, the system shall support the (widely used) technique “Principal Components Analysis” (PCA) on the data to identify “Principal Components” that represent linear combinations of axes (e.g., 0.1age+0.2income) of particular significance in explaining the variance in the dataset.
-
The user shall be able to request that a PCA be conducted on a user-selected subset of numeric (integer- or real-valued) fields within the data.
-
Any data points missing data on any such selected field shall be omitted from the analysis and subsequent display (i.e., the only points considered in the PCA and shown once it is used for an axis or to set colour or size/shape are points that include values for all of the specified axes). We refer to data points that include all such fields as “qualifying” data points.
-
Performing PCA in this fashion will determine the principal components associated with the qualifying data points. (e.g., 0.1age+0.2income -0.6income + 5.0weightInKg)
-
Once the principal components are determined, each qualifying data point can then be associated with having a certain value for each of the principal components.
-
Once a PCA has been performed, for any axis, colour or marker, the user can select “Principal component i (where i is an integer ≥ 1)“ to use the value of the principal component for that axis, colour or marker (just as if it were one of the axes directly provided in the data).
-
-
The user shall be able to save away the visualization to a user-named file on their local component. This file will indicate
-
Which data set was loaded
-
Which axes were shown
-
Any labeling of points (by colour and text label)
-
Any hiding of points
-
The subset of axes used for any principal components analysis (if any)
-
Currently selected points
-
-
The user shall be able to load an existing visualization
- This will load in the dataset and perform appropriate labeling, etc.
-