SICM on Mac OS X

“Structure and Interpretation of Classical Mechanics,” (SICM) by Gerald Jay Sussman and Jack Wisdom, with Meinhard Mayer, is a fascinating book, revisiting classical mechanics from the point of view that everything must be computationally explicit. I already mentioned the book in a previous post.

The book is available online, and all the software is freely available on-line as well. The software is written in Scheme, and a very extensive library called “scmutils” was developed to support computations in classical mechanics, including implementations of many symbolic and numerical algorithms.

I think that many scientists and programmers could find the “scmutils” library to be generally useful, even if they are not particularly interested in classical mechanics. If you are using the GNU/Linux operating system, there’s no problem in getting the library working. However, if you want to use it on Mac OS X (or Windows), the instructions leave the impression that it’s not possible, and Googling turned up some useful information, but no complete instructions, and also some people that seemed to be at a loss about how to do it.

Well, it is possible to get MIT-Scheme with the scmutils library running on Mac OS X (and you can probably modify my instructions to make it work on Windows too):

Click here for my instructions for running scmutils on Mac OS X.

Tags: , , , , , ,

8 Responses to “SICM on Mac OS X”

  1. Barak Says:

    Man that’s geeky. And yet I understood every word.

  2. Jonathan Yedidia Says:

    Thanks. Yes it’s geeky, but this is “Nerd Wisdom” after all…

  3. agian Says:

    Hi – I’m just getting into this myself, though not on a Mac.
    Do you know of any online groups supporting either learning of SICM or scmutils? Feel free to e-mail me.

    I’d particularly like to see scmutils made widely available as a vehicle for teaching physics, and not necessearily just in the Scheme language either.

    Good Luck!

  4. gmlk Says:

    Following your instructions on a powerbook G4 15″ with 2GB of RAM I get an “out of memory” error:

    ; Compiling file: “rules.bin” => “rules.c”…
    ;Aborting!: out of memory
    ;GC #1277: took: 0.10 (36%) CPU time, 0.16 (46%) real time; free: 973569
    ;GC #1278: took: 0.90 (100%) CPU time, 0.14 (98%) real time; free: 973727
    ;GC #1279: took: 0.90 (100%) CPU time, 0.14 (99%) real time; free: 973727

    Any suggestions would be helpful?

  5. Jonathan Yedidia Says:

    gmlk,
    I’m sorry it didn’t work for you. I’m guessing that my instructions will only work for an Intel Mac. Especially since scmutils-200609-06-ix86-gnu-linux-sarge.tar.gz has “ix86” in it.

  6. CrimsonMinstral Says:

    Actually it does work on a PPC Mac (G4 17″ 1.67GHz with 2GB RAM). Using your instructions (thanks by the way), I got mit-scheme and scmutils built and running. There is a new mit-scheme by the way but it no longer comes with a PPC binary. You either need to use the 20070909 package *or* use the new package a build mit-scheme using the portable C package. It works but it takes a *long* time to build.

    Here, however is my problem. I keep getting a

    ;Unassigned variable: *compiler-input-pathname*

    error when I bind the following definitions from Chapter 1 of the book:

    (define
    ((L-free-particle mass) local)
    (let ((v (velocity local)))
    (* 1/2 mass (dot-product v v))))

    (define q
    (up (literal-function ‘x)
    (literal-function ‘y)
    (literal-function ‘z)))

    (define (Lagrangian-action L q t1 t2)
    (definite-integral (compose L (Gamma q)) t1 t2))

    (define (test-path t)
    (up (+ (* 4 t) 7)
    (+ (* 3 t) 5)
    (+ (* 2 t) 1)))

    (Lagrangian-action (L-free-particle 3.0) test-path 0.0 10.0)

    Any thoughts? The problem exists using a straight terminal or GNU-Emacs. Seems to me this variable should have been bound in either the mit-scheme build or the scmutils build. I’ve used both the 20070909 PPC binary and built the 20080130 source for mit-scheme. Same problem exists in both cases so it seems this might be internal to scmutils. What did I miss?

    p.s. I wish scmutils didn’t have so much eccentric code in it. mzscheme/DrScheme would be a better environment and make the package more accessible for teaching. The port seems to be a real bear unfortunately.

  7. Meinhard E. Mayer Says:

    I just accidentally ran across this thread and wanted to let you know that a precompiled version of scmutils has been available for some time at
    http://groups.csail.mit.edu/mac/users/gjs/6946/scmutils-tarballs/

    This version runs only on Intel Macs, with OS 10.5

  8. Jonathan Yedidia Says:

    I’m sorry it didn’t work for you. I’m guessing that my instructions will only work for an Intel Mac. Especially since scmutils-200609-06-ix86-gnu-linux-sarge.tar.gz has “ix86″ in it.

Leave a comment