Projects
Every project is a living document, updated as it happens, with videos, changelog and linked notes.
The E-2C Hawkeye operator console for DCS World, rebuilt from the only public screenshots of a display of its kind. Rectangular PPI, grey land on black sea, fan sweep, yellow hooks and a CRO readout. The station works on its own sensor: range, horizon and terrain really mask, a return becomes a track after two antenna turns, and the datalink arrives separately, as it does on board.
Tactical radar scope for GCI operators in DCS World. Two operating modes: Cold War with amber-phosphor CRT aesthetics and NATO Link-1 symbols, and Modern with data blocks, speed leaders and an interactive BRAA panel.
A panel for the joint terminal attack controller in DCS World, from the JP 3-09.3 formats: flight check-in with position and altitude from the feed, game plan, a keyhole that generates the IP, 9-line with magnetic heading, MGRS coordinates and target elevation from the terrain, threats within 15 miles, danger close, readback and kneeboard. With a flight stack and a quick guide that explains every field when it is needed.
Real-time map of DCS World sessions. Shows positions, routes and event feed of all units during the mission, updated every second via a Lua script.
Post-flight debriefing dashboard for DCS World. Upload a Tacview ACMI file and get per-pilot and per-side stats, a route map, a 3D view with four cameras and real terrain, an engagement log and the final ranking. It is also the application hosting the other six tools: Live View, GCI Scope, ACIS, ATC, JTAC and Briefing Builder.
An air traffic control panel for DCS World: tower strips, an approach scope, airport cards and charts. A hundred and twenty airports with frequencies, ILS, navaids and real runways, the active runway decided by the wind, the circuit drawn as a racetrack and a chart you can export as a kneeboard. Carrier control included, with PLAT and the deck seen from above.
Advanced scheduler for Home Assistant. Manages thermostats, lights, blinds, irrigation, switches, fans, water heaters, mowers and vacuums through daily time slots with conditional weather rules. Distributed via HACS.
Home Assistant integration bridging a Meshtastic mesh radio and the home: authorized nodes send text commands that run actions and get a reply, and Home Assistant sends broadcast notifications onto the mesh from automations. All configured from the card, no YAML. Distributed via HACS.
A Home Assistant integration that maps where the home's data comes from and where it goes. It cross-references what Home Assistant declares about its own devices with what the DNS resolver actually observed them doing, and keeps the two apart everywhere except one place. It also answers the question nobody asks: what stops working when the uplink drops, and which vendor takes the largest share of the house with it.
Modular template for civil missions in DCS World: firefighting, mountain and sea search-and-rescue, MedEvac, battlefield CASEVAC, police (chases and SWAT) and cargo transport. All in pure native Lua, no MIST, MOOSE or CTLD.
A compiler for JATF briefings in DCS World. Create the briefing, load the .miz, and the application fills in what the mission actually contains; correct it, complete it, and out come a single PDF for the package and a PNG kneeboard for every flight. Every field declares where it came from, and whatever the .miz owns gets validated rather than rewritten.
Adjustable dithering for photos, in two interfaces sharing one engine: a widget that runs in your browser (the photo is never uploaded anywhere) and a full-screen terminal application with boxed panels, themes and the preview drawn inside the terminal itself. Nineteen algorithms, twenty-six palettes, fifteen presets, five languages.
Five independent training scripts for DCS World: a range with bombing, dogfight, SEAD, carrier ops and air-to-air refuelling, a scramble intercept trainer, a text GCA, air-to-air arenas and a laser-designating JTAC. Native scripting engine, no MOOSE, MIST or CTLD.
Home Assistant integration for workout and body composition tracking, with a dedicated Lovelace card. Imports history from Apple Health, reads the scale via Withings and adds points, streaks, personal records and correlation analysis. Distributed via HACS.
Air-to-air missile lethality calculator for DCS World. Estimates kill probability based on range, aspect, altitude, manoeuvre and target size, with an SVG engagement-envelope visualisation.
Surface-to-air threat visualiser for DCS World. 40 systems included with threat ring, altitude envelope and Pk estimate based on target range and altitude.
Technical notes and practical guides on the ESP32-C6-EVB development board: specs, pinout, ESPHome configuration and Zigbee integration in Home Assistant.
Interactive calculator of a PC system's theoretical compute power. Enter CPU, GPU and NPU to get peak estimates in FP64, FP32 and INT8 — useful to compare builds and understand how much your machine really packs.
Home NAS built on a Raspberry Pi with OpenMediaVault. Network storage accessible from every device in the house, with Samba file sharing and centralised management.
Media server for streaming DVB-T2 terrestrial TV to every device in the house. Raspberry Pi + KODI + DLNA: the home TV accessible anywhere on the local network.
mmWave presence sensor with HLK-LD2410S and XIAO ESP32-C6, integrated into Home Assistant over Zigbee. Detects presence even of motionless people, with no false negatives.
Complete refactor of the main home dashboard. Goal: a unified system managing lights, climate, security and energy — all visible at a glance, without opening ten different apps.