airstrike Andy Terra · Rust, iced, and the occasional web experiment

An index of things I've built and put out in the open. Most of it orbits iced, the Rust GUI library. Source lives on GitHub; crates on crates.io.

Live open in a browser

elevato.rs play

A faithful rewrite of Elevator Saga in Rust. Program a bank of elevators in Rhai, watch the simulation, clear the challenges. One iced codebase runs natively and in the browser via WebAssembly; the repo doubles as a working example of iced + canvas + Rhai on wasm.

elevato theme gists

The warm-paper, lamp-green, all-mono theme behind elevato, as a drop-in for iced or CSS.

hexrgb tool

HEX ↔ RGB converter with a live background preview. Nothing more.

swash.ink write

Write together. A collaborative editor on a CRDT core (Rust → WASM) with CodeMirror 6 on top, running on Cloudflare Workers, Durable Objects and KV. Dark, light, and a paper mode.

anthrology listen

A time-travel radio. Tune the dial to a year, 1950 to 2025, instead of a frequency and hear what that year sounded like: songs weighted by a decay model that peaks at release and fades, with the evergreens still drifting in. Vite and TypeScript up front, Bun and Hono behind, YouTube doing the playing.

tether story

TETHER, a narrative space game in the making. Read the pitch, screenplays and storyboards.

font features

iced on WebAssembly, poking at type: toggle OpenType features like ligatures, small caps, tabular figures and stylistic sets, and drag the optical-size and weight axes live.

pathfinder

Interactive pathfinding visualization: optimal routes around polygonal obstacles.

iced crates, widgets, tools

sweeten crate

Sweeten your daily iced brew. Extra widgets and helpers.

crushy linter

An iced-specific linter: a clippy fork with every upstream lint removed and a new set written for iced application code.

markright widget

A rich text editor widget for iced.

tabular widget

A table widget with selection, flexible enough to make editable cells.

chillcam crate

Webcam capture and rendering for iced applications.

hyozu crate

Charts for iced.

dragking widget

A very simple drag and drop for iced's Row and Column.

iced_grid widget

A likely cursed but ostensibly clever grid widget.

iced_ellipsize widget

Ellipsize text in iced.

iced_receipts example

Clean screen management, unified event handling, keyboard-navigable forms.

iced_openai app

A minimal OpenAI desktop chat app.

sleepy_hollow experiment

A random walk through the headless renderer and shader downsampling.

iced_comic comic

A short comic about iced.

iced_fontsampler tool

Preview fonts inside iced.

Skills for Claude Code and Codex · the ones worth sharing

# one skill, several, or everything (skills + guides).
# finds Claude Code and Codex on your machine, asks if unsure.
curl -sL https://airstrike.fyi/install.sh | sh -s iced
curl -sL https://airstrike.fyi/install.sh | sh -s all
/iced

Compose iced apps that hold together: workspace layout, TEA composition with Action<I, M> and .map() bubbling, iced API conventions, Rust style. Leans on the guides below.

/map

Massive Action Plan. Explore, draft, get agent critique until approved, compare against reference implementations, then produce phase docs. For big features.

/minimap

The 2–5 commit version of /map: one plan file, one round of critique, then execute.

/handoff

End-of-session checklist that writes the handoff doc for the next session.

/goon

Resume a project: read the latest handoff and plan, check the tree, carry on.

/bro

Restate the last message in plain human language. No jargon.

Guides install to ~/.claude/guides and ~/.codex/guides

Rust style

Module structure (foo.rs + foo/, never mod.rs), naming, error handling, imports.

Opaque types

Make illegal states unrepresentable. Every type is minted from a transformation.

iced mental model

iced is not immediate mode. Where work happens: update vs view, layout vs draw.

Push state down

TEA composition at scale: instructions, &mut handles, keeping update flat.

Decisions log

The D{N} entry format: issue, options table, recommendation.

Elsewhere ML, data, and the Excel years

tatami

Backend-agnostic multidimensional cube trait for Rust. Foundation for Pigment/Anaplan-style financial models.

FeGPT

A toy GPT in Rust, inspired by nanoGPT.

fired

Neural network regression with burn and polars.

decision-trees

ID3 and Gini binary split algorithms.

xlbuilder

Parse annotated VBA modules and build an Excel add-in from the CLI.

Terra

An Excel add-in for Wall Street professionals.