Vol. II · No. 156
Established 2025

smallweb

Friday, June 5, 2026
160 writers in the library
Tech · 1 shelves
Tech

James Randall.

Reflections on four decades of programming, AI's impact on craft, and building things from scratch.

Recent essays

30 of 36

Teaching a Computer to Play 4X: How the Annhexation AI Works

Building a believable computer opponent for a 4X strategy game is one of those problems that turns out to be bottomless. I’d use the cliche it looks simple from the outside… but I don’t think thats true, I thought this would be a tough nut from the outset. I’v…

Does the data show Trump sundowning? A look at his posting rhythm

Source code available online here A claim that has gained traction lately is that Donald Trump’s posting patterns suggest “sundowning” — the late-day cognitive decline associated with dementia. The argument goes that his late-night and small-hours posting, oft…

GitHub CoPilot and Real Scrutiny

Recently GitHub announced a change in pricing model for CoPilot which they’ve tried to wave away as not a price increase (because the list prices don’t move) but which really is as they are now charging for direct usage rather than per request. What’s interest…

Annhexation

You can find out more over at the projects website. I’m going to keep this brief as I’ll doubtless be expanding on this at length in the future but I wanted to take a moment to introduce a project I have that is a good way through development and that I hope p…

Training a Neural Network in 16-bit Fixed Point on a 1982 BBC Micro

The source code can be found on GitHub. In my previous post on neural networks we went through the basic concepts and simple mathematics involved in training and running a neural network. It’s so simple that it gave me an idea: could I run this on an 8-bit mic…

Building a Real-Time Path Tracer in WebGPU

Having built a raycaster for my Wolfenstein 3D recreation I wanted to take things to the next level and build a “simple” ray tracer. The result is a real-time path tracer written entirely in WebGPU compute shaders, running in a browser, rendering levels loaded…

Path Tracer

The source code is on GitHub. A real-time path tracer built entirely in WebGPU compute shaders — no RT cores, no ML denoisers, just maths and triangles. Woke up one morning and wanted to follow up the Wolfenstein 3D raycaster with a ray tracer… obviously Doom…

Jensen Huang Is Training His Own Replacement

The leather jacket has no clothes. Jensen Huang stands on stage at GTC, basking in the adulation of an audience that treats product launches like religious experiences while NVIDIA’s market cap hovers north of four trillion dollars. The narrative being pushed…

Neural Networks for Developers - XOR (Part 1)

The full source code for the neural network and the interactive demonstrations can be found on GitHub. Increasing numbers of us are turning to solutions based on neural networks to help us with a wide variety of tasks. From accelerating software development th…

AI Can't Recreate Thrust (But It Can Help You Understand It)

I asked Claude to recreate the classic 1986 game Thrust for me in the browser. It created slop but then things spiralled out of control. Thrust was one of my favourite games on the BBC Micro — written by Jeremy C. Smith and published in 1986, it’s a deceptivel…

Thrust

You can play the game online. Honestly this is one of those projects that I’m not quite sure where it came from. Thrust was one of my favourite games on the BBC Micro written by Jeremy Smith and published in 1986, it’s a deceptively deep game with amazing phys…

I Started Programming When I Was 7. I'm 50 Now, and the Thing I Loved Has Changed

I wrote my first line of code in 1983. I was seven years old, typing BASIC into a machine that had less processing power than the chip in your washing machine. I understood that machine completely. Every byte of RAM had a purpose I could trace. Every pixel on…

The real AI risk isn't job loss — it's epistemic

This morning I had a ChatGPT conversation that started about engagement metrics and ended up with a systematic destruction of my identity. It was a wild, disturbing, but ultimately revealing ride that joined a few dots for me. The engagement problem We’re all…

Vektrix

You can play the game online. While working on the 8-bit console I got the itch to create a twin stick shooter. There’s some Geometry Wars in this and some Jeff Minter with a dash of Pink Floyd. Best thing to do is just go play it rather than me describe it! B…

Vektrix: Building a psychedelic twinstick shooter with WebGPU in 2 days

