CRT Phosphor Simulator (2026)
A 3D/WebGL experiment for loading images or videos and zooming into CRT-style RGB phosphor elements.
A collection of small web tools, visualizations, PDF experiments, 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
A 3D/WebGL experiment for loading images or videos and zooming into CRT-style RGB phosphor elements.
A simple browser video editor for cuts, joins, text overlays, and image overlays.
A WASM benchmark comparing lossless compressors by ratio, compression time, and decompression time.
A note-like reactive calculator where expressions and variables update line by line.
A browser game version of a small finger-counting game, with a CPU opponent and a compact state space.
A browser tool that turns images, videos, or camera input into tile-based mosaic art.
A lightweight browser annotation editor for layering notes over images or work targets, designed for quick review and sharing.
A compiler experiment that lowers a higher-level syntax into the one-instruction SUBLEQ architecture.
A minimal presentation timer focused on the remaining time and progress state a speaker needs while presenting.
A local browser tool for converting PDFs to Markdown and extracting images as part of the same flow.
A local PDF toolkit for viewing, extracting, splitting, and merging by table-of-contents entries.
A browser version of PDFUnbinder that reads PDF outlines and splits files by chapter or section.
A visualization that maps MNIST handwriting samples into 2D with UMAP, making digit clusters and overlap easy to explore.
A Chinese reading aid using CEDICT. Hover or tap characters to quickly check word and character meanings in English.
A JavaFX desktop app for splitting bookmarked PDFs by chapter.
A 3D viewer that plots image pixels in RGB or HSL color space so the color distribution can be inspected directly.
A Scheme-like sound programming language made as a lab assignment. It plays sound.
A technical article explaining dynamic programming as a functional fold, written with diagrams for rogy Advent Calendar.
A ConvnetJS rewrite of the neural network visualization, with adjustable units and learners for observing training behavior.
An early browser visualization of BPNN weights, node states, and the learning process.
A demo for converting video directly in the browser using WebCodecs and web-demuxer.
An article exploring MP4 generation in the browser with WebCodecs and MP4Box.js.
An article explaining how to generate ZIP files in JavaScript with the Compression API.
A tool that parses ASCII-art style tables and turns them into plain structured text.
A WebGL image effect tool that processes images into a CRT television look.
A tool that repeatedly applies JPEG compression to create a crunchy artifact texture.
A tool for dragging, dropping, reordering, and exporting images as a PDF.
A text editor that helps input long-vowel marks for Nahuatl.
A viewer for inspecting metadata inside safetensors files.
A browser renderer that runs Jinja2 templates on Pyodide.