Photograph-ing and engineer-ing | He/him https://afloat.boats/photos
Building intuition for matrix transforms by building a rotating cube with Canvas2D APIs.
A quick start with Rust's toolchain and Cargo for JS engineers, before diving into the Connect-4 build.
Player turns, move validation, and win detection for Connect-4 in Rust compiled to WASM.
Calling JS from Rust, building the Connect-4 board as a Vec, and rendering it as HTML across the WASM boundary.
Got nerd sniped into missing a workout, and improving the performace of rendering 500k rectangles by 10x.
Project structure, wasm-bindgen, enums, and traits — first steps toward building Connect-4 with Rust and WASM.
Implementing a Pokemon-style streaming dialog system on the web using a toy observable stream library.
Architecture of Flashlight, a browser roguelike with vanilla JS, Rust/WASM, recursive shadowcasting, and BFS pathfinding.
NextJS 15 made sync APIs async to force component coloring for SSR boundaries. Here's why.
Rebuilding Styles photo-editing feature from iOS 26 for the web.
Writing a minimal renderer for a photo editor using TypeScript and WebGPU.
Reverse engineering Apple's 2D style edit slider for the web, with some React and a whole bunch of math.
An algorithm for rounding convex corners and making grids look posh AF.
Creating motion streaks in a Bevy game using a ring buffer.
Streaming responses from a local Llama model.
DIY streaming for OpenAI's chat API using ReadableStreams, event parsing, and a custom React hook.
Building the calendar stacking UI in Rust with Dioxus, my favorite UI library for cross platform development.
Using Petgraph's directed graph to model overlapping calendar events instead of self-referential types in Rust.
How Apple, Google, and Outlook stack overlapping calendar events differently, and what sane stacking looks like.
A spritesheet animation state machine in Rust with page-based looping and variant transitions for 2D games.