You can play the game online. I was looking for a twin stick shooter and nothing quite scratched the itch — nothing in my Steam library anyway. I fired up Geometry Wars, enjoyed it, but it still wasn’t quite what I wanted. What it did give me was the spark to…

Teaching an LLM to Write Assembly: GBNF-Constrained Generation for a Custom 8-Bit CPU

The source code for this can be found on GitHub here. Over the past few weeks I’ve been building a fully-playable 8-bit virtual console from scratch — CPU, instruction set, assembler, sprite system, IDE, the lot. One of the more interesting side quests has bee…

8-bit Console

I’ve been itching to create some emulated 8-bit hardware for some time - not for an existing system but rather for my dream 8-bit system. However it always felt “too big” as I knew that I’d need tools like assemblers, graphics editors, and basically a whole lo…

About me

I started programming on a BBC Model B as a kid — mostly for fun, mostly because it felt like a little world I could reshape. That hobby quietly turned into a career around 1994, and I’ve been building systems, tools, and odd little worlds ever since. I began…

TS-Trek

The game can be played online and you can find the source code on GitHub. I have a long and storied (well, storied to me - anyone reading this drivel is probably thinking get over yourself) history with the classic mainframe game Star Trek. I first played it o…

8-bit Golf

You can download the app from the App Store. I have super fond memories of playing early golf games on the BBC and PC. My very favourite is a game called Holed Out!! on the BBC and on which I spent many hours playing with my mum. But I also enjoyed the PGA gam…

Graph Paper

You can download the app from the App Store. While I was creating 8-bit Golf I realised that the editor, which was quite satisfying to use, could quite easily be repurposed to allow a user to draw on graph paper. It really didn’t take long to rework into a sta…

VoxEd

You can download the app from the App Store or view the “official” VoxEd store linked page here. I confess I’m rather proud of this one. I’ve always enjoyed pixel and voxel art and I have several ideas for projects that would make use of voxels. I’d been dabbl…

SprEd: New selection tools

In what is either a massive display of ego and hubris or something to be modestly proud about (you decide) I’m using my own Mac and iPad sprite editor SprEd to work on the textures and icons for my city builder. However I realised I’d not included any tools to…

Empire of Asphalt: Selecting ranges and creating zones

Things have been going quite smoothly so far and over the last couple of evenings I’ve added the ability to drag select ranges and create zones (though haven’t accounted for flats yet). This all happens in the landscape shader which is passed the corners of th…

Empire of Asphalt: WebGL GUI with JSX

As I mentioned in my last entry, and as anyone who has played a city builder will know, these kinds of games have a lot of UI in them. That being the case I need a way of easily putting all this together. A primitive GUI library basically. I do most of my web…

Empire of Asphalt: Cameras and Picking

Actually maanged to get a decent amount of time in on personal projects this week. Mostly in the morning before work as my best buddy is injured and on 7 days of vet prescribed rest - so no walks. I’m missing the walks. Its tough on us both. But we’e done lots…

Elite: ECM and Energy Bomb

More progress on the bite sized remainders of Elite - ECM and Energy Bomb now implemented. Got quite a cool effect for the energy bomb though I can’t take the credit for it as I found it on ShaderToy. Thanks to the original author. The latest build of the game…

Elite: Thargoids

Another bitty week as I’ve been coding for work and when I do so I find, inevitably, the amount of time I spend coding out of hours decreases. However got quite a few things done: Witchspace Thargoids Thargons Altitude and planet crashing Space stations turn h…

Elite: Missiles

It was a bit of a stop / start week as I have a lot of actual work on at the moment. However I did find time to get missiles into the game. I’m still not happy with how ships (including missiles) move in on other ships and the player. I’ve not quite got the ro…

Elite: Lasers and loadouts

Continuing to plug through my list of tasks to complete the game. Over the last couple of evenings I’ve implemented the different laser types (pulse, beam, military and laser) and also added an “Initial Loadout” screen (shown below) so that no one need ever be…