Projects
Focused on network engineering, autonomous systems, and signal processing.
Radio Systems
Radio Streaming Server
Cross-platform server (targeting Raspberry Pi) that manages multiple SDR devices (RTL-SDR, AirSpy HF+) and streams raw IQ samples over the network using the `rtl_tcp` protocol. A single binary replaces multiple C-based streaming tools, adding a TUI for live device management, TOML configuration, and safe concurrency across all connected radios. Existing C implementations (`rtl_tcp`, `hfp_tcp`) are single-threaded and require separate processes per device.
Signal Reflection - KrakenSDR Multi-Beam System
Distributed multi-beam signal reflection analysis system built on KrakenSDR hardware. A Raspberry Pi handles data acquisition and streams IQ data over UDP; a Mac or Linux workstation runs compute-intensive DSP. All four surveillance channels process in parallel with independent Range-Doppler visualization, per-beam configuration, and real-time performance monitoring.
Sound Array
Audio processing system using Raspberry Pi and microphone arrays for spatial sound analysis. Captures multi-channel audio from USB/HAT arrays (ReSpeaker, Matrix), computes Time of Arrival (ToA) for sound localization, and applies beamforming for directional isolation. Classifies sources — vehicles (engine sounds), aircraft, wildlife (birds) — and streams processed audio or metadata to a remote desktop for analysis.
Spectrum Analysis
Automated signal census system that transforms raw radio spectrum data into classified, searchable signal inventories. Combines SDR acquisition, ML classification, and vector search to detect, identify, and catalog signals across monitored bands.
Wi-Fi Signal Reflection (KrakenSDR)
Through-wall human detection and localization using existing Wi-Fi [signals](../signals) as illumination sources. Built on the KrakenSDR five-channel coherent receiver, processing Heimdall DAQ IQ streams to detect movement through obstacles in indoor environments. Bridges theoretical signal reflection research with a portable, real-time hardware implementation.
Health & Biometrics
HealthyPi Ecosystem
Modular health monitoring ecosystem that translates raw biometric data from HealthyPi hardware (Pi HAT and wearable) into structured metrics for agent-driven analysis. Swift collectors on Apple devices capture HealthKit data, publish to a NATS broker, and Python agents in containers run analysis pipelines over the resulting stream.
Astrophotography
Aurora Advisor
Decision tool for Australian aurora observers that answers "should I drive 60 minutes to a dark site tonight?" Combines real-time solar wind data (NOAA SWPC), substorm trigger detection (Bz drops + hemispheric power jumps), and local weather forecasts (ACCESS-G model via Open-Meteo) into a single Go/No-Go score that accounts for both space weather potential and terrestrial conditions (cloud cover, moon phase, travel time).
AuroraPhoto
Automated astrophotography system for capturing aurora and night sky imagery. Raspberry Pi nodes connect via USB to Sony a7R V / a7 IV cameras, controlled by an iPhone companion app over Wi-Fi. The system provides automated focus using Half-Flux Radius (HFR) star sharpness monitoring, exposure sequencing optimized for aurora bursts, and multi-node coordination from a single mobile interface.
EclipsePhoto
Autonomous solar eclipse photography controller for Raspberry Pi. Coordinates a camera (via gphoto2) and equatorial mount (ZWO AM5 / Benro Polaris via INDI) to capture a complete eclipse sequence from first contact (C1) to fourth contact (C4) without manual intervention. The system handles solar guiding, exposure ramping, and error recovery so the photographer can watch the eclipse while the hardware secures the data.
EclipseStack: Expertise-Led Solar Alignment
Alignment tool for solar eclipse HDR composites. Takes hundreds of RAW frames captured during totality and produces sub-pixel-aligned output ready for HDR stacking in PixInsight. Addresses tracker drift by combining solar disk detection (computer vision) with temporal drift modeling from EXIF timestamps — the constant drift rate fills alignment gaps between confident frames.
<div class=”project-card” data-search=”openastro node headless, autonomous astrophotography controller for low-power linux devices (raspberry pi, jetson). manages camera and mount hardware, executes imaging sequences, and ensures rig safety through a “goodnight” protocol for unattended overnight sessions. uses openastro core for coordinate math, imaging intelligence, and device drivers. rust typescript open-astro-node”>
OpenAstro Node
Headless, autonomous astrophotography controller for low-power Linux devices (Raspberry Pi, Jetson). Manages camera and mount hardware, executes imaging sequences, and ensures rig safety through a "Goodnight" protocol for unattended overnight sessions. Uses OpenAstro Core for coordinate math, imaging intelligence, and device drivers.
</div>
Satellites
Terminal-based satellite tracker that displays real-time positions on a world map, predicts passes over the user's location, and shows transmission frequencies. Built with Rust and ratatui, using the SGP4 orbital propagation algorithm to compute positions from Two-Line Element (TLE) data. A single binary with no GUI dependencies — aimed at amateur radio operators and space enthusiasts.
</div>
Photography
ASIAIR Import Tool
Python script that automates post-imaging file organization for astrophotography. Scans ASIAIR backup locations (Udisk/EMMC across Autorun, Preview, Plan, and Live folders), reads FITS headers to extract metadata, and organizes hundreds of frames by target and observation night into a directory structure ready for PixInsight's Weighted Batch Preprocessing (WBPP) workflow.
Photo Tour
Interactive photography assistant for field use on iOS and iPadOS. Provides live camera preview, manual motor control for landscape rigs, and a plugin architecture for composition overlays, exposure ramping, and intelligent triggering. Built with SwiftUI and designed around a real-time control loop — see what the camera sees and act on it fast enough to improve the shot.
Autonomous Systems
Cycle Agent
Native SwiftUI training application for iPad and Apple TV that bridges a Wahoo KICKR Core smart trainer with AI-driven workout logic. The app communicates with the trainer over Bluetooth (FTMS protocol) for real-time resistance control and telemetry, while a NATS message bridge connects to an external agent for dynamic workout decisions. A SceneKit-rendered infinite terrain visualization runs at 60fps on Apple TV, with heart rate relay from Apple Watch completing the sensor loop.
Data & Utilities
DataRaster (data-raster)
A Rust-native server-side rasterization library and toolset for rendering datasets of millions to billions of points into density-aware raster images and map tiles. Inspired by Datashader's pioneering concepts but rebuilt from scratch on a modern Polars/Arrow/Rayon stack, eliminating JIT warmup latency, the Numba/Dask dependency chain, and Python-only deployment constraints. Shipped as v1.0: a Rust library crate, CLI tool, HTTP tile server, and Python package.
NAS Cleanup & Intelligence
Rust CLI for managing large-scale Synology NAS file systems. Performs duplicate detection (bit-for-bit and fuzzy), astrophotography file optimization (ASIair workflow cleanup), conventional RAW/sidecar management, and intelligent organization. Designed for Docker or native execution on DSM to minimize network latency during scanning.
OmniFocus DB CLI (omnifocus-db)
Python CLI that reads directly from the OmniFocus 4 SQLite database on macOS, bypassing AppleScript and Omni Automation layers. Provides near-instant retrieval of projects, inbox items, and tasks in structured, token-efficient formats (JSON/text) for agent consumption. Read-only access by default to prevent database corruption while OmniFocus is active.
Tileserver Polars (Rust Optimized)
A dynamic vector tile server for massive geospatial datasets. It serves Mapbox Vector Tiles (MVT) from millions of points with sub-second latency, enabling interactive visualisation in Kepler.gl and MapLibre without pre-rendering a static tile set. Python (FastAPI) handles the HTTP layer; Rust (via PyO3) does coordinate projection and Protobuf encoding; Polars holds the data and runs the spatial filters.
Weather (BOM ACCESS Pipeline)
Data engineering pipeline that fetches, processes, and serves weather model data from the Australian Bureau of Meteorology. Targets ACCESS (Australian Community Climate and Earth-System Simulator) model outputs, bypassing BOM's FTP delivery and binary formats (GRIB2/NetCDF) to provide a queryable interface for localized weather forecasts. Initial geographic focus on South Australia.
matrix-profile-rs
The matrix profile is a single transform that exposes a time series' repeated patterns and its anomalies. It annotates every subsequence with the distance to its nearest match elsewhere in the series: low values mark **motifs** (a shape that recurs), high values mark **discords** (a shape unlike any other). It needs no training, no labelled data, and no domain-specific parameters.
Wellness & Sound
Overtone
Generative psytrance synthesis engine with real-time TUI controls. Creates complete tracks driven by a multi-level energy model (macro, meso, micro), with live playback, step editing, and WAV export. Procedural synthesis generates kick, bass, hihat, and clap patterns; an effects chain (sidechain compression, delay, reverb, HPF, limiter) and humanization (velocity jitter, micro-timing) produce output that sounds like a produced track rather than a sequencer demo.
Wave (StillState & FlowState)
Ambient audio ecosystem spanning Apple Watch and Mac, designed for sleep and deep work. **StillState** (watchOS) is an adaptive sleep sounds app that generates procedural noise (white, brown, blended) with binaural beats, personalized frequency calibration, and heartbeat synchronization. Microphone monitoring detects environmental noise for adaptive masking.
Experimental
Asana: Real-Time Yoga Pose Analysis with Rust
A desktop and mobile application that uses a webcam or phone camera to provide real-time yoga pose estimation, alignment correction, biomechanical analysis, and intelligent sequence building. The system spans seven architectural layers: perception, intelligence, knowledge, feedback, longitudinal analytics, platform ecosystem, and creative frontiers. Targets individual practitioners, instructors, and students.
High-Fidelity Photometric Synthesis Suite
A PhD-led, professional-grade photometric synthesis engine for timelapse photography. It transforms RAW sequences into cinematic video through a rigorous 16-bit linear pipeline, utilizing PCHIP temporal ramping, wide-gamut (Rec.2020) color management, and stochastic dithering. It goes beyond simple "deflickering" to provide deep photometric insights, radial vignette normalization, and temporal "hallucination" for corrupt frame continuity.
MusicBrain
MusicBrain is a desktop music-analysis workbench for studying recorded tracks and, in alpha form, live input. The implemented product already goes beyond the original offline-only brief: it includes offline analysis, report and DNA export, session persistence, track comparison, an optional Demucs CLI stem workflow, and a live dashboard path. This file is now the authoritative current-scope document.
Rust TUI GTD Todo (OmniFocus-inspired)
Keyboard-driven Rust TUI task manager built around a GTD workflow. Stores tasks in a local SQLite database with support for projects, hierarchical tags, and availability-based next-action computation. Optimized for rapid inbox processing — single-key field mode for triage, project/tag assignment, and batch operations with sub-second interactions at 10,000+ actions.
Yogaclass: Teaching Practice Companion
A desktop tool for yoga teachers to practise teaching their classes and get feedback on delivery. The teacher loads a class sequence, sees 3D animated student figures in the poses, speaks through the class out loud, and the app tracks their delivery via voice recognition — then provides feedback on timing, pacing, cue quality, sequence adherence, and overall flow. It also provides pre-class analysis: intensity arcs, muscle coverage, safety checks, and compositional insights.
netsequence
netsequence is being built into a production-ready change orchestration product for service-provider networks. It sits between structural change generation and operational deployment, turning topology mutations into risk-assessed, dependency-aware, verifiable execution plans with rollback. The product direction is external, not just internal tooling: the goal is to deliver something carrier engineering teams can trust during real maintenance work.
</div>