OP’s substack linked in the post (https://roadtoreality.substack.com/) was easier to read and understand the motivation for this project. From the title I assumed this would be a course that would take you through Penrose’s TRTR but interestingly it’s not mentioned. I would love a detailed, crowd-sourced TRTR companion site with comments and explanations.
I’m of two minds about using a programmatic approach to teach mathematical physics. On the one hand, it empowers you to experiment which is easier to do compared to pencil and paper. OTOH, it adds another degree of removal from concepts that are already hard. I would vote for a hybrid approach, where the concepts are mastered the usual way but then computer models are used to experiment beyond for additional insight and aha moments.
I think you make a great point about adding even further abstraction. I was inspired by Michael Nielsen's idea of "Discovery Fiction"[0], and porting the Sussman library gave me the idea that building the abstraction layers required to to do the physics in "Structure and Interpretation of Classical Mechanics" would make for a great narrative backbone.
I DID start the newsletter thinking I would read Road to Reality and get a community going around the book, and I still want to do that! What happened there was when I tried to talk about the book to anyone that wasn't already dialed on the math I was learning (close family, my wife, software engineer friends) I found that I couldn't communicate what I thought was so beautiful about the book and Penrose's development.
I wanted interactive visualizations that could run in the browser to function as little set pieces, so I could set them down and say
- look, this is what I mean!, and
- Here, you take the controls, let's play!
TRTR will come in, mixed in, I hope, with executable Feynman Lectures etc...
Hopefully that helps fill in some context that I left out!
Your project sounds really cool. From the title though I came in expecting some connection to the Penrose book, and then increasingly wondering if there is one or not -- it'd help to get that question out of the way right away.
Thanks for the additional comments. I love (but cannot understand 95%) Road to Reality and would love to have a community around the book, so super excited about any such effort.
Sam, I've been loosely following your projects / SICMutils since I landed on your Road to Reality substack (incidentally, after getting a copy of Penrose's book in early 2020 with similar goals). It's been inspiring to see it coming together - congrats on getting this out into the world!
This presentation is super clean & this kind of executable & visualizable code/LaTeX/math is (IMO) absolutely the future. Math on paper sells Lagrange & Hamilton way short. I originally wasn't able to break through the Lispy-ness of Clojure when following early SICMUtils (was a little busy having transferred to Caltech for Physics in '21 :)), but am looking forward to getting back into it and a second round with Emmy following these posts.
It feels a little bit odd that a newsletter + project that's directly motivated by Penrose's book and also appropriates the book's title does not mention the book. For example, the GitHub repo's readme:
Welcome to the Road to Reality!
The Road to Reality is an essay series by me, Sam Ritchie. Starting with the
basics of Lisp (the Clojure programming language, specifically), we'll build a
modern computer algebra system and use that system to explore and simulate
gems of modern physics like variational mechanics and general relativity.
Maybe it's just me, but I think if I was Roger Penrose I'd be like "uh, wtf".
It's not just you! The last thing I want is a WTF from Penrose...
This was just an oversight from me trying to cram in too much writing, and I'll fix it tonight once the kids are down. I explained the intended connection in a different comment — basically I started the newsletter with the goal of reading Penrose's book, doing all the exercises and trying to build out a community reading it together.
But my notes were just as confusing as the book, so I spent 3 years working on a port of Sussman's computer algebra system and sewing it together with this notebook engine, MathBox for 3D rendering, Mafs, Leva, MathLive, and JSXGraph and Reagent for a declarative way of sharing state between everyone.
Then I pieced it all together in this essay, tried to keep it concise, and blew it by not filling in the whole genesis story and GOAL of following Penrose.
I'll add that, and I will cover chapters of the book too!
Awesome! I similarly blew it by not mentioning that I think this is an awesome project. I bet tons of people have been similarly inspired by the book and by Penrose (I know I have) but you've actually gone out and done a thing, mad kudos to you!
Unrelated, but following one of the footnotes led me to this interesting page on using color to visualize four-dimensional movement. It uses untying knots as an example. It's a small thing, but it worked well for me and made the concept of a Klein bottle much more clear:
Reminds me of Bret Victor and hundredrabbits. If Lisp was more popular, we could use it as building block for UI (since it can describe both code data). An email client where all of your emails is a (lazy) list? A Figma-like where you can compose, filter, reduce the graphical elements? Lists are everywhere, and Lisp is built for it.
Excellent, I'm looking forward to future installments! I can't tell whether the series will be related to the book of the same title, but I would personally love a Lispy / SICP style exploration into that.
I covered this in a few of the comments above... the project was initially completely aimed at the R2R book, and I expect to get back to it. I'll add more background to the project page soon!
Does anyone have a list of similar presentation tools? I am trying to pick a solution for technical, interactive blog posts, so it has to support interactive visualizations, equations, and have great typography. Live editing and support for running code would be a great plus.
I think of Observable, distill.pub, and Jupyter, and they all hit various points but not all of them.
Thank you! I had "dependencies between notebooks" and "collaborative mode"... the first one's covered here but I still don't know how to handle some Google Docs-style flow on these.
I’m of two minds about using a programmatic approach to teach mathematical physics. On the one hand, it empowers you to experiment which is easier to do compared to pencil and paper. OTOH, it adds another degree of removal from concepts that are already hard. I would vote for a hybrid approach, where the concepts are mastered the usual way but then computer models are used to experiment beyond for additional insight and aha moments.