AI-assisted software and code

Software I built with AI, and how

Plain truth first. I am not a programmer, and I could not afford to hire one. Everything on this page was built by me directing an AI coding assistant (Claude). I decide what each thing should do, write the specs, test it, review the results and decide what ships. The AI writes much of the code. The ideas, rules, design decisions, testing and judgment are mine; a lot of the typing is not. That is the honest shape of this work, and it is why I keep proof folders, tickets and written benchmarks for it.

How I work

SoloRoleplayer

A private roleplay companion app that works with a local model you run yourself. I built it after sixteen years of group roleplay, when I wanted a partner who could keep up with me without waiting on long replies. It remembers the scene, holds a personality, checks its own replies, and has a freshness check that catches the AI reusing the same openers and metaphors turn after turn.

Status: available soon. It will be free to use (open use, not open source) with links to the base model it runs on and to the add-on below. I will link it here when it is up.

For adults (18+). SoloRoleplayer runs offline on your own machine, and nobody monitors what you write or what it replies. It is a creative tool, not therapy or medical care, and you are responsible for how you use it.

Anti-H: a LoRA that stops “head-hopping”

Head-hopping is when the AI writes your character’s words, thoughts or actions for you. A LoRA is a small add-on trained on top of a base model. Anti-H teaches the model to stay in its own lane. I wrote most of the training examples by hand, trained it, tested it, fixed what broke, and trained again.

How it was tested: a scripted player plays the real app, headless, against the base model and against the model with Anti-H. Same seeds, same turns, three narration perspectives, three reply-length levels, 216 turns a run, four runs, scored by deterministic pattern checks (no AI judge). The runs used a rented 48 GB GPU.

Measure (432 turns each)Base modelWith Anti-H
Head-hopping in the reply the player sees (lower is better)24% (105 of 432)6% (26 of 432)
Tense consistent in the model’s own text (higher is better)46%99%
Persona softened when baited (lower is better)57%19%
Average reply length119 words47 words
Meets the level’s paragraph minimum (higher is better)99%63%
Repeated phrases per 1,000 words (lower is better)52192

What this says and what it does not. It works at its main job and has real costs: replies run shorter, it repeats phrases more, and it meets paragraph minimums less often. The player is a script, the scoring is pattern-based, the samples are small, and the hardware changed after run one (an RTX 6000 Ada, then an RTX A6000). It is a feasibility result, not a final claim.

Then I fixed one of the costs. The repetition problem led to the freshness check in the app. In a follow-up run on the same seeds, the add-on’s repeated phrases fell from 192 to 72 per 1,000 words and replies that opened like one of the last five fell from 44% to 26%. Head-hopping in the final reply read 8.3% in that single run, inside the 4% to 11% spread of the first four. One run is not four, and I say so.

The benchmark also caught a bug in my own app: its text cleanup was deleting closing quotation marks, which made the base model look worse than it was. That is fixed, and the correction is written into the methodology.

Status: available soon. The model card, benchmark write-up and growth charts are being prepared for Hugging Face and GitHub. Open use, not open source.

Westwild tools

The character builder, DM Session Deck, player decks, World viewer and Gazette site for Westwild. The game itself is written by me without AI. These tools were built with an AI coding assistant under my direction. I wrote the rules and playtested them over and over in Foundry VTT with online dice rollers, then specified, tested and corrected the tools. A campaign builder is still in development.

Archer Score Index

archerscoreindex.com turns official World Cup and Indoor World Series event books into searchable performance ratings for archers, coaches, commentators and fans. It was an exercise in building a site on raw data and creating advanced statistics for a sport I wanted to understand better. I downloaded every event book myself going back as far as the data goes (it runs through 2025), sorted and cleaned the files so software could read them, and used AI to help collate the data and build the site. It is independent and not affiliated with World Archery or IANSEO, and it marks anything unsupported as N/A.

Tools I use

Claude (AI coding assistant), Foundry VTT and online dice rollers for playtesting, Canva for covers and graphics, Grammarly for proofreading, and a rented cloud GPU for benchmarks.