Each frame goes through Canny edge detection, then a nearest-neighbor
algorithm connects all the edge pixels into one unbroken path — like
drawing each frame without lifting the pen.
The viewer is built with React + Three.js with post-processing glow
effects to mimic a real CRT oscilloscope.
Hello from Japan! I discovered TrainJazz this morning and enjoyed it with my morning coffee — the idea of turning subway movements into music is quietly beautiful.
I would love to see a Japanese version someday. Tokyo’s train network is one of the most complex in the world, and I imagine the music it would make would be extraordinary. Thank you for creating something so thoughtful.
Source Code: https://github.com/ad-sho-loko/bad-apple-on-oscilloscope
Each frame goes through Canny edge detection, then a nearest-neighbor algorithm connects all the edge pixels into one unbroken path — like drawing each frame without lifting the pen.
The viewer is built with React + Three.js with post-processing glow effects to mimic a real CRT oscilloscope.
Inspired by this tweet: https://x.com/AhmedShahnab/status/2035330016725336065
Tech stack: - Python (OpenCV) for frame processing - React + Three.js + R3F for rendering - Cloudflare Pages for hosting