Interactive engineering course for learning Rust and egui by building a 2D CAD Schematic and PCB Design Review System, verified continuously with unit tests (cargo test) and mutation testing (cargo-mutants).
- Lesson 0001: Bootstrapping Your Rust &
eframeProject (apps/0001-project-setup-and-eframe-boot) - Lesson 0002: The Immediate-Mode Loop & Mutable State (
&mut) (apps/0002-the-immediate-mode-loop)
- Lesson 0003: Custom 2D Canvas & Drawing Primitives with
Painter(apps/0003-custom-2d-canvas-and-painter) - Lesson 0004: World-to-Screen Transforms, Drag Panning & Cursor-Centred Zoom (
apps/0004-world-to-screen-transforms-pan-and-zoom) - Lesson 0005: Modelling PCB Layers, Traces & Deterministic Z-Ordering (
apps/0005-modeling-layers-traces-and-footprints) - Lesson 0006: Spatial Hit-Testing, Selection State & Net Cross-Probing (
apps/0006-hit-testing-and-net-cross-probing)
- Lesson 0007: Schematic Symbols, Text Rendering & Headless UI Verification (
egui_kittest) (apps/0007-schematic-symbols-and-text-rendering) - Lesson 0008: Split Viewports (
egui::Scene) & Schematic-to-PCB Cross-Probing (apps/0008-split-viewports-and-egui-scene) - Lesson 0009: Searchable Netlist & Virtualised BOM Inspector (
apps/0009-searchable-netlist-and-bom-inspector) - Lesson 0010: Keyboard Shortcuts (
F,M,Esc) & Point-to-Point CAD Ruler (apps/0010-keyboard-shortcuts-and-point-to-point-ruler)
- Lesson 0011: Review Pins,
HashMapEntry API & Floating Callout Windows (apps/0011-review-pins-and-sticky-note-callouts) - Lesson 0012: Review Status Triage, Severity Filtering & Sign-Off Rules (
apps/0012-review-status-workflow-and-popups) - Lesson 0013: DRC Clearance Violation Halos, Bounding-Box Reduction & Minimap Clamping (
apps/0013-drc-violation-overlay-and-minimap) - Lesson 0014: Custom
egui::WidgetLayer Swatches, Struct Lifetimes ('a) &Harness::new_ui_state(apps/0014-custom-layer-swatch-widget-and-design-tokens)
- Lesson 0015: Multi-Crate Workspace — Separating
pcb-doc(L1) frompcb-reviewer(L6) (apps/0015-multi-crate-workspace-doc-vs-ui-egui) - Lesson 0016: Loading & Saving Board & Review Session Files (
serde,serde_json&thiserror) (apps/0016-loading-board-and-review-files-serde) - Lesson 0017: Copy-on-Write Document Snapshots with
Arc&Arc::make_mut(apps/0017-copy-on-write-arc-document-snapshots) - Lesson 0018: Undo/Redo History (
VecDeque) & Continuous Slider Drag Coalescing (apps/0018-undo-redo-history-and-slider-coalescing)
- Lesson 0019: The Command Pattern (
CommandSpec), Command Palette &panic_huntFuzzing (apps/0019-the-command-pattern-and-command-palette) - Lesson 0020: Spatial Viewport Culling (
Rect::intersects) & Frame-Time Budgets (apps/0020-viewport-culling-and-cached-tessellation) - Lesson 0021: Non-Blocking Background File Import (
mpsc) & Progress UI (apps/0021-non-blocking-file-import-and-progress-ui) - Lesson 0022: Offscreen Snapshot Parity (
gpu_lock), Quality Scorecards & WebAssembly (wasm32) (apps/0022-headless-snapshot-testing-and-wasm-build)
- Lesson 0023: S-Expression Tokenizer & AST with
nom(L0Standalone Crate) (apps/0023-sexpr-tokenizer-and-ast-with-nom) - Lesson 0024: Lowering KiCad
.kicad_pcbS-Expressions intoBoardModel& Corpus Oracles (apps/0024-parsing-kicad-pcb-and-sch-into-domain-model) - Lesson 0025: Embedded SQL Review Store with Turso (
turso_parser& AsynctokioBridge) (apps/0025-embedded-sql-review-store-with-turso) - Lesson 0026: Local-First Replica Sync, Atomic SQL Transactions & Tamper-Evident Audit Trails (
apps/0026-local-first-review-sync-and-audit-trail)
- Lesson 0027: LLM-Native Spatial & Electrical Queries (
schemarsJSON Schema) (apps/0027-llm-native-spatial-and-electrical-queries) - Lesson 0028: Headless MCP Server (
rmcp), Resources, Tools, Prompts & Mock Duplex Client (apps/0028-headless-mcp-server-rmcp-and-mock-client) - Lesson 0029: Bridged MCP Control Channel, Bearer Auth & Cropped Live GUI Snapshots (
apps/0029-bridged-mcp-control-channel-and-live-gui-snapshots) - Lesson 0030: Embedded
eguiMCP Inspector Workbench, Agent Playbooks & Act VII Scorecard (apps/0030-egui-mcp-inspector-workbench-and-agent-playbooks)
- Glossary of Rust &
eguiTerms - Immediate-Mode GUI Cheat Sheet
- Testing & Mutation Coverage Cheat Sheet
Each lesson has a runnable companion Cargo crate in ./apps/<NNNN-lesson-slug>/:
# Run Lesson 0006's interactive PCB Reviewer desktop app
cargo run --manifest-path ./apps/0006-hit-testing-and-net-cross-probing/Cargo.toml
# Run unit tests and mutation testing
cargo test --manifest-path ./apps/0006-hit-testing-and-net-cross-probing/Cargo.toml
cargo mutants -d ./apps/0006-hit-testing-and-net-cross-probingAll course pages (index.md, lessons/*.md, and reference/*.md) are authored in Markdown and compiled to standalone HTML via build.py:
# Compile all Markdown pages in-place and run link, frontmatter, and equal-word-count quiz checks
.venv/bin/python build.py --check
# Or build a standalone bundle into _site/ (used by GitHub Pages CI)
.venv/bin/python build.py --out-dir _site --checkLicensed under the Apache License, Version 2.0.
This is not an official Google product.