Experiments and Projects
A selection of personal projects and experiments. You can find more on my GitHub ↗ .
Chat-Tea
This project is a Rust-based, asynchronous chat application with a Terminal User Interface (TUI), leveraging Tokio for efficient async operations and Ratatui for the terminal interface.
ChatTea adopts an Elm-like architecture,
centralizing application logic around a single
Model and processing events via messages through an update–view
cycle, inspired by Elm. 'Tea' in Chat-Tea is for "The Elm Architecture".
Terminal Radar Sim
A real-time radar simulation rendered in the terminal using Ratatui. Built to explore how to implement a smooth event and render loop in pure Rust, without relying on an async runtime like Tokio.
The radar sweeps across a simulated grid, detecting moving targets that fade or disappear when out of range. Built around a simple model-update-view pattern inspired by Elm, it stays responsive using only threads and channels, no async runtime needed. I write a bit more on my Github, link below.
Nannou Audio Visualizer
This is a real time audio visualizer I created in Rust using Nannou, rustfft, and Audrey. It does basic beat detection using spectral flux and reacts to both volume and frequency. You can feed it an audio file or let it run from live input.
I tried to make the strings respond more to string like tones, and the synthwave sun pulse with kicks and snares. It's not rhythmically perfect, but the visual pulse holds up. Some audio files (like the example song) are sampled at 44100 Hz, but Nannou expects 48000 Hz by default, so playback might be slightly faster unless adjusted.
RawRustServer
A simple multithreaded web server written in Rust using only the standard library, powering a small "Galactic Hunter Portal" demo site. Unlike languages such as Go, C#, or Java, Rust's standard library doesn't include a built-in HTTP server or async runtime, only lower level primitives like sockets and threads. I built those pieces from scratch, implementing a custom thread pool for concurrency and manually parsing HTTP to serve HTML, CSS, and JavaScript. The GIF below shows me logging into the portal.
It also includes a lightweight logger for terminal and file output, and a simple key-value database layer for handling user data.
Aang
A micro JavaScript single-page application framework built with Web Components. Created as a personal reference for exploring native web APIs and experimenting with vanilla JavaScript. I may revisit later and expand and, reimplement with Typescript. Inspired by Angular hence the name.
Interactive Demos
Here are a few things that can run right in the browser.