Yet Another Portfolio

My interesting looking projects.

qDiffusion

qDiffusion is a fully featured cross-platform AI image generation tool. It's built with a focus on user experience, workflow speed, and flexiblity. Local and cloud-based inference are both given equal priority, with no compromises for either. It's written in Python, with a completely custom QML GUI via PyQt5, and a launcher for Windows via C#. Backend written in PyTorch/Diffusers. Started in 2023.

Lineworks

Lineworks is a text editor with powerful AI cowriting features built in. The user can quickly direct the LLM to generate and regenerate anywhere in the document, with choices for sentance or paragraph level generation. This is integrated to be guided and controlled by the user through their own manual editing, allowing for effective Human/AI cowriting.

Being built from qDiffusion's codebase, Lineworks is also written in Python and PyQt5/QML, with a C# launcher for Windows. The backend for generation is a Llama.cpp wrapper, but also supports OpenAI compatible APIs and TogetherAI. Started in 2023.

qDiffusion Web

Web-based interface for qDiffusion with a simplified feature set. Designed primarily for mobile users wanting to leverage qDiffusion's remote notebooks (via Google Colab, Kaggle, SageMaker). Supports text to image generation with added support for LoRA, HR Fix and V-Prediction. Operates fully client-side, connecting directly via WebSocket to any specified qDiffusion backend. Uses JQuery and SCSS. Started in 2023.

Obsidian AI Chat

An Extension for the note-taking application Obsidian, allowing users to talk to AI about their notes. Designed to be simple to use and complete. Can connect to all major LLM APIs, supports swipes, multiple documents, markdown output and multiple API profiles. Written with TypeScript on Obsidian's Node/Electron stack. Started in 2024.

SD Tagging Helper

An Image dataset curation tool, designed to have fast workflows for manual cropping, tagging and resizing. AI tagging is also supported. Written in PyQt/QML, 2022.

COMBCore

COMBCore is a light-node and wallet for a post-quantum, anonymous cryptocurrency built on the Bitcoin blockchain called Haircomb. Haircomb would theoretically keep the Bitcoin blockchain secure in the event of a post-quantum attack on the Bitcoins signature algorithm (ECDSA). GUI built with C++/QML, node and library (libcomb) written in Golang. Started 2021, completed 2022.

Wire

CLI tool to send and receive files over a local Ethernet or WiFi with zero configuration. Using IPv6 link-local and multicasting allows communication without any IP addresses established. Written so I could plug two machines together and transfer files without manually assigning IPs or starting DHCP on the interface. On Windows context menu's are registered so Wire can be called directly in Explorer. Written in Golang. Started in 2022.

Splines

Spline visualisation tools built for my 2nd year research project which focused on a method to compute Gaussian quadratures via Homotopy continuation. GUI Tools are: C#/ImGUI/OpenTk, C++/Qt/OpenGL, and Julia/ImGUI/OpenGL. Method implementation was in C++/Eigen/Autodiff. Completed in 2021.

Save Editor

Small tool for the game Palword, uses UESave to rename players and transfer player appearance from one save file to another. Written in C# with Windows Forms. Completed in 2024.

GUICrypt

Front end for libtomcrypts symmetric cipher functionality, includes every common mode and cipher. Written to teach myself C before my university course on the language. GUI uses nuklear/glfw for cross platform compatibility. Completed in 2020.

Interpreted Assembly

Editor and Interpreter for a simple interpreted assembly-like language. Has nested logic, subroutine and graphics support. Written in C# using WPF and SlimDX. Completed in 2018.