I build tools that solve problems I actually have. Music libraries, polyrhythm engines, language learning, privacy-first health tracking — if I need it, I build it.
├── suno-explorer music library management & curation released
Chrome extension + PWA that indexes your entire Suno AI music library — intelligent grouping, version lineage tracking, analytics, and encrypted cloud sync for libraries of 27k+ songs. 15k+ lines of vanilla JS, no framework, no runtime dependencies.
highlights
- DNA strand grouping — groups songs by normalized title into lineage trees tracking generation, upload, extend, cover, and concat relationships. Processes 27k+ clips in 5,000-record chunks with explicit browser yields for UI responsiveness.
- Parent inference heuristic — multi-signal scoring algorithm reconnects orphaned clips to likely parents using prompt matching, tag overlap, time proximity, and duration ratios. Pre-built title index provides O(1) candidate lookup.
- Library compression — two-pass lossless compression builds dictionaries for IDs, lyrics, tags, and prompts, replacing values with integer indexes. Documented result: 100MB → 18MB. Backwards-compatible format detection.
- Encrypted cloud sync — all sync through Supabase Edge Functions with server-side token verification, SHA-256 hashed display IDs, and union merge for tags. Never direct DB access.
- Insights dashboard — GitHub-style activity heatmap, genre/tag cross-referencing explorer, frequency-weighted lyrics word cloud, Suno model version breakdown, achievement badges, and shareable stats cards.
architecture
- Offline-first — IndexedDB is source of truth, cloud is a replication layer, not a dependency
- MV3 service worker keepalive via Web Locks API for long-running indexing operations
- Zero-framework DOM manipulation with event delegation and custom state management at scale
Public curation features power VAiRiOUS ARTiSTS — a public music discovery platform built on Suno Explorer's export pipeline.
├── co-composer polyrhythm engine & music creation live / unreleased
Browser-based polyrhythm engine with real-time audio synthesis, circular D3.js visualization, MIDI import/export, brainwave entrainment, and stateless composition sharing that encodes entire compositions into shareable URLs — no database required.
highlights
- Multi-track polyrhythm player — unlimited simultaneous rhythmic tracks with per-rhythm sound, color, and volume. Phase-synchronized circular D3.js canvas animation renders beat positions in real time against a shared pulse.
- DNA encoding — compositions serialized into compact URLs with binary beat packing and RLE compression. Three encoding generations achieve lossless sharing in under 200 characters. No database, no server, no expiration.
- Orbital Resonance Encoding (ORES) — maps polyrhythmic ratios to real exoplanetary orbital resonances using Stern-Brocot trees. Produces human-readable addresses like
trappist.RRL.5abacked by a 93KB exoplanet catalog. - Inverse synthesis — upload an audio sample and the browser reverse-engineers synth parameters to approximate it. Multi-resolution STFT analysis, Bark-scale perceptual weighting, and evolutionary optimization. No ML, no server.
- Isochronic brainwave entrainment — LFO-modulated carrier oscillators at target brainwave frequencies. The Rhythm Mapper exploits the identity between rhythm and pitch at different timescales to derive polyrhythm configurations from entrainment parameters.
architecture
- Phase-normalized orchestration — all animation and audio scheduling use 0–1 phase values, decoupled from wall-clock time
- Sound routing via factory + registry pattern across 5 engine types (oscillator, nature-voice, percussion, layered, sample)
- Immer-backed reducer with 38+ action types centralizing all polyrhythm state mutations
├── universal-lingo language learning through absorption in development
Multi-language vocabulary learning with concept-based mastery tracking, AI-powered card generation, and an absorption mode for passive multi-language exposure. Study Spanish, French, and Japanese side by side with independent spaced repetition per direction.
highlights
- Absorption mode — select any number of languages, see color-coded cards side by side, flip entire rows at once. Designed for comprehension and familiarity, not rote memorization.
- Multi-direction tracking — each language pair (ES→EN vs EN→ES) maintains independent SM-2 spaced repetition state. Receptive and productive skills tracked as separate abilities.
- AI-powered generation — describe what you want to learn, get a structured prompt for your LLM of choice, paste the result back, and it becomes study cards. Programmatic expansion via synonyms, antonyms, and related words.
- Concept-based mastery — progress tracked at the semantic level, not per-card. Learning "hello" on one card improves your score for all cards representing that concept across your library.
architecture
- Hexagonal architecture — ports & adapters pattern with swappable storage backends and zero framework dependencies in domain logic
- SM-2 algorithm with direction independence — each (concept, direction) pair maintains its own ease factor, interval, and due date
├── vault privacy-first health tracking framework in development
A monorepo of privacy-first health tracking apps built on a shared encryption and UI framework. AES-256-GCM encryption with PBKDF2 key derivation. No servers, no accounts, no tracking. Your data never leaves your device.
highlights
- Shared encryption core — AES-256-GCM with PBKDF2 key derivation (100k iterations). Portable encrypted files work across all apps in the ecosystem. Export your data, own your data.
- Domain-driven engines — CycleEngine, PredictionEngine, TaperEngine, WithdrawalEngine — all pure TypeScript with zero React dependencies. Fully testable without mocking the DOM.
- Adaptive predictions — confidence scoring factors both data quantity and statistical regularity. More data + lower deviation = higher confidence. Prevents overconfident predictions on sparse data.
- Harm reduction philosophy — non-judgmental language throughout. Supportive messaging on partial compliance. Privacy by design because health data shouldn't require trust in a corporation.
architecture
- Abstract base storage pattern — encryption/decryption handled once, each app extends with ~40 lines vs 200+ of crypto logic
- CSS variable theming with 4 themes via pure selector swaps — zero runtime overhead
- No backend by design — privacy is architectural, not a policy
└── redstone-companion bedrock-accurate redstone simulator in development
Tick-for-tick Bedrock Edition redstone simulator with a text DSL, logic graph compiler with auto-layout, and an isometric 3D visualizer. 727 tests. Zero runtime dependencies.
highlights
- Two-phase tick engine — implements Bedrock's P-tick/C-tick system where odd ticks produce signals and even ticks consume them, matching real in-game timing at 100ms resolution. The foundational mechanic most simulators skip.
- Logic graph compiler — topological sort, crossing minimization, spatial placement, and automatic dust routing with collision detection and repeater insertion every 14 blocks.
- Text DSL —
output out = xor(a, b)compiles to an abstract logic graph, then down to placed 3D block circuits with routed wiring. Supports nested gates and named intermediates. - Isometric 3D visualizer — canvas-rendered with four rotation directions, Y-layer slicing, signal-strength heatmap overlay, and full simulation transport with tick history and rewind.
- 112+ built-in circuits — categorized across four tiers (Learn, Build, Explore, Compute) spanning logic gates, clocks, memory cells, arithmetic, farm automation, flying machines, and item sorters.
architecture
- Pure-function block modules with immutable state — world state is a sparse Map<string, BlockState> making snapshots and replay trivial
- Three-tier compilation: DSL → LogicGraph → CircuitJson with L-route, Z-jog, and Y-bridge wire routing strategies
- 727 tests pinned to Minecraft Wiki documentation to verify Bedrock-specific behavior
Every project here started as a personal need. I'm a guitarist and progressive metal enthusiast — most of the music tools exist because I needed them for my own creative workflow.
I believe your data should stay yours. The health tracking apps use client-side encryption because privacy shouldn't require trust.