16 comments

[ 2.9 ms ] story [ 51.9 ms ] thread
Hey, this is Sam Ritchie's project! Here's some of his excellent tech talks:

• "Computational Physics, Beyond the Glass" by Sam Ritchie (Strange Loop 2023) - YouTube: https://www.youtube.com/watch?v=Jv2JgzAl5yU

• "Emmy: Moldable Physics and Lispy Microworlds" by Sam Ritchie - YouTube: https://www.youtube.com/watch?v=B9kqD8vBuwU

• "Just-So Stories for AI: Explaining Black-Box Predictions" by Sam Ritchie - YouTube: https://www.youtube.com/watch?v=DiWkKqZChF0

At one point he was rebuilding an old airplane. Unsure if that project is still going on:

https://samritchie.io/spring-clips-and-stage-time/

I was at the 2023 Strange Loop talk and thoroughly enjoyed it as well as Jack Rusher’s Geometric Algebra talk: https://www.youtube.com/watch?v=1cRFfYQYGxE. Both of them reignited my fascination with Clojure and the things you can do with it (that can be done in other languages too, of course, but aren’t necessarily as good of a fit).

I think the piece that’s missing though is a good on-boarding documentation. I was sufficiently motivated that I fought my way through getting Clerk set up and could use it as a (IMHO) much nicer Jupyter alternative but ultimately threw in the towel and went back to SymPy for my day-to-day CAS work because the documentation just isn’t there yet. Like… if I tried for long enough I could usually trace my way through what was happening and probably get the result I was looking for, but the ratio of (time spent solving math problems)/(time spent trying to figure out how to express my math problem in a way that Emmy would solve) was way too low. SymPy has that issue too for sufficiently complex problems, but the documentation is significantly more mature.

If I end up with some free time down the road I’d be happy to help out with this. I think it’s an amazing piece of tech that really fits with my mental model of what I’d love a CAS system to look like, it just has a pretty steep learning curve right now.

Hey Taylor, thanks for posting these!! I'm still working on the airplane... it's a Vans RV-10, and now out at the hangar and maybe 98% complete, one more full-time month of work that I need to carve out so I can fly it by this summer.
Co-author of Emmy here, happy to answer any questions!

Point well taken from tonyarkles that on-boarding and docs need work. My big goals for this project were:

1. finish a 100% port of Gerald Sussman's scmutils algebra system into the browser via ClojureScript (I'm at ~98% or so?)

2. attach a 2D and 3D visualization system, and use the very-high-level physics abstractions to generate fast, interactive animations

3. make this all editable in the browser

4. write a ton of physics lessons and essays using the system

1-3 are all done, 4 is going to happen, but job + young twins are slowing me down now.

The easiest way to play with 1-3 is via the demos I shared at Strange Loop this past year, all of which run in the browser.

The first two live in Maria.cloud, which has all of Emmy available on any page. So fork these, play and share:

- First-Class Visualizations: https://2.maria.cloud/gist/30dbb25a2d2eb7324e0aad1097c459ae

- MathBox + Emmy at Strange Loop: https://2.maria.cloud/gist/0405c3427c88326a181b307371f939bc

These live in an editable version of a Clerk notebook with a less-polished UI:

- Taylor Series: https://sritchie.github.io/strange-loop-2023/notebooks/stl/t...

- Dual Number Visualization: https://sritchie.github.io/strange-loop-2023/notebooks/stl/d...

- (p, q) torus knot: https://sritchie.github.io/strange-loop-2023/notebooks/stl/p...

- Phase Portrait of the Pendulum: https://sritchie.github.io/strange-loop-2023/notebooks/stl/p...

- Geodesics of a Torus: https://sritchie.github.io/strange-loop-2023/notebooks/stl/t...

- Geodesics Klein bottles: https://sritchie.github.io/strange-loop-2023/notebooks/stl/k...

- Animated Particle on an Ellipsoid: https://sritchie.github.io/strange-loop-2023/notebooks/stl/e...

Simply want to say thank you and you're awesome. I'm looking forward to the physics lessons.
Thank you for the kind words :)
which books will teach how to build your own computer algebra system? (I've only heard PAIP does)
> Having the system in Clojure offers a number of advantages. It is not necessary to obtain or prepare a MIT/GNU Scheme executable to execute: only a Java runtime is required.

I still wonder if that is the easiest way to go about it. Isn't it possible to compile Scheme to WASM, for example?

It's a weird argument to me that somehow obtaining a Java runtime environment is easier than getting a binary for a Scheme interpreter. I think most people who aren't already Java users would find the latter easier, not the former.
That note in the docs is from a time when Emmy only ran on the JVM. Now Emmy runs in JS in a browser (see my top level comment for demo links) which I would argue is even easier.

Also the MIT scheme install was historically quite hairy and not supported on M1 Macs, for example.

I’ll update the docs here. Thanks!

Not MIT scheme, and there are no proper ports of scmutils to other Scheme dialects that I know of.
(comment deleted)