About Past the Magic

What this is

Past the Magic is a collection of interactive learning instruments. Each makes a mechanism visible so you can follow it, predict its behavior, and test your understanding.

Its first instrument is a bit-exact LC-3 simulator with a live graphical datapath and a complete circuit-level view, built for anyone learning computer organization from the ground up. Assemble or hand-enter machine code, run it, and watch the actual bits move: the bus, the functional units, the control signals, fetch through decode through execute, one clock at a time. Nothing on screen is a stand-in for the machine — every view is driven by the same simulator core that executes your program.

A C-to-LC-3 explorer sits on top of the same simulator: write C, see it deconstructed into the assembly this compiler generates under the book calling convention (stack discipline, activation records), then step through that assembly and watch the same datapath execute it. The two halves share one machine and one mental model, because they are one continuous idea: high-level code is not magic, it becomes the instructions you already understand, one instruction at a time.

The GPU explorer starts with a single pixel and builds toward parallel work, memory limits, and useful values per transfer. It uses a deliberately small teaching model with visible rules. The valuation instrument explores the relationships between cash flows, time, required return, and price.

The pedagogy

Most simulators show you numbers changing — a register here, a memory cell there — and ask you to trust that something happened in between. That gap is exactly where the confusion lives for a first-time student: the machine looks like a black box that occasionally updates its display. This project's premise is the opposite: computing has no invisible layer. Every value that changes has a path it traveled and a control signal that moved it, and if a tool can show that path, a student stops memorizing behavior and starts understanding mechanism. Bottom-up: start from gates and registers, build up through the instruction set, build up again through a C compiler that targets that instruction set, so nothing above ever has to be taken on faith.

Who built it and why

I'm Matt Starolis. I have a BS in Electrical and Computer Engineering from UT Austin, where I took the introductory computing course under Yale Patt and later returned as an undergraduate TA, editor, and grader for that same course — including work on the second edition of the textbook the course is built around. I have watched this material land, and not land, for a lot of students across a lot of semesters. The tools available to them were built to execute programs, not to teach why the programs execute the way they do. I built the tool I wished existed when I was grading: one that shows the machine instead of describing it.

What's here now

The simulator and the live datapath view shipped first: assembly and machine code, full instruction-level and clock-level stepping, guided activities for a first pass through the material, and shareable links that open the instrument on an exact program and moment so a class or a conversation can point at the same thing. The C-to-LC-3 explorer is live in the same instrument: write C — pointers, arrays, and strings included — step it by C line, watch the activation record building and unwinding on the stack as you step, and watch the same datapath execute it. Memory reads as your program's own objects too — by name and declared type, arrays as arrays, strings as text — with the raw hex one click away in the same panel. Structs, linked lists, and a heap you can watch malloc and free move through are live too. The Control Lab now goes beyond observing and predicting: its curated Diagnose and Construct exercises run learner-authored control words against isolated machine starts and grade their actual behavior. Both halves are joined by the bottom of the abstraction ladder too. Between Datapath and Gates, the Circuit rung lays out the complete LC-3 — registers, muxes, bus, control sequencer, memory-mapped devices, and system paths — as an inspectable desktop-wide schematic bound to the selected real clock. Its guided LDR walk follows both five-clock memory reads, every ready-low wait, effective-address formation, register writeback, and the resulting condition codes. Below its 1280-pixel workspace floor the simulator keeps the useful code and register view and asks for a wider screen rather than pretending a miniature circuit is usable. The Gates rung now opens SR2MUX, the PC register, a RAM cell, or GatePC as one of sixteen parallel one-bit slices, pairing static behavior with evidence from the selected real clock. It is the Chapter 3 gate bridge, and the guided number activity now carries one 16-bit word through binary, hexadecimal, unsigned, signed, wrap, overflow, and the real N condition code for Chapters 1–2. The Recursive frames activity closes the finite guided C set beside Pointer storage and Linked-list lifecycle. The instrument is free to use; that's a deliberate choice, not a placeholder for a future paywall on the core tool.