Tinkering

Side projects, weekend builds, and things I make for the fun of figuring them out.

§ Personal · Outside the day job

The stuff I build for the fun of figuring it out — generative models, agentic exploration, game-related stuffs, terminal toys, and small simulations.

For professional work, see Work.

2026 · Agentic AI · Python · Streamlit

Trader Advisor — agentic stock research

An LLM agent that researches stocks by autonomously calling tools — picks its own data sources during the investigation, with a tool-call quota and hand-rolled loop (no LangChain). Eleven tools spanning price, indicators, fundamentals, options, insider activity, sentiment, and news. Two classical LLM pipelines included as additional voices. Runs locally on gpt-oss:20b via Ollama; provider-pluggable for Anthropic, OpenAI, Google.

Ongoing · Infrastructure · Proxmox · Ollama

Self-Hosted ML Infrastructure

A self-hosted ML platform — local LLM serving (Ollama), retrieval-augmented generation (AnythingLLM + self-hosted SearXNG), agent serving, and multimodal generation — running on a Proxmox host with GPU passthrough across CUDA and ROCm, plus a standalone GPU node. Local inference is the default path; provider-pluggable for Anthropic, Google, and others.

2024 · Generative Models · PyTorch

Music generation transformer

Decoder-only generative transformer in PyTorch — small enough to be readable, big enough to learn something interesting. Dual-modality: text tokenizer for language modeling, MIDI tokenizer for music generation. Trained on Bach’s Goldberg Variations and The Well-Tempered Clavier.

Goldberg Variations · 1
Goldberg Variations · 2
Well-Tempered Clavier
2026 · Terminal · Rust

MooseReader

A featherweight terminal EPUB reader in Rust — keyboard-driven (h j k l), TrueColor themes (Dracula, Nord, Solarized, Catppuccin, Gruvbox), and percentage-based bookmarks. No electron shell, no heavyweight TUI framework — single-digit-megabyte footprint.

MooseReader terminal EPUB reader demo
2022 · Simulation · Python · C++

Isometric tiles

A Game-of-Life-inspired tile simulation. Blue and red blocks move, multiply, and decay over an isometric grid. Written in Python first, then ported to C++ for larger grids and faster step rates.

Isometric tile simulation
2023 · Cryptography · Python

Enigma machine emulator

Object-oriented Python 3 emulation of the Enigma M3 cipher machine, with rotors, reflectors, and the plugboard modeled as first-class classes. Settings are reproducible — encrypt-then-decrypt round trips verify cleanly.

Enigma M3 emulator screenshot
2023 · Graphics · Python

Raycasting renderer

A from-scratch raycasting renderer in Python and PyQt5 — the rendering technique behind Wolfenstein 3D (1992). Casts rays per pixel column over a 2D map and computes wall heights from intersection distance.

Raycasting renderer demo
2019 · Game Engines · Unreal

Unreal Engine cutscene experiment

A video cutscene and physics-driven object-movement experiment in Unreal Engine 4.22, with raytracing enabled. Built from royalty-free assets — the focus was the scripting and rendering pipeline rather than original art.

2024 · Mobile · Flutter · Swift

Soundboard app

A cross-platform soundboard with audio mixing, shuffling, video playback, and motion control. Started as a Swift 5 iOS prank; rewritten in Flutter to ship the same UI on macOS, Windows, and Linux from one codebase.

Soundboard — Flutter macOS build
2023 · Web · Python

Online audio cutter

A small Dash web service that extracts audio clips from pre-defined videos by time interval. Built to feed source material into the Soundboard app without round-tripping through a desktop editor.

Online audio cutter UI