Hi there
I'm JT. Also occasionally James Taylor.
I do cool stuff with JavaScript.
I still haven't figured out what to do with this site, but in the meantime, here's some things I've made over the years.
-
Waveform
Early 2022-ish — Inspired by a YouTube video, I wanted to visualise how a photograph and its luma waveform could be thought of as different 2-d represenatations of the same 5-d data. Uses WebGL and a bunch of matrix maths. Quite heavy* on the GPU if you dial it up to the maximum; please don't blame me if your computer catches fire. Also features a photo of my neighbour's cat.
-
Globe
Sometime around 2015 — A cool 3-d globe with a depth-of-field effect, mainly because I wanted to explore how to calculate an optically-accurate Circle of Confusion effect†. Also features a nice Fibonacci-spiral-based dot lattice because it annoyed me howevery existing example at the time usedan ugly latitude-longitude grid. (A previous version used subdivided-icosahedron hexagonal lattice; I couldnever getthe 12 required pentagon points to land somewhere nice.)
-
Game Boy emulator
A bored summer in 2014 — At least at the time, it felt like practically every developer would go through a phase of deciding to build a Game Boy emulator and I was no different. My goal specifically was to make something as small as possible but with full support for Game Boy Color. I revisit this every couple of years and shave more bytes off. Currently stands somewhere around 8.4kb minified & gzipped.
-
tiny-hashes
Sometime early 2011 — Have you ever needed to generate an md5, sha-1, or sha-256 hash in JavaScript, but need that JavaScript to be as small as possible? Well that was my motivation for this. Implementations as small as I can possibly make them. I can't promise that they are 100% bulletproof and cryptographically accurate (I suspect they fail if given null characters for example) but they have been in use for many years without issue. Featuring some extremely cursed JavaScript.