45deg

About

A collection of small web tools, visualizations, and notes I made for myself. This is less a polished portfolio than a log of things I tried and want to be able to revisit. X

Works

Image Measurement Tool

Image Measurement Tool (2026)

A web application that makes it easy to measure the length of objects on photos or images.

ImageEditor
Lecture Scheduler

Lecture Scheduler (2026)

A tool for creating and editing lecture schedules on a monthly calendar.

CalendarSchedulingEditor

Intl API Comparison Viewer (2026)

An experimental viewer for comparing JavaScript Intl API output across locales and constructors.

ArticleIntlJavaScriptMisc
Pixel Grid Studio

Pixel Grid Studio (2026)

A browser tool for converting generated images into pixel art with grid fitting, palettes, and masks.

ImagePixel ArtEditor

Practical Zustand Notes (2026)

Practical notes on Zustand basics, selectors, typing, middleware, SSR, and design trade-offs in React.

ArticleZustandReactJavaScript
Stitch

Stitch (2026)

A tool for stitching together multiple overlapping screenshots into a single image.

ImageVisualization
Vibe Design Gallery

Vibe Design Gallery (2026)

A design gallery using Tailwind CSS utility classes, with design prompts for vibe coding.

DesignLLMVisualization
Lucide Icon Search

Lucide Icon Search (2026)

A tool for searching Lucide icons by handwriting

IconSearchVisualization
句読点補完ツール

Japanese Punctuation Completion Tool (2026)

A browser tool that automatically adds punctuation and line breaks to Japanese text using a lightweight Transformer exported to ONNX.

NLPONNXLanguage
QuickCalc

QuickCalc (2026)

A note-like reactive calculator where expressions and variables update line by line.

CalculatorReactive
STICK GAME

STICK GAME (2026)

A browser game version of a small finger-counting game, with a CPU opponent and a compact state space.

GameAI
nanotation

nanotation (2026)

A lightweight browser annotation editor for layering notes over images or work targets, designed for quick review and sharing.

AnnotationEditorMedia

Browser-only Video Converter (2026)

A demo for converting video directly in the browser using WebCodecs and web-demuxer.

WebCodecsVideoMiscMedia

AsciiArt Table Parser (2026)

A tool that parses ASCII-art style tables and turns them into plain structured text.

ParserTextMisc

ZIP Generation in Plain JavaScript with Compression API (2026)

An article explaining how to generate ZIP files in JavaScript with the Compression API.

ArticleCompressionMisc

Browser-only MP4 Generation with WebCodecs and MP4Box.js (2026)

An article exploring MP4 generation in the browser with WebCodecs and MP4Box.js.

ArticleMP4MiscMedia
Subleq Compiler

Subleq Compiler (2026)

A compiler experiment that lowers a higher-level syntax into the one-instruction SUBLEQ architecture.

CompilerOISCSUBLEQ
pdf2md

pdf2md (2026)

A local browser tool for converting PDFs to Markdown and extracting images as part of the same flow.

MediaMarkdownLocal
FlowTimer

FlowTimer (2025)

A minimal presentation timer focused on the remaining time and progress state a speaker needs while presenting.

TimerPresentation
PDFUnbinder in Browser

PDFUnbinder in Browser (2025)

A browser version of PDFUnbinder that reads PDF outlines and splits files by chapter or section.

MediaBrowser

CRT-style Image Effector (2025)

A WebGL image effect tool that processes images into a CRT television look.

WebGLImageMiscVisualization

JPEG Artifact Generator (2025)

A tool that repeatedly applies JPEG compression to create a crunchy artifact texture.

ImageEffectMiscVisualization

Images to PDF (2025)

A tool for dragging, dropping, reordering, and exporting images as a PDF.

MediaImageMisc
MNIST UMAP Visualization

MNIST UMAP Visualization (2024)

A visualization that maps MNIST handwriting samples into 2D with UMAP, making digit clusters and overlap easy to explore.

UMAPMNISTVisualization

Nahuatl Text Helper (2024)

A text editor that helps input long-vowel marks for Nahuatl.

EditorLanguageMisc

Safetensors Metadata Viewer (2023)

A viewer for inspecting metadata inside safetensors files.

ViewerMetadataMisc

Jinja2 Template Renderer (2022)

A browser renderer that runs Jinja2 templates on Pyodide.

PyodideTemplateMisc
HoverDictCN

HoverDictCN (2019)

A Chinese reading aid using CEDICT. Hover or tap characters to quickly check word and character meanings in English.

ChineseDictionaryLanguage
PDFUnbinder

PDFUnbinder (2018)

A JavaFX desktop app for splitting bookmarked PDFs by chapter.

MediaJavaFX
RGBCloud

RGBCloud (2017)

A 3D viewer that plots image pixels in RGB or HSL color space so the color distribution can be inspected directly.

Three.jsColor3DVisualization
Kantele

Kantele (2016)

A Scheme-like sound programming language made as a lab assignment. It plays sound.

AudioScheme
dynamorphism の紹介

Introduction to Dynamorphism (2015)

A technical article explaining dynamic programming as a functional fold, written with diagrams for rogy Advent Calendar.

ArticleFunctional Programming
ニューラルネットワークの可視化

Neural Network Visualization (2014)

An early browser visualization of BPNN weights, node states, and the learning process.

BPNNVisualization