The CSV files are too large to upload on github, if you need to run this project please email Dr. Vinu Subashini Rajus at vinu.rajus@carleton.ca
npm install
npm i -S fast-csv
npm install csv-split-stream
See launch.json
in the .vscode
folder. Enter your client ID and secret there.
Place your state.txt
file into the scripts
folder, then cd into the scripts
folder and run the following command in terminal:
cat state.txt | python state_txt_to_csv-VCP.py
This will output state_change.csv
In the public
folder, unzip the data.zip
file. This is what will create our data
folder along with some sample CSV files to try. Next, create a folder in the data
folder called output
. This is where the split CSVs will be stored.
-
The filepath of the CSV being read (see
extraExtension.js
) -
Solving the number of cells in a time step depends on the time steps in the data
-
Visualization playback
- The
time
variable: How often to read a new CSV file - The
speed
variable: Reduces the number of files to read- Ex. If the speed is 10 then only every 10th CSV file will be read
- The
-
Find the max state in a cell through
csvStreamer.js
and update this.maxState inextraExtension.js
-
csvStreamer.js
hasreq.setTimeout(0)
for users with slow computers. Remove the timeout callback when running the application outside of localhost.
- Look into flags for WebGL errors
- Add a pause button
- Solve how to find max number of viral particles without slowing things down
- Save
state_change.csv
topublic/data
automatically after running Python script? - Stop sprites / icons from changing size when zooming in or out
- Could potentially be done through the size parameter in the shader
Graphics reference for shaders - Explains types of qualifiers (uniform, varying, etc.)
gl_FragCoord - Might help with camera view of sprites / icons
Data Types (OpenGL) - Scalars and vectors
3D Markup with icons and info-Card - Discusses spritesheets and clickable geometries
Using PointCloud in Forge Viewer - Uses three.js (r71)
Fast-CSV - CSV Parser and Formatter
csv-split-stream - Split a CSV read stream into multiple write streams
File stream - Node.js stream readable
Basic PointClouds in Forge Viewer
Custom Shader Materials in Forge Viewer
Dynamic Textures on Flat Surface
M3U8 File for HTTP Live Stream
OpenVDB for Particle-based Fluid Simulation