[HN Gopher] Show HN: MacMind - A transformer neural network in H...
       ___________________________________________________________________
        
       Show HN: MacMind - A transformer neural network in HyperCard on a
       1989 Macintosh
        
       I trained a transformer in HyperCard. 1,216 parameters. 1989
       Macintosh. And yes, it took a while.  MacMind is a complete
       transformer neural network, embeddings, positional encoding, self-
       attention, backpropagation, and gradient descent, implemented
       entirely in HyperTalk, the scripting language Apple shipped with
       HyperCard in 1987. Every line of code is readable inside
       HyperCard's script editor. Option-click any button and read the
       actual math.  The task: learn the bit-reversal permutation, the
       opening step of the Fast Fourier Transform. The model has no
       formula to follow. It discovers the positional pattern purely
       through attention and repeated trial and error. By training step
       193, it was oscillating between 50%, 75%, and 100% accuracy on
       successive steps, settling into convergence like a ball rolling
       into a bowl.  The whole "intelligence" is 1,216 numbers stored in
       hidden fields in a HyperCard stack. Save the file, quit, reopen:
       the trained model is still there, still correct. It runs on
       anything from System 7 through Mac OS 9.  As a former physics
       student, and the FFT is an old friend, it sits at the heart of
       signal processing, quantum mechanics, and wave analysis. I built
       this because we're at a moment where AI affects all of us but most
       of us don't understand what it actually does. Backpropagation and
       attention are math, not magic. And math doesn't care whether it's
       running on a TPU cluster or a 68030 from 1989.  The repo has a pre-
       trained stack (step 1,000), a blank stack you can train yourself,
       and a Python/NumPy reference implementation that validates the
       math.
        
       Author : hammer32
       Score  : 105 points
       Date   : 2026-04-16 13:16 UTC (9 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | gcanyon wrote:
       | It's strange to think how modern concepts are only modern because
       | no one thought of them back then. This feels (to me) like the
       | germ theory being transferred back to the ancient greeks.
        
         | hammer32 wrote:
         | Right? Backprop was published in 1986, a year before HyperCard
         | shipped. Attention is newer, but a small model like this was
         | buildable.
        
         | anthk wrote:
         | Lisp is from 1960's and with s9 you can do even calculus with
         | ease, in an interpreter small enough to fit in two floppies.
         | 
         | On the Greeks, Archimede almost did 'Calculus 0.9'.
        
         | kdhaskjdhadjk wrote:
         | I think it's incredible to see the potential that is still
         | locked up in old hardware. For example the 8088 MPH demo.
         | Amazing what he was able to do with an 8088 and CGA. All this
         | time the hardware had that potential, but it took decades to
         | figure out how to unlock it, long after the hardware was
         | considered obsolete. Imagine the sort of things that might be
         | done later down the road with hardware of 0-20 years ago if
         | somebody really dug into it to that level.
        
           | ashleyn wrote:
           | Retro console homebrew and demoscene are all about this.
           | There's a lot of fun stuff going on in N64 homebrew right
           | now: https://www.youtube.com/watch?v=rNEo0aQkGnU
        
           | tomcam wrote:
           | That 8088 MPH demo is a tour de force. Which tells you that
           | the millions of Apple laptops being bricked right now instead
           | of being recycled could have some amazing use if it were
           | possible to wipe them clean and reuse. Sigh.
        
             | andai wrote:
             | Well, we've set it up so the survival of employees and
             | their families is tied to old products being bricked.
        
           | andai wrote:
           | 8088 MPH: this one, right?
           | 
           | https://www.youtube.com/watch?v=yHXx3orN35Y
        
           | qingcharles wrote:
           | 8088 MPH demo is revolutionary. I have a plan to try and
           | backport the developments from that demo, plus other
           | optimizations learned in the last 40 years, back into the
           | original 8088 Elite PC version. I had Gemini Pro write a PoC
           | using 8088 assembler to create a CGA flat-poly renderer for
           | the ships, which worked great. Next step is to use Claude to
           | disassemble the original Elite binary so I can figure out
           | where the rendering code lives and try to start patching it.
        
         | jeffbee wrote:
         | People did think of many of these core concepts decades ago,
         | but they did not have the resources to put them into practice.
        
       | DetroitThrow wrote:
       | This is very cool. Any more demos of inference output?
        
         | hammer32 wrote:
         | Thanks! The quickest way to try it is the HyperCard Simulator
         | link someone just posted in this thread:
         | https://hcsimulator.com/imports/MacMind---Trained-69E0132C --
         | go to the Inference card, click New Random to fill in 8 digits,
         | then click Permute. The model predicts the bit-reversed
         | permutation of all 8 positions. The pre-trained stack gets all
         | inputs correct.
        
       | hyperhello wrote:
       | Hello, if there are no XCMDs it should work adequately in
       | HyperCard Simulator. I am only on my phone but I took a minute to
       | import it.
       | 
       | https://hcsimulator.com/imports/MacMind---Trained-69E0132C
        
         | hammer32 wrote:
         | I had no idea your simulator existed. No XCMDs, correct;
         | everything is pure HyperTalk. I just ran a few training steps
         | and they complete in a second or two. Thank you for importing
         | it!
        
           | hyperhello wrote:
           | I gotta ask. Your scripts have comments like --
           | handlers_math.hypertalk.txt at the top. Are you using some
           | kind of build process for a stack?
        
             | hammer32 wrote:
             | More of a copy-paste process. The scripts are written as
             | .txt files in Nova on my Mac Studio, then pasted one at a
             | time into HyperCard's script editor on the classic Mac. The
             | files are kept separate because SimpleText has a 32 KB text
             | limit.
        
               | hyperhello wrote:
               | As an alternative, you might consider letting Hypercard
               | itself open the text files and 'set the script of' as
               | needed.
        
               | hammer32 wrote:
               | Yup, that would have been easier. It's been decades since
               | I've done anything with HyperCard. I had to re-take the
               | built-in intro course again :)
        
       | edwin wrote:
       | There's something quietly impressive about getting modern AI
       | ideas to run on old hardware (like OP's project or running LLM
       | inference on Windows 3.1 machines). It's easy to think all the
       | progress is just bigger GPUs and more compute, but moments like
       | that remind you how much of it is just more clever math and
       | algorithms squeezing signal out of limited resources. Feels
       | closer to the spirit of early computing than the current "throw
       | hardware at it" narrative.
        
         | wdbm wrote:
         | There is an absolutely beautiful rendering of the Mona Lisa
         | encoded at some point in the digits of pi. If you know the
         | position, it's really easy to plot the image.
         | 
         | But first you have to find that position.
        
         | hammer32 wrote:
         | Exactly. Working in a constrained environment invites
         | innovation.
        
         | Unbeliever69 wrote:
         | Now do this on a Casio Watch next :)
        
       | immanuwell wrote:
       | The architecture of macmind looks pretty interesting
        
         | hammer32 wrote:
         | Thank you! The constraints made it interesting. HyperCard
         | doesn't have arrays, so the entire model, weights, activations,
         | gradients, is stored as strings in hidden fields. All of the
         | matrix math is done with "item i of field".
        
       | tty456 wrote:
       | Where's the code for the actual HyperCard and building of the
       | .img? I only see the python validator in the repo.
        
         | hammer32 wrote:
         | The stack is the code. You can view it directly for each button
         | or examine the per-page script. As far as I know there isn't a
         | compiler that lets you write standalone code and turn it into a
         | stack. The stacks are dropped into Disk Copy disk images to
         | preserve their resource forks. Both modern macOS and Git both
         | strip resource forks, so the disk image is the only reliable
         | container for distribution.
        
           | tty456 wrote:
           | So a hypercard is compiled machine code of button clicks and
           | key presses? Weird. I guess that could be macro'd somehow
        
             | hammer32 wrote:
             | HyperTalk is an interpreted scripting language. The scripts
             | are stored as plain text inside the stack and interpreted
             | at runtime. It's kind of like a Visual Basic form where the
             | UI and the code live in the same file. You can open any
             | script, read it, edit it and immediately run the newly
             | edited script.
        
       | rcarmo wrote:
       | Neat. Looks like I found my new benchmark for my ARM64 JIT for
       | BasiliskII :)
       | 
       | (still debugging it, but getting closer to full coverage)
        
       | watersb wrote:
       | This is great!
       | 
       | I first studied back-propagation in 1988, at the same time I fell
       | in love with HyperCard programming. This project helps me recall
       | this elegant weapon for a more civilized age.
        
       ___________________________________________________________________
       (page generated 2026-04-16 23:00 UTC)