FunnyHat.Club

Made for fun, and because I needed it.

I make things because they're fun to make, or because a problem kept annoying me until I built the tool for it. Some are finished and you can use them today. Others aren't finished yet. If you have a problem that needs solving, I'd like to hear about it.

Use it now

These work today. Use them, and tell me if something breaks.

Path Profile

Live web app
  1. Upload a GeoTIFF DEM
  2. Click A, then B
  3. Read the profile, check the Fresnel clearance
  4. Export CSV

Upload a GeoTIFF elevation model, draw a path across it and get the elevation profile along that path. It draws the line of sight and the Fresnel zones over the profile, which is what you need to know before you put a radio link between two hills.

The web app takes rasters up to 25 GiB and uploads them straight from your browser.

The hosted version records what you do, including the files you upload, and tells you so when you open it. I want to see how people use it.

Path Profile with a surface model coloured by height and a path drawn from A to B across some rooftops. Below it, the elevation profile shows the line of sight and the first Fresnel zone clearing the roofs.

Apple Strudel

Live web app Apple Strudel with a session list, an empty chat pane asking you to connect a model, and a Strudel code editor.

Make music with an AI agent in your browser. You and the agent edit the same Strudel live-coding program. The agent sends its changes as patches against a revision, so it can't overwrite an edit you just made.

Bring an OpenAI-compatible endpoint that accepts requests from a browser, such as OpenRouter. There is no account and no analytics, and your keys stay in your browser.

Halo Soundscape Evolved

Game mod

Replaces the soundtrack of Halo: Campaign Evolved with Old School RuneScape music, inside Halo's own Wwise music system. Halo still decides when each cue starts, fades and stops. There is no companion player and no background process, and it installs and removes through Vortex.

The hard part was that Halo refuses to play streamed audio it hasn't registered. New tracks played for a moment and then went silent, so the mod reuses the IDs Halo already knows. It is an unofficial fan mod, not affiliated with Microsoft or Jagex.

Smaller things I've made, and code I've contributed to other projects, are on my GitHub profile.

In the works

Most of these aren't released yet. Some will be, and some might not.

A network switch with USB-C ports

Designed, not built yet

An open-hardware managed switch whose downstream ports are USB-C. It is designed so a laptop plugged into it gets a 2.5G Ethernet connection over the USB-C cable, with no adapter in between.

Render of the switch in a dark grey case, seen from the front, with four USB-C ports and a row of status lights on the lid.

It has four USB-C ports, a 10G SFP+ and a 2.5G RJ45, and it can run from PoE or a USB-C power supply. The firmware builds on the open RTLPlayground project.

The case is made to be 3D printed in two parts. An optional plate fixes it to the back of a monitor, a wall or the underside of a desk.

The six-layer board is laid out and passes its design rule checks. No boards exist yet, so nothing here is proven on hardware. That includes which operating systems will need a driver.

The pictures are renders, not photos. The case hasn't been printed yet either.

Render of the case from above, with vent slots and numbered status lights for each port.
From above
Render of the back of the case, with the SFP+ cage, a reset pinhole, the USB-C power input and the RJ45 port.
The rear ports
3D render of the USB-C switch circuit board, with four USB-C ports along the front edge.
The board inside
A prison camp hut at night in Dig Out, drawn in a low-poly style.
A tunnel in Dig Out, shored up with timber frames and lit by a lamp on a shelf.
Playable prototype

Dig Out

A low-poly prison camp escape game. Follow the camp routine, stay on the right side of the guards and dig a tunnel that has to dodge collapses, pipes, water and bad air. Play solo or drop-in co-op, on Windows and Linux. The camp is generated fresh each run.

A hobby project. Whether it goes on Steam depends on how fun it turns out.

The lucid-at-home diagram editor showing a flowchart with one shape selected.
Working, for my own use

lucid-at-home

A self-hosted draw.io that looks and works like Lucidchart's classic editor. It is the stock draw.io Docker image with an overlay on top, not a fork. It reads and writes ordinary .drawio files, and draw.io's menus are still there.

Not affiliated with Lucid or draw.io.

Beta on Android

Serial Portal

