Project Gallery

Paul Richeson

Systems, silicon, signals and software — and the things I build with them.

The work.

Operating systems, instruments and games. Each has a page with the details.

Operating system

Copal Linux

One Alpine installer. Many targets.

  • Eighteen stages. One installer for a Raspberry Pi, a UEFI PC and UTM.
  • Diskless Alpine, taught to keep its state. Stock Alpine, Alpine’s own tools; not a fork.
  • A tiling desktop. Hyprland on Wayland, themed with Linux Antiquity.
  • A fleet, not a machine. Playbooks, fleet state and the Orrery console.

An SD card for a Raspberry Pi, a UEFI disk for a PC, or a virtual machine under UTM on an Apple Silicon Mac — the same eighteen stages, whichever medium you point them at.

Specs
Language
POSIX shell, QML, Python
Platform
Alpine Linux — Raspberry Pi, x86-64 UEFI, UTM on Apple Silicon
License
MIT
The Copal desktop: the Antiquity wallpaper, a painted clock and the bar along the top

Task manager

copal-tm

An instrument panel and a process browser, in one terminal window.

  • Zero dependencies. One Rust crate.
  • The whole machine on one screen. System cluster, CPU history, memory band, process tree.
  • It reads the kernel directly, so it runs the same on a Raspberry Pi as on a workstation.
  • cargo install copal-tm

The task manager for Copal Linux's full install. One Rust crate, zero dependencies.

Specs
Language
Rust
Platform
Linux terminal
Version
0.1.3
License
MIT
copal-tm running: the system cluster, CPU history, the memory band and the process tree

Radiation monitor

RadBeeper

See what your Geiger counter is counting.

  • Plug it in. RadBeeper finds the counter.
  • Live gauges, a spectrogram, a drum recorder.
  • It reads the counter’s own log, what it recorded while nobody was watching.
  • A monitor page that updates itself.

Keep a record of it, and put it on a web page. For the GQ GMC-320 Plus, on Linux.

Specs
Language
Rust, Python
Hardware
GQ GMC-320 Plus Geiger counter
Platform
Linux
Version
0.5.0
License
MIT
radbeeper-gui with two dial gauges and a green spectrogram

Browser game

Crabminer

It's a crab mining game.

  • Eight crab trades. Scouts, drills, haulers, crushers, smelters and a riser.
  • The sea has a mind of its own. Tides, storms, lava surges, an octopus after your ore.
  • Six ranks, from Sand Scraper to Crab Tycoon.
  • No libraries. No build step. One static page.

Run a crew of robot crabs on the sea floor: scout for metal, drill it, smelt it in lava, and sell it up to the surface for crab profit. The sea behind this page comes from it.

Specs
Language
JavaScript, HTML, CSS
Platform
Any modern browser
License
MIT
Crabminer: robot crabs on layered sand dunes, a collector, and the crew panel

Real-time raytracer

ASCITTY

A raytraced city, made of typeable characters.

  • No models. No textures. No shaders. 128 glyphs from one function.
  • Rays every frame, walking the grid front to back.
  • A colour terminal, or a Commodore Plus/4. The same city.
  • A taxi game, set in the city.

Rendered in real time on a colour terminal and on a Commodore Plus/4 — and a taxi game inside it.

Specs
Language
Rust
Platform
Colour terminals; Commodore Plus/4
Version
0.9.0
License
MIT
A night city skyline drawn entirely in coloured text characters

Adventure RPG

Codex of Conquest

An entire RPG in one HTML file.

  • One HTML file. No server, no build step, no install.
  • Eight acts. Hundreds of monsters.
  • Point-buy stats, inventory, fishing, death saves.
  • A sword, a coin purse, and forty-nine days.

Combat engine, world map, NPC dialogue, quests, saves, hundreds of monsters and eight acts of story. No server, no build step, no install.

Specs
Language
JavaScript, HTML
Platform
Any modern browser
License
MIT
A battle screen in Codex of Conquest with dice and a combat log

Space trading, since 1997

Yodacon

The ship got built.

  • ConEx, 1997. Recovered from Mac resource forks.
  • Landing and takeoff driven by reentry-heating physics.
  • Not pirate, not warrior. Courier.

Team Yodacon revives ConEx, the 1997 Escape Velocity plugin, and expands it into a commodity-trading game with a landing sequence driven by real reentry-heating physics.

Specs
Language
Go, Python
Platform
macOS, Linux, Windows
License
MIT
A landing debrief panel over a starfield, with the ship descending to a city

And more.

Consoles, file formats, themes, the long line of a 1997 space game, and the bench: a PDP-11, a Plus/4, and what gets played on a 6502.

Websites.

The projects with a home of their own on the web, and the smaller sites: games, toys and experiments.

And the smaller sites

About.

Richeson: Systems, Silicon, Signals — October 2026

Abstract—Paul Richeson is an electrical engineer whose working life began at a refinery and a power company and has since run through the data center: the deployment and lifecycle management of software applications, from first install to retirement. From there the work reaches outward into software architecture, CPU architecture and FPGA design, and down to the physics underneath — high-frequency radio communication, the propagation of electromagnetic signals, and digital signal processing. This site collects what he builds on his own time: an operating system and its tools, instruments that read the physical world, and games, both new and very old.

I. Introduction

Most of what is here started as a tool he needed. Copal began as a way to make a diskless Raspberry Pi keep its state; copal-tm, Orrery and Static Stream were deployed to a micro cluster of Raspberry Pis running Copal, and grew out of running it. RadBeeper and birdshot point instruments at the world — a Geiger counter and a camera sensor — and treat what they return as signals to be measured, logged and shown honestly.

The games are the other half. Some are new: Crabminer, a city builder on the sea floor whose ocean swims behind this page, and Codex of Conquest, an entire RPG in one HTML file. Some are very old: Yodacon and Gonex carry ConEx, an Escape Velocity plugin first published in 1997, into a third generation, and ASCITTY and UR FINKEL run on the 8-bit CPU of a Commodore Plus/4.

Every project page lists what the project is written in, where it runs, and where to get it. Nearly all of it is open source under the MIT licence.

II. Disciplines

TABLE I Areas of Work, and Where They Show Here
AreaWhat it coversOn this site
Data centersOperations of production computing; keeping a fleet observable and recoverableCopal fleet tooling, Orrery, copal-tm
Software lifecycleDeployment, packaging, release and retirement of applicationsThe Copal installer; releases on crates.io
Software architectureLayered, source-pluggable systems with one read modelOrrery, Static Stream, TrendCatcher
CPU architectureInstruction sets and machines, down to 8-bitASCITTY and UR FINKEL on the Commodore Plus/4
FPGA designDigital logic in programmable hardware—
RF and propagationHigh-frequency radio communication; how electromagnetic signals travel—
Signal processingMeasurement, spectra, and error-correcting codesRadBeeper's spectrogram; Static Stream's Reed–Solomon codes

III. Elsewhere

Click or tap the open water to drop a nodule; the crabs stack them beside the collector, which lifts each full pile of 15 to the ship. Nodules collected during this visit: 0.

The sea is adapted from Crabminer.