Find the latest deployment here.
As a systems programmer, traditionally in C++, I find Rust very satisfying and fun. However, since most systems programming jobs are still based in C++ instead of Rust, I want a fun and engaging project to work on for myself.
I have also meddled (both as a professional and a hobbyist) with WASM, and I have enjoyed that as well. So here is a combination of those two passions, along with some 3D programming (which I also love), and various related topics.
The Project Temporarily Known As GHG is intended to be a climate change data visualization tool. Interactivity and slick visuals tend to make for superb education tools, if done correctly.
- Install
wasm-pack
. More information available here. - Run
wasm-pack
(or create a run configuration) in the directory./ghg
with these parameters:--target web --out-dir www/wasm
--target web
: Build for the web directly, without need for a bundler. Example here.--out-dir ghg/www/wasm
: Output build artifacts (e.g..wasm
and.js
files) directly in theghg/www
directory, so the website can load them easily.
Then just open ghg/www/index.html
in your favorite (supported) browser and you should be good to go!
If additional steps are required, or if anything doesn't work as expected, please open
an issue or a PR. You
can also email me at jacob.rice.systems@gmail.com
.
This section is out of date
A few additional projects exist in /src/bin/
. Below is some information about them:
A work-in-progress for manually downscaling and splitting up large images to make them more palatable to the web. The terrain and color maps that I use are 1/16 the area of the originals, because the originals are way too big to download quickly.
I plan to use the downscaled versions for when the user is zoomed out, and to dynamically pull in high-resolution pieces of the visible area when the user zooms in.
Another work-in-progress for the data pipeline needed for this project. Most of the data I have gathered so far has been in HDF5 (or similar) format, and that isn't easy to just pull in and parse inside the browser.
Instead, I am build a data gathering and processing step to pull these files and export them in reasonable formats, such as images.
The images can then be easily mapped as textures to the GPU for display once they're fetched in the browser.