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

  1. 1
    A general technique for automating NES games (2013)
    17 people · 109 points · first shared 2013 · 2 comments on HN
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
    Paper
    3 people · first shared 2017
  7. 7
    A portmanteau of every word in English (2015)
    2 people · 81 points · first shared 2015 · 39 comments on HN
  8. 8
    What, if anything, is epsilon?
    1 people · 2 points · first shared 2014 · 1 comments on HN
  9. 9
    Worlds lartgest integer
    1 people · 1 points · first shared 2011 · 1 comments on HN
  10. 10
    Mariox.pdf
    1 people · first shared 2013
  11. 11
    Spook
    1 people · first shared 2025
  12. 12
    Paper.exe
    1 people · first shared 2018
  13. 13
    Zelda.pdf
    1 people · first shared 2017
  14. 14
    Sigbovik2011tom7whatwords.pdf
    1 people · first shared 2019
  15. 15
    Modal types for mobile code.pdf
    1 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
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/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close