ash@earth / ~
ash@earth~cat README.md

Ash Hart

AI systems architect / cloud & cybersecurity // United Kingdom

I build, secure, and run the systems around AI.

15+ years across software engineering, AWS infrastructure, DevOps, networking, and cybersecurity.

Alongside that work, I build local inference tools and experiment with how models learn, remember, and reason.

working_with = ["AWS", "Kubernetes", "MLX", "CUDA", "Metal", "Rust"]

Selected work

all repositories

also tinkering with Duo, ComputerUse, and Cortheon.

Production work

My background is in the infrastructure, security, and operational work that keeps software running.

AWS & DevOps
Cloud architecture, infrastructure as code, CI/CD, networking, and DNS, with automation and troubleshooting across the stack.
Cybersecurity
Security hardening and technical infrastructure, alongside agent-safety work on permissions, policy decisions, audit trails, and approval boundaries.

Experiment notebook

11 notes

Some of the questions I've tried to answer with working code.
These notes come from current projects and the archive, including the ideas that did not work.

JITLMarchived study / July 2026Can a model gain a skill, then give it back?Removable LoRA skills worked on a toy task; compiling new skills was harder.

What I tried

A frozen toy decoder with small, removable LoRA adapters, packaged skills, and a compiler that tries to turn examples into new adapters.

What the notes show

In a saved 200-case synthetic arithmetic test, a hand-trained adapter raised exact-match accuracy from 12.5% to 92%; removing it restored the original output bit for bit. The later compiler did not beat the base model on held-out operators.

What I took from it

Learning one task and learning how to produce a new skill are different problems.

from my local experiment archive
Driftresearch prototypeCan models exchange working memory instead of a written handover?Translating attention caches between frozen local models.

What I tried

Capture a local model's key-value cache, translate it into another model's representation, and compare the receiver with text handovers and wrong-memory controls.

What the notes show

The project explores bounded model-pair memory exchange. Transferring tensors is only one part of the test: the receiving model still has to use the information correctly.

What I took from it

A memory transfer needs a semantic check, not just a successful transport.

Cortheonearlier Vortex study / July 2026How do you teach a frozen model something new?Evidence, worked examples, and a teaching loop put through the same small test.

What I tried

In the earlier Vortex experiments, I compared six context formats on invented facts and procedures, using the same context budget and repeated seeds.

What the notes show

On one 35B MoE model, worked examples and the teach-and-test loop each passed 24 of 24 trials; raw pages passed 6. The teaching loop used twice as many model calls, and a dense 3B model failed the procedure test.

What I took from it

The right examples mattered, but the extra feedback loop did not earn a unique win on this narrow test.

WavefrontLMlocal prototype / July 2026Can a model revise a draft without changing what it has already said?Provisional tokens, immutable output, and a trace viewer for the failures.

What I tried

Explore a recurrent-depth serving engine that works on several provisional positions, compares strict decoding with a sequential reference, and records repairs and rollbacks.

What the notes show

The retained tests establish bounded decoding and repair behavior on toy checkpoints. They do not establish release-model language quality or an overall speed advantage.

What I took from it

Throughput only counts once the tokens are committed and the cost of repairing a draft is included.

from my local experiment notes
PhaseMesharchived study / June 2026How far can a small, fixed state carry a long sequence?Oscillatory sequence models and memory that keeps track of who did what.

What I tried

Build oscillatory state-space mixers and role-bound retrieval, then compare them with attention-style mixers and simpler retrieval baselines.

What the notes show

Saved synthetic benchmarks showed a mixer-level advantage at long contexts and useful role binding against swapped-role decoys. Short contexts favored attention, and language-model quality parity remained untested.

What I took from it

A faster sequence mixer is a systems result; it does not automatically make a better language model.

from my local experiment archive
Lycan Lablanguage & simulationsCan software learn from feedback without calling an LLM every time?A learning language tested on routing, simulated control, and numerical dynamics.

What I tried

Compile decision programs into a graph runtime with context, delayed rewards, and constrained actions; explore it through model routing, orbital simulations, and edge-of-chaos demos.

What the notes show

The code implements adaptive decisions and numerical demonstrations. A related Proof Lab produces bounded finite-search certificates and explicitly stops short of claiming an open theorem.

What I took from it

A decision policy, a numerical simulation, and a mathematical proof need different kinds of evidence.

Artificial lifearchived prototype / June 2026What happens when neural creatures have to earn their energy?A small world with neural genomes, mutation, reproduction, and competition.

What I tried

Build a grid simulation where organisms sense their surroundings, spend energy, reproduce with mutations, and are grouped by behavioral novelty.

What the notes show

The simulation and evolutionary mechanisms are implemented, with component tests in the archive. These notes do not establish open-ended intelligence.

What I took from it

The interesting questions are in the behavior over time, not just whether the simulation runs.

from my local experiment archive
Imprintlocal model toolingCan a model pick up its context without reading it all again?Saving computed context and restoring it when the model and prefix match.

What I tried

Build local tooling for prepared instructions, documents, and session state, with compatible model-state snapshots and matching-prefix checks.

What the notes show

The CLI and lifecycle are implemented and covered by model-free tests. Real-model equivalence and performance still need qualification for the standalone implementation.

What I took from it

Reusable state has to match the exact model and input; a saved blob alone does not prove a speedup.

Axiomlocal prototypeCan an agent resume a long job without losing track of what was verified?Durable tasks, checkpoint integrity, and an event history that survives interruption.

What I tried

Build a terminal agent harness that records work as events, checks checkpoint integrity, and separates attempted changes from evaluator-approved progress.

What the notes show

An interactive implementation and source tests are in place. Release qualification and a fresh broader run remain open.

What I took from it

Resuming a process and resuming trustworthy work are separate engineering problems.

from my local experiment notes
Local voice bridgehardware prototypeCould a HomePod become the voice of a local AI assistant?Local inference and speech output, with a useful hardware boundary.

What I tried

Connect a local model and speech output to AirPlay, then add a push-to-talk path using a Mac microphone.

What the notes show

The bridge implements voice output and a host-microphone conversation path. Native HomePod microphone access remained unresolved, so this was not a standalone two-way HomePod assistant.

What I took from it

Getting sound out of a device does not mean you can get its microphone stream back.

from my local experiment notes
TensorFold investigationsmeasured studies / September 2026Is the bottleneck actually where I think it is?Two investigations where the original performance hypothesis did not survive measurement.

What I tried

Separate memory-copy cost from tensor gathering in an MLX study, then test wider matrix kernels against whole inference requests in a separate 27B investigation.

What the notes show

The copy path was already near the measured memory-copy limit; array indexing was the avoidable cost. In the kernel study, isolated gains did not produce a dependable end-to-end speedup, while a bounds-correctness repair was retained.

What I took from it

Keep the negative result, check the full workload, and separate a correctness fix from a speed claim.

from my local experiment notes

git activity

public GitHub activity

On the bench

2026-10-06

Two Mac Studios. Bonded Thunderbolt 5. Testing TensorFold + MCDMA across both.
Follow the build on X

Available commands: help, about, background, experiments, projects, activity, lab, now, links, github, x, clear, replay.
readylocal AI. open experiments.UTF-8 │ ash.md
~/lab / project map

The systems around the models.

Select a project to look inside.

inference & transport
Apple silicon / NVIDIA GPUs
Mac / DGX Spark / Linux
independent memory research
inspect TensorFold

Runs language models on Apple silicon with MLX and on NVIDIA GPUs with CUDA.

MCDMA provides transport for supported multi-machine configurations.

read the source on GitHub