An Android app for the serial console on network gear such as Cisco and MikroTik. Plug the phone into the gear with a USB serial cable and use the console on the phone. Or leave the phone at the rack and carry on from your laptop, somewhere more comfortable to work.

Pairing is a two-word room name and a QR code, with no email sign-up for the laptop. The link between phone and laptop is end-to-end encrypted, and the room disappears when you close the app.

Tested against real hardware. The Play Store release is still to do.

Benchmarking AI models at home

Which open model is worth running at home, and what does it cost in electricity?

Published benchmarks can't tell me which model suits the hardware I have, so I run open-weight models on my own and benchmark them as coding agents. For each model I want to know which quantisation and reasoning effort level is worth running, how long a task takes and what it costs.

At home the cost is power, so every result records the energy the GPU used. That turns into dollars per task at my electricity tariff, which I can put beside the API price of a frontier model.

Two sites publish the results. Both borrow their layout from sites I like, and say so in the footer.

Next I plan to put together a rig with four GPUs and 75 GB of VRAM between them, to try running something larger that is more competitive at coding tasks.

8 of 113 tasks

The first home result on the board. Muse Glimmer 30B passed 8 of 113 DeepSWE tasks, for about 3.4 Australian cents of GPU electricity per task. That makes a partial home index of 7.1, from 15% of the index weight. The leading frontier models score in the 50s and 60s on the full index.

Slop@Home chart of cost against intelligence, with frontier models at the top and one home model near the bottom.

Slop@Home

Artificial Analysis's model benchmarks with my home GPU runs on the same charts. Cost, time and tokens against intelligence, in AUD or USD. The layout comes from Slopalytics.

Which@Home gallery of landing pages designed by open models, each card showing its electricity cost.

Which@Home

How open models handle UI design, with and without agent skills. Each card shows one model's response to the same landing page prompt and the cost of the GPU electricity. The layout comes from whichai.dev.

What runs underneath

A hub holds the job queue, the results and the dashboards. Runners pull jobs from the hub and call whatever OpenAI-compatible endpoint they are pointed at, so the hub never needs to reach into a runner. Suites include Terminal-Bench, DeepSWE, SnitchBench, Skatebench, GameASG and a design bench.

I also score runs on a Home Intelligence Index. It maps six suites onto the weights Artificial Analysis uses for its Intelligence Index, so a home model lands on the same 0 to 100 axis as the frontier ones. It is an approximation, and the write-up lists every place it differs.

The bench itself isn't public yet.

Crawl Control

A mod for Powerhoof's Crawl that hands all four CPU players to an outside program, plus a Twitch sidecar so chat, channel points and predictions can steer the game. It has run live on Twitch.

Towing game

An arcade driving game where you tow a caravan and swing it into traffic. There is a playable prototype. It is parked for now.

Horizontal alignment for OpenDroneMap

An experimental OpenDroneMap option that aligns a survey to horizontal control points. It transforms the main raster, point cloud and textured model outputs and leaves elevations alone. Not upstream yet.

Bring me a problem

Several of these projects started as a problem I ran into around telecommunications, networks, GIS or drone mapping. If you have one of your own, get in touch. I take on contract work, and I build the software or hardware the job needs.

I'm in Australia.

You need to know if a radio link will clear the terrain.

I'll travel to assess a link. That covers mapping the path, working out line of sight and Fresnel clearance, and writing it up in a report. I built Path Profile for the analysis.

The tool for the job doesn't exist.

I've built a web app that handles multi-gigabyte rasters, and I've designed a six-layer circuit board. Serial Portal exists because standing at a rack with a laptop is miserable: you plug a phone into the gear and go and work somewhere better.

A surface model of a property, coloured from blue for low ground to orange for rooftops.

You need a site mapped.

I fly it with a drone and build an orthophoto and a digital surface model by photogrammetry. Both are locally accurate, so you can measure distances and heights within the model.

I don't have ground control point equipment at the moment, so I line the result up with your existing maps instead.

The picture is a surface model from a sample job, coloured by height.

Send me a message.

Tell me what the problem is and how to reach you. It comes straight to my phone.

If you'd rather write an email, hello@funnyhat.club reaches me too.

An email address, a phone number or a Telegram username.

Cloudflare checks that you're not a bot when you send.