01 Apps
Shipped on the App Store, the VS Code Marketplace, and GitHub Releases.
WaveExplorer
Opens audio files in a custom editor: waveform, mel and linear spectrograms, synced zoom and pan, and region playback — without leaving the editor. The STFT runs in a Web Worker so the UI never blocks.
02 Exhibitions
Interactive installations built and exhibited with hecomi.
Mont Blanc Project
A game projection-mapped onto a LEGO baseplate. Press a white brick onto the board and it appears in the game with real collision — the character walks along it, jumps off it. An infrared camera separates the white bricks players add from the grey base, which is what kept detection stable through two full days of a show floor.
The 2014 rebuild let the board push back: servos, solenoids and magnets hidden underneath moved pieces on their own and launched bricks out of the stage.
LITTAI
Rear projection through television stone — a fibrous crystal that carries an image from its base up to its surface. Blocks set on the board light up as part of the projected world, and the system tracks them being touched, moved and turned.
My half was the input: wireless button gadgets on TWE-Lite (ZigBee) that fire from the on-screen character and buzz back in your hand, with 3D-printed LEGO-style shells.
03 Web & Experiments
Things you can open in a browser, plus tools I built for myself.
arXivExpress
A private reading queue for arXiv cs.SD. It pulls new papers daily,
filters and summarizes them in Japanese with an LLM, and tracks unread / later /
archived state so nothing quietly disappears. SQLite behind FastAPI, with an iOS
companion app.
Jonthesizer
A software synthesizer written entirely in Python — MIDI in, oscillators, envelopes and filters from scratch, with a live PyQtGraph scope on top.
Audio Streaming Web App
A deliberately minimal reference for real-time voice in the browser: microphone in over a WebSocket, echoed straight back as a stream. Meant to be the starting point you fork, not a finished product.
04 Browser Extensions
Small Chrome extensions, mostly for reading papers faster.
Video Speed Controller
Keyboard shortcuts for YouTube playback speed — faster, slower, back to 1× —
rebindable from chrome://extensions/shortcuts.
arxiv2issue
Files an arXiv paper straight into a GitHub Issue — the capture step behind arXivNotes.
05 Paper Reproductions
PyTorch implementations of NLP and deep learning papers, written to be read.
- BiDAF ★ 143 Bidirectional Attention Flow for Machine Comprehension — Seo et al., ICLR 2017
- Gated Convolutional Networks ★ 106 Language Modeling with Gated Convolutional Networks — Dauphin et al., ICML 2017
- Pointer Networks ★ 77 Outputs that point back at positions in the input — Vinyals et al., NIPS 2015
- AutoEncoders ★ 67 AE, VAE and conditional VAE side by side in PyTorch
- Key-Value Memory Networks ★ 58 Directly reading documents as key-value memories — Miller et al., EMNLP 2016
- word2vec ★ 56 Skip-gram with negative sampling, from scratch in PyTorch
- Beam Search ★ 54 Beam search decoding, kept small enough to follow line by line
- Hybrid Code Networks ★ 43 Task-oriented dialog with domain knowledge in the loop — Williams et al., ACL 2017
- Memory Networks ★ 38 End-To-End Memory Networks — Sukhbaatar et al., NIPS 2015
- QA-LSTM ★ 12 LSTM answer ranking for question answering
- Self-Attentive Sentence Embedding ★ 11 A Structured Self-attentive Sentence Embedding — Lin et al., ICLR 2017
- PU Learning ★ 7 Learning a classifier from positive and unlabeled data alone
- BERT Pre-training of Deep Bidirectional Transformers, with a SentencePiece tokenizer — written as plainly as possible
06 Publications
Peer-reviewed work from the day job.
-
LibriTTS-VI: A Public Corpus and Novel Methods for Efficient Voice Impression Control
Numerical control over how a synthesized voice is perceived — brightness, warmth, eleven perceptual scales in all. The paper releases the first public corpus for the task, built on LibriTTS-R, and shows that conditioning speaker identity and voice impression on separate utterances stops a reference clip from dragging the output away from the target.
-
Context-Aware Dialog Re-Ranking for Task-Oriented Dialog Systems
Re-ranking candidate responses in a task-oriented dialog system using the conversation so far, from work at Carnegie Mellon.
07 Resources
Notes and datasets I keep in the open for the NLP community.
- arXivNotes ★ 193 Several hundred NLP papers read and summarized in Japanese, one GitHub Issue each
- MultiWOZ Parser ★ 67 A parser for the Multi-Domain Wizard-of-Oz dialogue dataset
- NLP Corpora ★ 62 A curated list of NLP corpora, tagged by how each one was collected
08 Algorithms
Classic data structures, implemented to understand them.
Taiyaki
A Japanese morphological analyzer built from the ground up — a double-array trie for common-prefix search, then Viterbi minimum-cost segmentation over the IPAdic connection costs.
FM-index
The Burrows–Wheeler transform and the FM-index built on top of it: substring search over compressed text, across a file or a whole directory.