Linear Algebra as Spreadsheet

Thanks to Garth Goldwater for a lot of the ideas here

The metaphor isn't mine. But it's a good one!

So I was wondering why nobody took it literally.

When you're manipulating matrices, you [often] lose track of, "what am I doing? what does this mean?" I've got this funny matrix, I multiply it by a vector, what was this supposed to do?

I can't find any existing direct manipulation interfaces to perform linear algebra on raw data. Stuff like eigendecomposition or factorization. Or constructing proofs of SVD.

The key, I think, is to map the language of linear algebra to an interaction semantics for linear algebra (How do you create an interaction semantics?).

Here's what I have found:


Sure I guess?

APL Is Really Cool



One subproject (Downscoping as a skill (subprojecting)) is not APL, but some CAS matrix toy - "Linearkit".

Direct manipulation refs

  • 2d


Semantics refs

Every right click transformation (eg transpose, get eigens) is not in-place but is placed somewhere else in space, immutable copy, like Paul Shen's systems.


  • Learning, proving, playing
  • graphics pipelines (in 2d case of env layout)
  • statistics
  • DSP (vision - convolutions, audio)
  • ML


  • Not sure.
    • Might be internalized trauma taking linear algebra without something that feels nice to use (Domain-Learning with Computational Microworlds).
    • Practitioners make numpy mistakes a lot I bet
    • How do you communicate intuition about powerful ideas in linalg? Are pictures the best we have? What about the algebra, and the data embedded in every matrix?
  • The semantics of Linear Algebra are pretty well-defined I think? That's why it's an algebra, right?
  • I want to do casual mathematics
  • Linear Algebra can model a lot of other domains of math. Not to mention it's pretty useful for physics. So maybe the interface paradigm can be juiced into domain-specific applications (On Juicing, Bottom Up Design).

Spectral clustering/decomposition of some images you drag in


Lots of matmul happening here:

I should definitely do this first

Linear algebra brushes

  1. APL Is Really Cool