I build scientific software, developer tools, and AI-assisted products across Rust, TypeScript, Python, and WebAssembly.
My work usually sits in one of four lanes: X-ray spectroscopy and numerical tooling, multilingual search and tagging, generated design systems, and chemical risk/law data workflows.
| Project | Stack | What it is |
|---|---|---|
| Morphous | TypeScript, TanStack Start | Catalog of nature-inspired design systems with generated motif assets, light/dark boards, prompts, and shadcn/tweakcn theme exports |
| xraytsubaki | Rust | Fast Rust implementation of core xraylarch workflows for large XAS/XAFS datasets |
| Yuru | Rust | Fast CJK-aware fuzzy finder with Japanese romaji, Chinese pinyin, Korean phonetic search, and fzf-style shell integration |
| TagRune | Rust, TypeScript | AI tagging workflow rebuilt around a Rust API, queue workers, object storage, OpenAPI contracts, and a TanStack Start UI |
| WebXrayDB | Rust, WASM, React | Browser and desktop X-ray reference database with attenuation, scattering, optics, and sample-preparation calculators |
| Cadence Note | TypeScript, Bun | Personal-first task manager built with TanStack Start, Elysia, better-auth, Drizzle, PostgreSQL, and worker queues |
| ruviz | Rust | High-performance 2D plotting library for Rust, aiming for matplotlib-style ergonomics with Makie-like performance |
| Project | Stack | What it is |
|---|---|---|
| ra-library | Python | Chemical risk assessment library with explanations, recommendations, and bundled reference data |
| ra-law-db | Python, SQLite | Public runtime dataset and API for Japanese chemical law screening |
| ra-bio | Python, SQLite | Microorganism risk-reference database with name resolution, fuzzy search, and law/risk annotations |
| Project | Stack | What it is |
|---|---|---|
| xraydb-rs | Rust | Pure-Rust port of XrayDB elemental X-ray reference data |
| xraydb-api | Rust | API service for XrayDB elemental X-ray reference data |
| feff10-rs | Rust | Rust wrapper for FEFF10 X-ray absorption and electronic structure calculations |
| mucaljs | JavaScript | JavaScript implementation of MUCAL cross-section estimation |
| chemical-formula-rs | Rust | Chemical formula parser and composition utility crate |
| cif-parser | Rust | Rust parser for Crystallographic Information Files |
| xasanalysis | Python | Python wrapper for simplifying XAS analysis workflows |
| xasalign | Python | Python package for aligning XAS spectra |
| xasref | Python | Reference XAS spectra dataset and Python access tools for beamline data |
| IBR-AIC | Python | Bragg peak removal for XAS spectra in transmission and fluorescence measurements |
| DecomNano | Python | Heterogeneity analysis of bimetallic nanoparticles from XAS-derived coordination numbers |
| crowpeas | Jupyter Notebook, Python | EXAFS fitting experiments using neural networks and PyTorch |
| lmopt | Rust | Levenberg-Marquardt nonlinear least-squares optimization in Rust using faer |




