projects

Projects

Public work with source available on GitHub. Featured projects first, then older work carried over from my previous GitHub handle.

  1. AirMouse Computer vision · Desktop input Python · MediaPipe · OpenCV · Qt Active
  2. Sightline Computer vision · Stream automation Python · Tesseract OCR · pygame · OBS Archived
  3. HLS Streaming Server Media infrastructure · Backend TypeScript · Express · PostgreSQL · FFmpeg Archived
  4. Simple HLS Streamer earlier work Media tooling · Desktop utility JavaScript · Node.js · FFmpeg Archived
  5. Ollama STT/TTS earlier work Voice interface · Local LLMs Python · SpeechRecognition · pyttsx3 Archived

Featured projects

Archived Computer vision · Stream automation

Sightline

Windows desktop app and runtime for real-time stream automation. Detects visual and OCR-based events in live frames and runs follow-up actions: OBS scene and source changes, sounds, program launches, chapter markers, and autoclip workflows.

Problem: reacting to on-screen events during a live stream usually means doing it by hand. Sightline uses the rendered frame as the signal source, so events are detected from what is visible on screen rather than from an application API.

  • Layered architecture. A reusable perception core (region geometry, template detection, OCR extraction, profile schema) under a runtime of capture providers, event gating, action workflows, and output sinks.
  • Authoring tools. A pygame desktop editor for building detection profiles, previewing capture regions and OCR results before they go live, and chaining triggers into action workflows.
  • Distribution. Compiled with Nuitka and packaged with an Inno Setup installer. Originally released as free and premium Windows builds; now archived with the source public.
  • Python
  • Tesseract OCR
  • Pillow
  • NumPy
  • pygame
  • OBS WebSocket
  • Nuitka
  • Inno Setup
  • Windows
Sightline detecting an on-screen gameplay event with detection regions overlaid
Sightline region preview showing the crop, processed image, and detection confidence Sightline action workflow editor
Live detection · region preview · action workflow editor
Archived Media infrastructure · Backend

HLS Streaming Server

Self-hosted HLS/IPTV server that turns a local media library into scheduled, always-on channels, with M3U playlists and XMLTV program guides for clients such as Jellyfin.

Problem: a channel has to look continuous to viewers and agree with its published guide, while only encoding when someone is actually watching. Most of the work is deriving one consistent timeline for the stream, the guide, and restarts.

  • One timeline. Position is derived from a single start timestamp per channel, so the stream and the guide compute the same answer.
  • One encoder per channel. A looping FFmpeg process over a concat playlist replaced a process per file.
  • Scheduling. Blocks with priorities, midnight wraparound, date-seeded shuffle, and series progression across days.
  • Recovery and safety. Crashed encoders restart, state is restored on boot, and paths are validated before they reach FFmpeg.
  • TypeScript
  • Node.js
  • Express
  • PostgreSQL
  • FFmpeg
  • Docker
  • Jest

forked from n1ceh4t/hls-streaming-server

Admin program guide showing seven channels on a timeline with the current programs highlighted
Edit Schedule Block dialog with days, time range, bucket, playback mode, and priority Playlists view listing a channel's schedule blocks
Program guide · schedule block editor · channel playlist

Earlier work

Originally published under my previous GitHub handle, n1ceh4t. These repositories are forks on SessionGoblin; GitHub's “forked from” line shows where each one started.

Archived Media tooling

Simple HLS Streamer

Lightweight HLS server that streams a list of video files as one continuous stream using FFmpeg's concat demuxer, controlled through a small REST API.

  • Start, stop, and list concurrent streams; generate concat playlists from file lists.
  • Packaged with pkg into standalone executables that bundle FFmpeg.
  • JavaScript
  • Node.js
  • FFmpeg
  • HLS

forked from n1ceh4t/simple-hls-streamer

Archived Voice interface · Local LLMs

Ollama STT/TTS

Voice front end for locally hosted Ollama models: speech recognition with a wake word and stop phrase, requests to the local Ollama API, and spoken responses via text-to-speech.

  • Small prototype for hands-free interaction with a local model, including simple voice commands.
  • Python
  • SpeechRecognition
  • pyttsx3
  • Ollama API

forked from n1ceh4t/Ollama-STT-TTS

Some of my work is internal: support automation, ticket intake and routing, workflow orchestration, and operational tooling built for specific environments. That work lives in private repositories and isn't published here.