Projects

Project case studies from tools, simulations, and systems practice.

Each card opens into a focused page explaining the problem, the implementation choices, and the technical signal behind the project. Public demos are linked where available; local projects are documented from the inspected source folders.

26 of 26 projects

Web Applications

Browser-based tools and course applications where the work is data modeling, workflow design, and making technical state inspectable.

12 matches
Territory map with coloured door pins along a Vancouver block, a drawn territory boundary, and a microphone dock
Open knockabase project details

Details

knockabase

A door-to-door canvassing app for an HVAC electrification crew. A rep speaks a knock between houses and a language model turns loose speech into a validated record on a clustered territory map, with an offline queue for streets that have no signal.

Next.js
TypeScript
Supabase
PostGIS
Mapbox
Claude API
Live Code: Private repo
Screenshot of DMTT Academy
Open DMTT Academy project details

Details

DMTT Academy

A full-stack coaching platform built for a private table tennis coach: paid self-paced courses with a block-based content editor, Stripe enrollment, protected Mux video, a Google-auth student portal, and an admin dashboard for students, revenue, and reviews.

Next.js
TypeScript
Stripe
Prisma
Mux
Live Code: Private client repo
A procedurally generated phone rendered at an angle in the studio, showing a real app screenshot on its screen
Open Mockup Studio project details

Details

Mockup Studio

A browser-only studio for product mockup videos: drop in a screenshot or a screen recording, place it on a procedurally generated device, animate it, and encode an MP4 or WebM on your own machine. No backend, no upload, and an end-to-end test that asserts nothing but blob and data URLs leaves the local origin after load.

TypeScript
React 19
Three.js
WebCodecs
IndexedDB
Live: Local buildCode
The simulator at cycle 6 of the load-use hazard preset: one stall counted, and a bubble sitting in the writeback stage
Open RISC-V Pipeline Simulator project details

Details

RISC-V Pipeline Simulator

A browser simulator that runs RV32I assembly through an explicit five-stage pipeline and shows, cycle by cycle, where forwarding hides a dependence and where a stall or a flush is unavoidable. Timing is pinned by hand-computed stage traces inside a 63-case suite, so a machine that reached the right answer on the wrong schedule fails the tests.

TypeScript
React
Vite
Vitest
Computer architecture
Live: Not deployed yetCode
Screenshot of WFC Visualizer
Open WFC Visualizer project details

Details

WFC Visualizer

A live, interactive Wave Function Collapse visualizer. The real Python and NumPy engine runs in the browser through Pyodide (WebAssembly), so a paintable sample drives an animated overlapping WFC solve with no server.

Python
NumPy
Pyodide
WebAssembly
JavaScript
Extrema Arcade gameplay: a curve on a dark grid with one point frozen inside the answer gate, above the five-way answer pad
Open Extrema Arcade project details

Details

Extrema Arcade

A calculus game from my tutoring site, rebuilt in Flutter for Android, Windows, and web from a single codebase. The port is checked against the browser original by executing the original's own source under Node and asserting the Dart engine reproduces every curve sample, point, and grade to 1e-9.

Flutter
Dart
CustomPainter
Golden tests
Live: Local buildCode: Local source
Screenshot of NURS 180 Wellness Log
Open NURS 180 Wellness Log project details

Details

NURS 180 Wellness Log

A local-first accountability tracker for daily commitments, private review, and sample-data exploration without a backend account system.

HTML
CSS
JavaScript
LocalStorage
Screenshot of StudentLife Course Explorer
Open StudentLife Course Explorer project details

Details

StudentLife Course Explorer

A CPEN 221 Java team project that searches course records and structures workload, difficulty, and review data for student planning.

Java
Course tooling
Team project
UX
Live: Local buildCode
Screenshot of Package Fit Visualizer
Open Package Fit Visualizer project details

Details

Package Fit Visualizer

A Three.js package-fit utility with editable box dimensions, GLB upload, drag controls, camera presets, and cleanup-aware model handling.

HTML
CSS
JavaScript
3D
Live Code: Single-file HTML
Screenshot of Simple GPX Viewer
Open Simple GPX Viewer project details

Details

Simple GPX Viewer

A browser-only GPX analyzer that keeps private activity files local while computing route, pace, elevation, segment, and export data.

HTML
CSS
JavaScript
Canvas
GPX
Live Code: Single-file HTML
Fortune Cookie 2.0 mod interface running inside the Cookie Clicker game
Open Fortune Cookie 2.0 project details

Details

A Cookie Clicker mod update that scans seeded spell RNG in browser-safe chunks to forecast rare Sweet / Free Sugar Lump outcomes.

JavaScript
Browser mod
Seeded RNG
Performance
Live: Load in Cookie ClickerCode
Ping test dashboard charting endpoint latency over repeated request samples
Open Ping Test Dashboard project details

Details

Ping Test Dashboard

A browser diagnostics dashboard that repeatedly samples endpoints, charts request timing, and summarizes min, median, max, average, and jitter.

Chart.js
JavaScript
Networking
Live Code: Single-file HTML

Tooling Applications

Focused utilities where the useful work is parsing, modeling, native integration, or automating a repetitive technical workflow.

