Projects

Focused on network engineering, autonomous systems, and signal processing.


Radio Systems

Radio Streaming Server

Last Active: 2026-02-22 Rust

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

Last Active: 2026-03-09 RustPython

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

Active

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

Last Active: 2026-03-10 RustPython
Spectrum Analysis diagram

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)

Active RustPython

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

Last Active: 2026-02-20 Python

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

<div class="project-card" data-search="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). typescript auroradata">

Aurora Advisor

Active TypeScript

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

Active

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

Active Python

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

Active RustTypeScript

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

Active RustTypeScript

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

Last Active: 2026-03-09 Rust

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

Last Active: 2026-02-11

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

Active

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

Last Active: 2026-03-16

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)

Last Active: 2026-03-22 RustPolars

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

Last Active: 2026-03-03 Rust

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)

Last Active: 2026-02-16 PythonTypeScript

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)

Active RustPythonPolars

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)

Last Active: 2026-02-14 PythonPolars

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

Last Active: 2026-04-30 RustPolars

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

Active Rust

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)

Last Active: 2026-02-21

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

Last Active: 2026-03-16 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.

<div class="project-card" data-search="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. rust timelapse">

High-Fidelity Photometric Synthesis Suite

Last Active: 2026-03-30 Rust

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

Last Active: 2026-04-10 Rust

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)

Last Active: 2026-02-25 Rust

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

Active RustPython

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

Last Active: 2026-04-12 Rust

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>