Projects
Full Stack Typing Test
Tech: React, RxJS, Node, Postgres, Caddy, SendGrid, Docker, CI
- Authentication with email/password, email verification, profile management etc.
- See history of typing tests, with filters, and replay them in real time
- Deployed to DigitalOcean droplet using Docker images built with GitHub CI
- Caddy serves the static files and reverse proxies to the node server for API requests
- GitHub
Infinite Procedural Terrain
Tech: WebGL, WebAssembly, Rust
- First person camera
- Lazy infinite chunk loading
- Terrain generated in rust compiled to WebAssembly run parallel in Web Workers
- Seeded noise and simulated hydraulic erosion with water droplets
- Sky atmosphere shader, water
- Also have a version that renders with low-poly terrain and low-poly water
- GitHub
Procedural Golf Game
Tech: Python, OpenGL
- Procedurally generated levels using cave cellular automata, marching squares, and other algorithms
- Pseudo 3d effect using shapely for geometric manipulation and then OpenGL Tessellation
- Rendered using OpenGL
- Physics using Pymunk
- Sand pits, sticky walls, difficulty modes, sound, gui
- GitHub
Automatic Documentation Generator
Tech: Preact, API Extractor
- Analyses codebase using TypeScript and API Extractor and then generates both the documentation website and also markdown output
- Also will render written markdown pages into the website
- Site-wide instant search done on the client
- Offline-first, accessibility, light/dark mode
- GitHub
Advanced WYSIWYG Text Editor
Tech: React, WebAssembly
- Batched text deltas rendered in Vanilla JS
- Incremental search
- Spellcheck with Hunspell through Emscripten
- Multiple selections, composition handling
- Performant: Thousands of paragraphs and no lag
- State updates handled using reactive programming
- *Currently only works on MacOS but that's because I haven't setup keybindings for the other platforms, I can set them but I haven't got around to it yet*
- GitHub
Older projects here GitHub