See Rust's power in real time. 16 live interactive demos covering ownership, zero-cost abstractions, fearless concurrency, async I/O, lifetimes, WASM, macros, and more β all in a blazing-fast terminal UI. Written in 100% Rust.
| Key | Demo | Level | Step Control | Quiz |
|---|---|---|---|---|
1 |
Ownership & Borrowing | Beginner | β | β |
2 |
Memory Management | Beginner | β | |
3 |
Zero-Cost Abstractions | Intermediate | β | |
4 |
Fearless Concurrency | Beginner | β | |
5 |
Async/Await | Intermediate | β | |
6 |
Performance Benchmarks | Intermediate | β | |
7 |
Type System | Intermediate | β | β |
8 |
Error Handling | Intermediate | β | β |
9 |
Lifetimes | Advanced | β | β |
0 |
Unsafe Rust | Advanced | β | |
a |
WebAssembly | Intermediate | β | |
b |
System Metrics | Intermediate | β | |
c |
Compile-Time Guarantees | Intermediate | β | |
d |
Cargo Ecosystem | Advanced | β | |
f |
Embedded / no_std | Intermediate | β | |
g |
Macros | Intermediate | β | β |
Demos marked β support manual step control. Press N to advance to the next
conceptual step and P to go back β turn any animated demo into a self-paced
tutorial.
Every demo has a built-in quiz question. Press T to open the quiz overlay,
then 1β4 to submit your answer. Your score is tracked across the session.
Enter the classic Konami code (β β β β β β β β B A) for a surprise. The entire UI
switches to animated rainbow colors per-character. Press any navigation key to exit.
Unlock achievements (visit demos, hit speed records) and watch particle effects burst across the screen.
Switching between demos triggers a smooth horizontal reveal animation.
Toggle a side-by-side Rust vs C++ comparison panel on supported demos.
Every demo ships with a prose explanation panel written by a Rustacean. Expand it
with E and scroll with j/k.
# Clone
git clone https://github.com/wesleyscholl/ferroscope.git
cd ferroscope
# Build & run (release mode for best performance)
cargo run --release
# Or install globally
cargo install --path .
ferroscope| Flag | Description | Default |
|---|---|---|
--fps N |
Tick rate, 5β120 fps | 30 |
--tour |
Auto-advance through all 16 demos | off |
--screenshot |
Headless text export of every demo | off |
--screenshot-dir <path> |
Output directory for screenshot exports | ferroscope-screenshots |
--version |
Print version and exit | β |
| Key | Action |
|---|---|
β / h, β / l |
Previous / Next demo |
1β9, 0 |
Jump to demo 1β10 |
a, b, c, d, f, g |
Jump to demo 11β16 |
Space |
Pause / Resume animation |
R |
Reset current demo |
N / P |
Step forward / back (step-control demos) |
T |
Open quiz overlay |
1β4 |
Answer quiz question (when quiz open) |
+ / - |
Increase / decrease speed |
V |
Toggle vs-mode (Rust vs C++) |
E |
Toggle explanation panel |
j / β |
Scroll explanation down |
k / β |
Scroll explanation up |
S |
Screenshot (save text export) |
? |
Toggle help overlay |
Q / Esc |
Quit |
| Konami code | Activate rainbow CRAB MODE π¦ |
- Rust 1.87+
- A 256-color terminal (iTerm2, Terminal.app, Alacritty, WezTerm, kitty, etc.)
- Minimum 120 Γ 34 terminal size recommended
ferroscope/
βββ src/
β βββ main.rs # CLI args, terminal setup, run_app() event loop
β βββ app.rs # App state: demos, particles, quiz, transitions, Konami
β βββ events.rs # AppEvent enum + key_event_to_app_event()
β βββ theme.rs # Rust-orange color palette, HSV rainbow helpers
β βββ ui/
β β βββ header.rs # Animated crab, rainbow Konami title, progress bar
β β βββ footer.rs # Key hints, N/P + T dynamic hints, rolling Rust facts
β β βββ nav.rs # Tab bar with difficulty badges and mouse support
β β βββ layout.rs # Responsive layout calculation
β β βββ quiz.rs # Quiz overlay widget with score tracking
β β βββ widgets/ # GaugeBar (pulse), FlameGraph (gradient), SparklineExt, ...
β βββ demos/
β βββ mod.rs # Demo trait + DemoRegistry
β βββ d01_ownership/ d02_memory/ d03_zero_cost/
β βββ d04_concurrency/ d05_async/ d06_performance/
β βββ d07_type_system/ d08_error_handling/ d09_lifetimes/
β βββ d10_unsafe/ d11_wasm/ d12_system_metrics/
β βββ d13_compile_time/ d14_cargo_ecosystem/ d15_no_std/
β βββ d16_macros/ # macro_rules!, hygiene, proc-macros, C vs Rust
βββ benches/ # criterion benchmarks: sort, alloc, iter
The demo GIF is produced with VHS:
brew install vhs # macOS β also installs ffmpeg + ttyd
cargo build --release
vhs demo.tape # outputs assets/demo.gifMIT β see LICENSE.
