Tom Murphy VII
cs.cmu.edu/~tom7 · Personal blog · on HN since 2011
Tom Murphy VII (tom7) is a researcher and programmer who makes unusual projects, such as NES game automation and a printable-ASCII C compiler.
What HN saysHN commenters call his work crazy and great, pointing to his NES-playing technique, the portmanteau of every English word, and his videos.
45HN people shared it
25linked it in comments
23stories submitted
903story points
1 year agolast shared
2011people per year2026
Most-shared posts
- 1A general technique for automating NES games (2013)17 people · 109 points · first shared 2013 · 2 comments on HN
- 2Automating the play of Nintendo Entertainment System games.10 people · 4 points · first shared 2013 · discussion on HN
- 3The glEnd of Zelda(): Automatic 3Dification of NES Games (2016)5 people · 374 points · first shared 2016 · 38 comments on HN
- 4A C89 compiler that produces executables that are also valid ASCII text files [pdf]3 people · 325 points · first shared 2017 · 67 comments on HN
- 5Compiling C to printable x86, to make an executable research paper3 people · 7 points · first shared 2017 · discussion on HN
- 6Paper3 people · first shared 2017
- 7A portmanteau of every word in English (2015)2 people · 81 points · first shared 2015 · 39 comments on HN
- 8What, if anything, is epsilon?1 people · 2 points · first shared 2014 · 1 comments on HN
- 9Worlds lartgest integer1 people · 1 points · first shared 2011 · 1 comments on HN
- 10Mariox.pdf1 people · first shared 2013
- 11Spook1 people · first shared 2025
- 12Paper.exe1 people · first shared 2018
- 13Zelda.pdf1 people · first shared 2017
- 14Sigbovik2011tom7whatwords.pdf1 people · first shared 2019
- 15Modal types for mobile code.pdf1 people · first shared 2017
What HN people wrote when they linked it
dmreedy · 2019-03-28
I'm not sure that argument is a complete route of the strong (or at least, stronger) hypothesis. The conscious creation of new words is often done using fusions or appropriations of existing words, per Lakoff's Metaphors. Over time, the meanings shift and expand, but it's not a raw, instantaneous act of creation, that, to your point, would seem to be impossible under Strong Sapir-Whorf.
Now, we can, here and now, 'invent' a 'new' word from what we believe to be whole cloth. But it's hard to prove that that there's not some unconscious process similar to the above going on! That really all we're doing is finding the intersections of existing semantic distributions.
Incidentally, my favorite SIGBOVIK paper: https://www.cs.cmu.edu/~tom7/papers/sigbovik2011tom7whatwords.pdf
AstralStorm · 2017-09-14
"Observed" after being fed lots of sprites and actual ways on how to play it and actually win at it in the objective function. And it "played" only one kind of game.
"Obvious path" riiiight.
In addition, this is wrong to having been said to be new, such attempts have been made before and even stronger in results and generality. For example this (relatively dumb) approach from 2013 generalized kinda well, much better than I've seen a silly even deep network generalize: http://www.cs.cmu.edu/~tom7/mario/
So yes, they are overselling it a lot. I am 100% not impressed by this paper as it lacks critical detail.
That it can parse stuff from 2D frames is not interesting, it is basic motion analysis which can be done even by a supremely stupid algorithm, not even a CNN.
I mean, Google best AI can play 15 rooms of a simple game...
onli · 2017-04-22
You should look at some other things the author did. They fit in the same area of craziness, and are absolutely great. For example https://www.youtube.com/watch?v=QVn2PZGZxaI, Portmantout: A portmanteau of every English word, or the first one, https://www.youtube.com/watch?v=xOCurBYI_gY, Computer program that learns to play classic NES games. I also liked the humor in What, if anything, is epsilon?, https://www.cs.cmu.edu/~tom7/papers/epsilon.pdf.
mkehrt · 2017-01-18
Non termination is modeled as false: a function that takes an A and never terminates has type A -> F, or ~A.
There's some connection between classical logics and concurrency, though it's hard to get at. You can use callcc to implement threads, and Getzen's classical sequent calculus has multiple conclusions.
Here is a PHD thesis that uses modal logic to model distributed code in a CH fashion: http://www.cs.cmu.edu/~tom7/papers/modal-types-for-mobile-code.pdf
Classical logic is perfectly modeled with callcc, which has the type Peirce's Law, and allows one to write terms with the types of the law of excluded middle or Double Negation Elimination.
symmetricsaurus · 2016-06-01
These videos by Tom7 are indeed great. They don't display the use of deep learning though; the method is something quite different [1].
Maybe you could use the objective functions of Tom7 to determine which moves are good or bad in order to train a policy network?
[1]: http://www.cs.cmu.edu/~tom7/mario/mario.pdf
tomjakubowski · 2016-05-22
If you're interested in a "dumber" approach to machines "learning" to play classic video games (including Super Mario Bros), tom7's video [1] and paper [2] on Playfun are both fascinating.
[1] https://www.youtube.com/watch?v=xOCurBYI_gY
[2] https://www.cs.cmu.edu/~tom7/mario/mario.pdf
ant6n · 2016-04-13
If anybody remembers "PlayFun" by Tom7 (http://www.cs.cmu.edu/~tom7/mario/), which learns playing NES games by locally trying to optimize a bunch of objective functions based on lexicographical ordering of the bytes of the NES Ram. That system probably would've found the easter egg, because it can look into the future to find the best moves. Tom7 did try Punch-Out, but his AI-player lost the game before reaching the bosses mentioned in the easter egg: https://youtu.be/YGJHR9Ovszs?t=4m39s
jwise0 · 2014-12-09
Tom7 (the author) has done quite a lot of great stuff; his game "T in Y world" [1] is pretty good, and you may also remember him from his programs Learnfun & Playfun, which taught themselves to play Super Mario (and various other NES games) [2].
Do check out more of his work!
[1] http://tinyworld.spacebar.org/
[2] http://www.cs.cmu.edu/~tom7/mario/
falcor84 · 2014-12-03
Indeed. I am also surprised that no one mentioned Tom Murphy's Sigbovik paper from April 1st 2013 - "The First Level of Super Mario Bros. is Easy with Lexicographic
Orderings and Time Travel ... after that it gets a little tricky"
http://www.cs.cmu.edu/~tom7/mario/mario.pdf
Murphy created an agent that can play arbitrary games by inspecting the RAM and attempting to maximize the score.
See also this writeup on Ars Technica - http://arstechnica.com/gaming/2013/04/this-ai-solves-super-mario-bros-…
groovy2shoes · 2013-05-12
Any time I see papers like this, I'm reminded of Vargomax V. Vargomax's classic SIGBOVIK 2007 paper [1]. The presentation is also entertaining [2].
[1] http://www.cs.cmu.edu/~tom7/sigbovik/mariox.pdf
[2] http://www.youtube.com/watch?v=HhGI-GqAK9c
js2 · 2025-10-27
vunderba · 2025-02-22
This reminds me of a paper where they trained an AI to play Nintendo games, and apparently when trained on Tetris it learned to pause the game indefinitely in a situation where the next piece would lead to a game over.
https://www.cs.cmu.edu/~tom7/mario/mario.pdf
chc4 · 2024-04-17
A lot of fuzzers use Mario or other simple games as an internal testcase. I'm aware of a hypervisor fuzzer from 2016 that did it, and I'm positive there are others (both before and since). Hell, tom7 has a fuzzer for exploring program states that uses Super Mario Bros as the example from 2013 (https://www.cs.cmu.edu/~tom7/mario/mario.pdf, plus a youtube video https://youtu.be/xOCurBYI_gY), and he's definitely not the first either.
etrain · 2021-02-27
Tom7’s sigbovik submissions are true works of art. https://www.cs.cmu.edu/~tom7/mario/mario.pdf
garaetjjte · 2018-07-31
Not CD images, but there is DOS C compiler generating executables with only printable characters (and also no self-modifying code that could contain non-printable characters)
http://www.cs.cmu.edu/~tom7/abc/paper.txt (view in monospace font, 160 character lines)
dpflan · 2018-03-02
This reminds me of AI research using NES Games. The AI eventually became proficient at completing Mario levels, and along the way it discovered novel strategies for survival, obtaining points, and finishing levels.
> Check out this timestamp to watch the machine "cheat": https://youtu.be/xOCurBYI_gY?t=9m55s
> Researcher's site about the project: http://www.cs.cmu.edu/~tom7/mario/
> The Paper: The First Level of Super Mario Bros. is Easy with Lexicographic
Orderings and Time Travel...after that it gets a little tricky.: http://www.cs.cmu.edu/~tom7/mario/mario.pdf
anonymfus · 2018-02-05
http://www.cs.cmu.edu/~tom7/abc/paper.exe for convenience of not renaming
loeg · 2018-02-05
The text file ( http://www.cs.cmu.edu/~tom7/abc/paper.txt ) is the program.
chongli · 2017-10-09
It's natural to claim that's not generalizing since it's in such a specific domain as well as the fact that it had access to its score.
Yeah. I would like to see the same approach applied to NES games[0] with the capability of beating a game like Zelda or Ultima IV with no domain-specific knowledge. It's not going to happen. These games assume the player knows about human culture, values, virtues such as courage and triumph over the forces of evil. Symbols such as the sword and shield, the heart; they have deep meaning even to a person who has never played a video game before.
To build an AI that can play a game like that, without any specific knowledge of the game itself, would be to build something that likely reduces to general intelligence, though I hesitate to claim it forcefully.
[0] I am aware of this: http://www.cs.cmu.edu/~tom7/mario/
panic · 2017-09-10
On the subject of machine code as data, there was an interesting text file released at this year's SIGBOVIK: https://www.cs.cmu.edu/~tom7/abc/paper.txt (you'll need to resize your browser window to read it properly -- for an easier reading experience you can also check out the PDF and video at https://www.cs.cmu.edu/~tom7/abc/).
icelancer · 2017-04-22
Tom also built Learnfun and Playfun, which was Lexicographic
Ordering applied to... playing video games.
http://www.cs.cmu.edu/~tom7/mario/
Truly awesome stuff.
Someone · 2015-02-26
For comparison: http://www.cs.cmu.edu/~tom7/mario/. That is way more of a hack, but I am not sure this is that big a step forward. Space invaders and breakout aren't the hardest games and I haven't heard a hard argument that it is just a matter of scale to create a machine that, say, plays chess.
WestCoastJustin · 2013-08-08
If you liked this, you might also like a general technique for automating NES games, with Mario Bros demo [1]. There is a video, research paper, and source code too.
[1] http://www.cs.cmu.edu/~tom7/mario/
jaredsohn · 2013-04-14
Direct link to paper: http://www.cs.cmu.edu/~tom7/mario/mario.pdf
Direct link to video:
http://www.youtube.com/watch?feature=player_embedded&v=xOCurBYI_gY
brudgers · 2016-04-02
Homepage at CMU: http://www.cs.cmu.edu/~tom7/zelda/