Local-first AI systems and public demos

Run it. Teach it. Inspect it.

Crunchy Codes is my public workshop for Open Day experiences, local model infrastructure, and practical tools that make AI systems easier to explain, operate, and trust.

idea build ship
Open Day Public demos
Local AI Model runtime
Desktop Practical tools
Illustrated avatar of Dr Jason Holdsworth

Who am I

Dr Jason Holdsworth

I build practical local-first tools.

I'm Dr Jason Holdsworth, a Digital Technology academic and educator at James Cook University, and the maker behind Crunchy Codes. My work sits around local-first software, practical AI tools, public teaching demos, and human-AI interaction experiments.

Digital Technology educator Local-first software Teaching demos Human-AI interaction

Now building

Recent public work.

  1. Cybersecurity Challenge and SpeechShift Open Day experiences
  2. SceneChat local camera, detector, and scene-description pipeline
  3. ModelDeck local runtime manager and stable capability gateway
  4. Crowd AI, Text Diffusion Lab, and TokenTrail public demos
  5. Self-contained DiffusionGemma GPTQ Q4 g32 model published on Hugging Face

Projects

Recent public portfolio.

The latest repositories form a connected local-first lab: public experiences for teaching AI, shared infrastructure for running models, and practical tools for the machines hosting them.

Project lanes

Open Day experiences

Visitor-ready experiments that make tokens, computer vision, speech, cybersecurity, and human oversight visible enough to discuss.

Project lanes

Local AI infrastructure

A shared runtime manager, stable capability gateway, local model clients, and explicit offline fallbacks for dependable demos.

Project lanes

Practical desktop tools

Focused GNOME, macOS, VS Code, and desktop tools for inspecting local state and keeping everyday workflows understandable.

Replay-first MVP / local speech

SpeechShift

An honest speech-transformation demo with prepared local voice and language shifts, plus an opt-in, memory-only microphone path. Its local DSP baseline transforms captured audio without pretending to recognise or translate the visitor's words.

Python FastAPI Local audio Privacy-first

Open Day demo / staged text refinement

Text Diffusion Lab

A public explanation of generation by iterative refinement rather than next-token prediction. The visitor experience has a reliable scripted path, while staff can run the published DiffusionGemma Q4 variant through ModelDeck's native diffusion API.

TypeScript Teaching demo DiffusionGemma Scripted fallback

Active build / cybersecurity awareness

Can You Spot the Scam?

A local-first game where visitors investigate fictional messages, flag warning signs, choose safe responses, and solve approachable cipher cases with concise educational feedback.

MVP 0.2 / human oversight demo

Humans in the Loop

A QR phone-to-screen experience where a crowd sets goals and rules, reviews a deterministic AI-style proposal, and decides when to accept, repair, seek evidence, or involve a person.

Open Day demo / token-level generation

TokenTrail

A replayable teaching demo that exposes prompt tokens, candidate probabilities, and generated text one step at a time using local Hugging Face traces or prepared scripted fallbacks.

Research MVP / local voice conversation

Repartee

An interruptible voice-conversation experiment where a weak local speech layer owns timing and bounded replies, then escalates more substantive requests to ModelDeck through the same output path.

GNOME extension / Framework Desktop

System Usage Monitor

A Fedora 44 top-bar monitor for RAM, storage, temperature, and fan readings, with configurable local JSONL sensor history and Framework Desktop-friendly labels.

Desktop app and CLI / model library

HuggingFacePull

A local FastAPI, Electron, and command-line tool for finding, queueing, downloading, and cleaning up Hugging Face model snapshots, including resumable low-concurrency transfers.

Local-first principles

Tools should explain themselves.

Recent Crunchy Codes projects favour explicit user control: local files over hidden services, recoverable downloads over silent failure, and privacy-safe metadata over unnecessary telemetry.

Stay close to the user

Read local state directly, keep sensitive content on-device, and avoid network calls unless the tool genuinely needs them.

Make progress recoverable

Large downloads, long chats, and local experiments should preserve work instead of forcing people to start over.

Keep the controls visible

Prefer plain commands, clear status, and inspectable behaviour over magic that leaves the user guessing.

Contact

Questions, bugs, and project support

For project support, feature ideas, bug reports, or security concerns, use the support page or the issue tracker linked from the relevant project.

Open support