jojonki

jojonki / Tokyo

Speech, language,
and small things that ship.

Researcher at Sony in Tokyo, currently working on text‑to‑speech. Previously a visiting researcher at the Language Technologies Institute, Carnegie Mellon University.

Off the clock I ship small apps — iOS, macOS, editor and browser extensions — publish readable PyTorch reproductions of NLP papers, and have taken a few interactive installations to Maker Faire.

01 Apps

Shipped on the App Store, the VS Code Marketplace, and GitHub Releases.

DiscoMan running on iPhone: a pixel-art LCD above a 4×4 grid of drum pads.

DiscoMan

App StoreiOSSwift

A pocket drum machine in the spirit of the PO‑12. All 16 voices are synthesized live with AVAudioEngine and hand-written DSP — not a single sample — behind a pixel-art LCD where a tiny crowd reacts to every hit.

Patora on iPhone: a list of film cameras showing the loaded roll and ISO.

Patora

App StoreiOSSwiftUI · SwiftData

A companion for shooting film. It remembers which roll is loaded in which body, counts the days since you loaded it, and follows every roll through developing into the archive — so you still know what shot what, months later.

Conductor's popover listing macOS menu bar icons split into visible and hidden.

Conductor

macOSSwift

A lightweight, free take on Bartender. It enumerates every menu bar status item through the Accessibility API, then lets you hide, show and drag them into order from a single popover.

abekobe's menu bar menu with separate reverse toggles for trackpad and mouse.

abekobe

macOSSwift

Scroll direction, controlled per device and per axis. macOS applies “natural scrolling” to everything at once; abekobe taps CGEventTap and flips vertical and horizontal independently for the trackpad and the mouse.

WaveExplorer inside VS Code showing a waveform above a mel spectrogram.

WaveExplorer

MarketplaceVS CodeTypeScript

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 at Ogaki Mini Maker Faire 2014: a hand reaching into a projection-mapped LEGO game board.

Mont Blanc Project

Maker Faire Tokyo 2013OMMF 2014

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.

UnityOpenCVArduinoOSC

LITTAI at Maker Faire Tokyo 2015: glowing LEGO blocks trailing coloured light across a dark projection surface.

LITTAI

Maker Faire Tokyo 2015

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.

UnityTWE-LiteProjection mapping

03 Web & Experiments

Things you can open in a browser, plus tools I built for myself.

Scatter plot of World Cup squads: best-XI quality on the x axis, squad depth on the y axis, plotted with national flags.

WC2026 Squad Power

LivePython · Web

Rates the raw individual strength of all 48 World Cup 2026 squads — 1,248 players — from the club and league each one plays in, then plots best‑XI quality against squad depth. Group tables and a knockout bracket included.

Animation of a CNN receptive field growing layer by layer.

Vis Receptive Fields

Live★ 4

Stack convolution and pooling layers, and watch the receptive field grow. Built to make the arithmetic behind CNN architectures something you can see instead of something you re-derive on paper.

arXivExpress

Python · FastAPILLMPrivate

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's oscilloscope-style interface built with PyQtGraph.

Jonthesizer

Python★ 4

A software synthesizer written entirely in Python — MIDI in, oscillators, envelopes and filters from scratch, with a live PyQtGraph scope on top.

Browser interface streaming microphone input to a server and back.

Audio Streaming Web App

Python · FastAPIWebSocket

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.

arXiv Clip popup showing a paper's title, authors and link ready to copy.

arXiv Clip

Web Store★ 5

One click on an arXiv page copies the title, authors, comments and URL as a clean citation block — the shape you actually want to paste into notes.

Video Speed Controller adjusting YouTube playback speed via a keyboard shortcut.

Video Speed Controller

ChromeJavaScript

Keyboard shortcuts for YouTube playback speed — faster, slower, back to 1× — rebindable from chrome://extensions/shortcuts.

Copy Text with URL

Web Store★ 8

Copies the selected text together with the page it came from, so a quote never arrives without its source.

arxiv2issue

Web Store★ 3

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.

06 Publications

Peer-reviewed work from the day job.

07 Resources

Notes and datasets I keep in the open for the NLP community.

08 Algorithms

Classic data structures, implemented to understand them.

Taiyaki's mascot: a squirrel in an NLP headband holding a taiyaki.

Taiyaki

Python · Cython★ 13

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

Python★ 6

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.