Apps with a clear heading.
Log passages with crew, weather, position, GPX tracks, and photos. Replay voyages on interactive maps. CoreData synced bidirectionally to CloudKit, offline-capable. GPX files are parsed, speed-filtered, and path-simplified with Ramer–Douglas–Peucker before rendering on MapKit overlays and postcards to share.
Beauty in plain text. Multi-document plain-text editor with a strict no-extras policy: no syntax highlighting, no AI, no autosave. Intelligent paste and list reflow. Built with SwiftUI.
One-click sync to GitHub. Menu bar app that watches local folders and pushes changes to GitHub over Git. Written in Swift; Git operations shell out to the system git binary.
Celestial navigation practice tool. Take sun sights with a sextant at sea and compare against GPS ground truth to assess your observer accuracy. Sight reduction runs entirely in the browser: observed altitude corrections, spherical trig for calculated altitude and azimuth, and lines of position drawn on Leaflet maps.
Local-first research database with a browser UI: upload .md/.txt files, search full text and annotations, filter by boolean tag expressions, and annotate corpus text inline. Research functions provide KWIC, collocates, frequency charts, co-occurrence, and a document timeline. Exposes an MCP server and OpenAI-compatible REST API. In development.
2D nautical simulation: skipper a sailing yacht across the North Sea Traffic Separation Schemes at night. Navigate dense cargo traffic using only AIS vectors. Core mechanics include CPA detection, an entropy-based adaptive Director, COLREGs Rule 10 heading scoring, and a tidal current model backed by a pre-processed BSH atlas. In development.
A PWA for practicing sun sights with a sextant — sight reduction runs entirely client-side.