feat: use webgl shaders instead of wasm

This commit is contained in:
Jet 2026-03-27 15:08:34 -07:00
parent 38efffa9b9
commit 51dc6c9ee6
No known key found for this signature in database
24 changed files with 1712 additions and 1607 deletions

View file

@ -2,22 +2,22 @@
Personal site for Jet Pham.
The site is a small Vite app with a terminal-style UI, ANSI-rendered text, and a Rust/WebAssembly Conway's Game of Life background.
The site is a small Vite app with a terminal-style UI, ANSI-rendered text, and a WebGL2 Conway's Game of Life background.
## Features
- ASCII/ANSI-inspired visual style with the IBM VGA font
- Conway's Game of Life running in the background via Rust + WebAssembly
- Conway's Game of Life running in the background via WebGL2
- Q+A page backed by the site API
- Single-file oriented frontend build with Vite
- Reduced-motion aware background controls with a static fallback mode
- Fullscreen GPU blur/composite for the frosted panel effect
## Stack
- Vite
- TypeScript
- Tailwind CSS v4
- Rust + WebAssembly
- WebGL2
- npm
## Development
@ -25,9 +25,6 @@ The site is a small Vite app with a terminal-style UI, ANSI-rendered text, and a
### Prerequisites
- Node.js + npm
- Rust
- `wasm-pack`
- `wasm-opt` (used by `build:wasm`)
### Install
@ -35,12 +32,6 @@ The site is a small Vite app with a terminal-style UI, ANSI-rendered text, and a
npm install
```
### Build the WASM package
```bash
npm run build:wasm
```
### Start the dev server
```bash
@ -63,10 +54,9 @@ npm run build
```text
src/ frontend app
cgol/ Rust + WASM Conway's Game of Life module
```
## Notes
- The homepage and Q+A page are the intended public pages.
- If WebAssembly fails or motion is disabled, the site falls back to a static background treatment.
- The background renderer targets WebGL2 and falls back to the site shell background if WebGL2 is unavailable.