6 matches
A waveform from the integration testbench: one message asserted on the input, the decision five clock cycles later, and the design's own latency counter reading five
Open FPGA Market Data Processor project details

Details

FPGA Market Data Processor

A market-data hot path for a DE10-Lite FPGA: a packed 38-bit message runs through a parser, an eight-level-per-side order book, a fixed-point signal engine, and a stateful pre-trade risk gate, reaching an accept-or-reject decision in a fixed five clock cycles at one message per cycle. Held to that contract by 47 self-checking cocotb tests scoreboarded against golden Python models.

SystemVerilog
cocotb
Icarus Verilog
Python
FPGA
Live: Simulation onlyCode
Deep zoom into the Mandelbrot set rendered by a Vulkan compute shader, showing an intricate blue and orange spiral
Open Vulkan Compute Lab project details

Details

Vulkan Compute Lab

A GPU compute-shader harness with no graphics pipeline at all: a compute shader writes an offscreen storage image that is blitted straight to the swapchain, so there is no render pass, no framebuffers, and no vertex or fragment stages. Shaders compile at runtime, so saving a file reloads it live.

C++20
Vulkan
GLSL
SPIR-V
CMake
Live: Local native buildCode
The bridge's dashboard showing watcher health, a routed conversation, rolling token windows and per-run cost, populated with sample data
Open Telegram Bridge project details

Details

Telegram Bridge

A private phone-to-PC bridge. An always-on Windows daemon long-polls a Telegram bot, and a message from my phone becomes a headless agent run on my workstation: answered, filed into my notes, or written as code on a throwaway git branch. Routing is decided by the structure of the message rather than by guessing at intent.

Python
Telegram Bot API
Automation
Windows
Live: Runs on my workstationCode: Private repo
Screenshot of Line by Line
Open Line by Line project details

Details

Line by Line

A local-first encrypted desktop journal built around delayed reflection: entries seal on submit and stay unreadable until an unlock date, stored in an AES-256-GCM SQLite vault whose key is never persisted.

C#
.NET 7
Avalonia
Cryptography
SQLite
Screenshot of ClipTrim
Open ClipTrim project details

Details

ClipTrim

A Tauri and Rust desktop utility for scanning clip folders, marking segments, extracting previews, and exporting cuts through FFmpeg.

Rust
Desktop tooling
Media
Live: Local buildCode
Open Simple Nodal Analysis Tool project details

Details

Simple Nodal Analysis Tool

A Flask and NumPy circuit solver that builds MNA matrices, solves node quantities, and reports topology diagnostics.

Python
Flask
NumPy
Circuits
Live: Local Flask appCode: Local Python source

p5.js Projects

Canvas-based simulation and visualization projects built around p5.js sketches and interactive browser experiments.

6 matches
Screenshot of Machine Learning Pong
Open Machine Learning Pong project details

Details

Machine Learning Pong

A Pong experiment where neural-network agents are scored, selected, mutated, and compared through generation-level metrics.

JavaScript
p5.js
Machine learning
Boids flocking simulation with many bird-like agents moving as a coordinated flock
Open Flocking Birds project details

Details

Flocking Birds

A boids simulation that separates cohesion, alignment, and separation while using quadtree lookup to keep neighbor checks responsive.

JavaScript
p5.js
Simulation
Curve fitter plotting a polynomial best-fit line through scattered data points
Open Curve Fitter project details

Details

Curve Fitter

A polynomial fitting sketch that exposes coefficient changes, error feedback, and graph navigation instead of hiding the fit in a library call.

JavaScript
p5.js
Data visualization
Zoomed-in view of the Mandelbrot set fractal with smooth color gradients
Open Mandelbrot Visualization project details

Details

Mandelbrot Visualization

A zoomable fractal explorer that maps pixels into the complex plane and preserves exploration context with undo state.

JavaScript
p5.js
Fractals
2D gravity simulation with orbiting bodies and predicted trajectory paths
Open 2D Gravity Simulation project details

Details

2D Gravity Simulation

A Newtonian sandbox with user-created bodies, field feedback, and predicted paths generated from a cloned simulation state.

JavaScript
p5.js
Physics
Conway's Game of Life grid showing evolving patterns of live and dead cells
Open Conway's Game of Life project details

Details

Conway's Game of Life

A cellular automaton playground with editable state, playback controls, randomization, and population-history instrumentation.

JavaScript
p5.js
Cellular automata

Learning Projects

Practice projects that show algorithm, simulation, and language fluency through inspectable local code.

2 matches
Screenshot of Project Euler Practice
Open Project Euler Practice project details

Details

Project Euler Practice

A Java archive of Project Euler solutions covering number theory, search, BigInteger arithmetic, dynamic programming, and debugging habits.

Java
Algorithms
Math
Live: Java CLI outputCode: Local Java source
Open Java Gravity Simulation project details

Details

Java Gravity Simulation

A Java gravity sandbox with explicit vector classes, object state, Swing rendering, trails, camera controls, and force integration.

Java
Physics
Simulation
Live: Local Java runCode: Local Java source

What's next

Future Projects — 5 planned builds

Each chosen to fill a specific gap in the current skillset relative to target co-op roles. Organized by priority with full implementation plans and job posting alignment.

View plans