Blog entries
-
A from-scratch GIF encoder written in C following the GIF89a specification, built specifically to test how browsers handle high frame rate GIFs. The investigation reveals that while the spec theoretically supports 100 fps, browsers cap out around 50 fps and default 100 fps GIFs back to a sluggish 10 fps. Includes side-by-side comparisons from 1 to 100 fps so readers can see exactly where things break down -- a fun dive into file format specs and browser rendering behavior.
-
An information-theoretic analysis of lyrical repetitiveness across Billboard charting songs from 1950 to 2015, using entropy as the core metric. The results rank individual songs, artists, and genres by diversity -- with Martin Garrix's "Animals" as the most repetitive hit and rap/hip-hop emerging as the least repetitive genre overall. Also tracks how average lyrical complexity has shifted over decades, showing that the rise of hip-hop has actually increased diversity in popular music.
-
An exploration of involute curves -- the mathematical shapes formed by unwinding a taut string from a circle -- and their critical role in mechanical gear design. Goes from the underlying parametric equations all the way to a fully interactive browser tool that lets users customize tooth count, pressure angle, and other parameters, then download their custom gear as an SVG. A nice blend of math, engineering, and interactive web development.
-
A project combining GIS data, 3D modeling, and physical fabrication to create a 3D-printed model of the neighborhood around Meguro Station in Tokyo. The pipeline goes from CADMAPPER for map data, through SketchUp for modeling, to a Prusa MK4S printer for the final output. Despite limited building height data (only 21 out of 2,035 buildings), the result is a tangible physical artifact of a familiar place.
-
A massive data analysis project processing over 200 million rated blitz games from the Lichess open database -- 153 GB of compressed data crunched in 38 minutes using a custom C program. The results are presented as beautiful heatmap chessboards showing king check frequencies, piece capture hotspots, and pawn promotion distributions. A serious exercise in high-performance data processing and visualization.
-
A head-to-head comparison of Gemini Flash, ChatGPT, and Grok, all given the exact same prompt to generate bouncing balls in a rotating hexagon with elastic collisions. All three live JavaScript outputs are embedded side by side with no editorial commentary, letting the reader directly evaluate each model's ability to handle physics simulation, code generation, and visual output.
-
A deep mathematical dive into finding the optimal Wordle opening word using information theory and tree search algorithms. A naive single-round entropy approach yields ROATE, but a more thorough two-round exhaustive search reveals SALET as the true optimal opener -- matching published results from MIT and 3Blue1Brown. A great demonstration of how search depth dramatically changes optimization outcomes.
-
A geospatial analysis project to find the "pole of inaccessibility" inside Tokyo's famous Yamanote train loop -- the single point farthest from any subway or train station. Using OpenStreetMap data and Python distance calculations, the spot was pinpointed in Shibuya-ku at 947 meters from the nearest station, dubbed "Dan-Polo," and verified with an in-person visit. A creative application of GIS concepts to everyday urban life.
-
A large-scale text analysis project that counts every Kanji character across the entirety of Japanese Wikipedia -- nearly 2 billion characters processed using bzgrep and Python, yielding 24,916 unique Kanji. The results reveal interesting frequency distributions, with date-related characters dominating the top spots. A fun intersection of language learning, data engineering, and curiosity-driven analysis.
-
A complete game built from scratch in PICO-8 using Lua, featuring custom physics, collision detection, and game logic -- all within the constraints of a 128x128 pixel display and a 16-color palette. It's playable directly in the browser and demonstrates game development fundamentals under tight technical limitations, with thoughtful reflection on what could be improved.
-
A detailed walkthrough of registering a .tokyo.jp country-code domain through Japan's JPRS registry -- a process that requires a permanent Japanese address, navigating an entirely Japanese registration system, and manually generating SSL certificates with OpenSSL. A solid look at DNS, domain registration, and web infrastructure from the ground up.
-
A fully interactive rotating celestial sphere built using real astronomical data from the Hipparcos Star Catalog, rendering the top 10,000 brightest stars. Seven constellations are drawn with interactive hover effects, combining data parsing, 3D graphics, and UI interactivity into one polished browser-based experience.