// software developer · 35+ years

Raymond Hulha

I build WebGL engines, run AI models entirely in the browser, and craft games and tools.

German/American developer. Started on Basic on a C64, moved through Turbo Pascal and C, and have loved Java for 27 years. Not perfect, but damn close. :-)

Instagib multiplayer WebGL shooter instagib.me

01Web Apps & Games

Live projects you can open and play with right now.

Kokoro-JS TTS Streaming

Streaming Kokoro JS

Unlimited text-to-speech in the browser using Kokoro-JS. 100% local, 100% open source.

local AI Code
Speech to Speech web app

Speech2Speech

Converts speech to speech, 100% private, using Moonshine and Kokoro right in the browser.

local AI Demo Code
EchoMate speech to speech with VAD

Speech2Speech VAD

Private speech-to-speech with voice activity detection, so it listens and replies hands-free.

local AI Demo Code
Solitairle - solvable Yukon Solitaire

Solitairle

Play Yukon Solitaire with the guarantee that every game dealt is actually solvable.

game Play
Instagib multiplayer WebGL shooter

Instagib

Multiplayer instagib on Three.js, played on Q3DM17 – The Longest Yard from Quake 3 Arena.

WebGL Play
Get10 Pro casual number game

Get10 Pro

A fun little casual number-merging game. Easy to start, hard to put down.

game Play
GLB Editor for 3D models

GLB Editor

Edit 3D GLTF and GLB files directly in the web, with an object details panel.

3D Demo Code

02Engines & Graphics

Rendering, WebGL and 3D geometry work.

ChronosGL WebGL engine

ChronosGL

My own WebGL2 engine written in Dart and TypeScript. Minimal, idiomatic, close to bare metal.

WebGL Demos Code
Space Pirates voxel space shooter

Space Pirates

Space shooter with voxel building, written in Dart on top of the ChronosGL engine.

Dart Demo Code
Quadric edge collapse decimation

Edge Decimation

Quadric edge-collapse decimation to simplify 3D models, implemented in Java.

Java Code
GridGame TypeScript grid game library

GridGame

A TypeScript class that makes it easy to build grid-based games like Minesweeper and Sokoban.

TypeScript Demo Code
EasyLang programming language and IDE

EasyLang

My effort to build the “perfect” strongly typed language, with an IDE and auto-completion.

Java Site Code

03AI & Tools

Models, extensions and command-line utilities.

Train LLMs using LoRA

LoRA Training

Train Large Language Models using Huggingface, PEFT and LoRA, with a Lambda Labs setup script.

Python Code
Google Docs GPT add-on

Google Docs GPT

Complete your Google Docs using ChatGPT, right from a sidebar inside the editor.

AI Code

LLM Completions

Custom VS Code extension to fetch and inline data straight from a Large Language Model.

VS Code Code
AppStreamer stream apps to a browser

AppStreamer

Stream your apps or whole desktop to a browser using multipart x-mixed-replace frames.

Python Code
SaveTabs Chrome extension

SaveTabs

Save all the tabs in a Google Chrome window as a single JSON file.

Chrome Code
ZipMcKracken ZipCrypt brute force

ZipMcKracken

Educational brute-force attack on the weak PKWARE ZipCrypt encryption scheme.

Rust Code

Shib2Filr

Create users in MicroFocus Filr 2.0 when the user is already known to Shibboleth.

Java Code

04Gists

Small, self-contained Java snippets.