Hacker News new | ask | show | jobs
Plotter Drawings: Five seconds of Donkey Kong (michaelfogleman.com)
185 points by dogichow 3072 days ago
10 comments

Woah, hey, it's me! I wanted to share this on HN but wasn't sure if it was kosher. I guess someone else did it for me!

I just started working on these last week and they were very well received on Twitter. Then, to my astonishment, Edward Tufte retweeted it!

https://twitter.com/EdwardTufte/status/954537749234765825

I have one of his books but didn't realize he was on Twitter until that moment. I was blown away.

A lot of folks asked to buy one, so I made the page that this HN post links to on Sunday night. Within hours Tufte reached out to buy 3 of them! :-o I have 6 other buyers so far as well. So I've been busy fulfilling these requests and trying to figure out shipping and stuff.

Interestingly, about half of the buyers so far are in neuroscience.

http://journals.plos.org/ploscompbiol/article?id=10.1371/jou...

> Interestingly, about half of the buyers so far are in neuroscience.

They reminded me immediately of electroencephalography (EEG) recordings of brain activity.

https://www.cs.colostate.edu/eeg/data/json/doc/tutorial/_bui...

https://www.researchgate.net/profile/Johannes_Knaus/publicat...

Cool, you wrote your own NES emulator for this? This is off-topic, but I've been meaning to write an emulator for ARM Cortex-M platforms as an introduction to the idea, but haven't had much luck finding good beginner-friendly resources.

So...thanks for writing up and collating so much information about the NES in one place!

Nah, I had already written the emulator a couple years ago.
I'd recommend having a look at emulators for other chips in general and just tailoring them to ARM Cortex-M. The architecture reference manuals (ARM ARMs, har har) are freely available on ARM's website[0]. I'd recommend the ARMv6-M for Cortex-M0/+ or ARMv7-M for Cortex-M3/4/7. I think the latter manual covers both ARMv7-M (M3) as well as ARMv7E-M (M4 and M7).

[0] - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....

These are so cool! I think you may have inspired me to buy a pen plotter! I also read your Medium article about programming for the plotter. Great stuff, thank you for sharing the knowledge and for making such a cool project!
Author of that PlosCB paper here, I love these plots! This is such great work, and I've been telling everyone I know to check it out.
That's awesome!
Saw this going around #plottertwitter. Very lovely work - congrats!

If you want to try running this in a big robotic whiteboard, let me know.

Very cool! I did a something using bitmaps a few months back ( https://blog.mattbierner.com/nes-memory/ ) but I really like how he visualized changes here.

If anyone is interested in exploring something similar, here's the simple fceux script I used to sample the memory of a running NES game: https://github.com/mattbierner/NES-Memory-Visualization/blob...

Your blog post is fascinating and I'm tinkled pink I found it, as I was planning on doing a NES memory visualization project myself for a design class this semester. Your idea of representing the bits as pixels is exactly what I was cooking up in my preliminary notes. It's awesome to see that I wasn't alone in my idea; your write-up and code will be a great starting point -- a valuable citation for sure.
What is going on with Mega Man? The other games look relatively atomic but Mega Man has obvious dependencies spanning memory locations...
Most NES games have separate program and graphics data, stored in 2 physical ROM chips on the cartridge. The CPU and Picture-Processing-Unit (PPU) have separate memory maps; one chip will be mapped into the CPU's area, and one into the PPU's. Some games (like MegaMan and Legend of Zelda) have RAM connected to the PPU, instead of a ROM chip, and the graphics are stored with the program data. This lets the developer store (or generate, like in the game "Elite") images alongside program code, and transfer to the PPU as needed.

So I'd wonder if a pattern like that is characteristic of the game switching transmitting graphic tiles to the PPU.

It's shuffling the order of its 256-byte sprite buffer each frame to implement sprite flicker, which is done because the NES can only render 8 sprites per scanline.
Nice! I knew about sprite shuffling and wondered how it would look here but didn't realize that was what was going on in this particular case.
It looks like perhaps it has some sort of scene graph that it re-scans on every frame - probably not to redraw the screen because games have been pretty smart about that for a long time, but perhaps to check collisions between objects / particles. Then again, this is NES, so who knows!
I don't see Mega Man on the linked page -- is it somewhere else?
This actually makes me think of a project I'm currently neck-deep in working on... Taking captured audio hardware register writes (in the form of a VGM file) and having a modern microcontroller actually replay them on an actual NES CPU. In other words... A hardware-based NES game music player. (Of course I'm not actually visualizing much, yet.)

https://www.youtube.com/watch?v=97jic_WRrwY https://www.youtube.com/watch?v=eafaFr9Q_rU

These are all variants of NSF players. When looking for them, my requirement was that they generate audio with an actual NES CPU.

This one I think is especially cool. Instructions to build a cartridge to run on an unmodified NES: https://web.archive.org/web/20170319202533/www.nullsleep.com...

And these two both use an NES (or Famiclone) CPU, along with some other hardware:

http://kevtris.org/Projects/hardnes/

http://forums.nesdev.com/viewtopic.php?t=5957&view=next

NSF is a cool format, itself. It's basically a specialized ROM format for encoding game music and sound effects for playback, usually in an emulator. And since it relies on actual CPU code rather than recorded register writes, it can include loops and such programmatically.

This is wonderful! This is kinda like a project I'm working on where we're instrumenting memory accesses across each memory cell in a data structure to be able to visually profile how the data structure is being used.

Plotting each cell individually over time had never occurred to me, and I'll definitely try this!

I could listen to the plotter go for hours.
Late to the party, but just wanted to comment that I appreciated the namesake spelled out by social media icons in the footer. Some people put thought into all angles :)
Haha, everyone says that but it's totally coincidental - they're just in alphabetical order. (GitHub looks like an O)
Really cool! Reminds me of distellamap by Ben Fry (co-creator of Processing) - http://benfry.com/distellamap/
In reading these comments, I'm surprised about the naivety of typical HN reader with their relationship with the price of art.

I mean, a photo only costs like $10 to print an 8x10, why would the artist dare charge $200 or more?

So which one is the typical reader, the one wondering about the price or the one explaining to the first one why it shouldn't be surprising? (Or the ones discussing what typical readers say or do?)
$200 per print from a pen plotter?

I'm sorry but unless each print is hand-drawn or something, then $200 is a bit much. Especially if there's masters sitting on a hard drive somewhere.

Bear in mind it is a way to own unique outputs from the creator's own "instrumented" NES emulator. So, as with commercial software, the price reflects the r&d cost. In this case there's also an "art print" aspect to the product. I'm not tempted to buy but I can imagine that selling the prints for less than, say, $50 might create more work fulfilling orders than the guy wants to do & at the same time make the product seem less special.
As the creator, I feel this comment best reflects my mindset behind the pricing. In particular, at a lower price I'd be overwhelmed with fulfillment and I'm not interested in that.
The only thing I found surprising was how much of the HN crowd was surprised at the $200. It's perfectly fine for a unique product to be priced at whatever you the creator feel like it should cost given the time that you have put into making the system and the time you spend making each additional print.
I'm strapped for cash, but would love to buy one in the future! I quite like the idea! Glad to see it!
No masters, each one sold is unique! If you buy one, I'll play another round of Donkey Kong. haha
> I'll play another round of Donkey Kong.

Can we get platinum editions with famous computer scientists (besides yourself, of course) playing Donkey Kong? I want the Don Knuth edition!

It's totally worth $200. Same person has probably splurged on something they deem is worth $200.
Chances are most people are reading this story on a phone that costs $200 to make and sells for $700.
Odd comment considering the regular HN posts urging people not to undervalue their work.
The recurring exception to this HN maxim is when the work is artistic. Then it's not possible to price it low enough to avoid the scorned cries of, "overpriced. my kid could do this."
People here seriously overvalue their work. How much effort put towards peoples' countless "Show HN" projects would have been better spent contributing to similar, more-developed open-source projects?

If this is the bazaar, maybe cathedrals ain't so bad...

Art is subjective, of course, and an artist is free to ask whatever they want for their work. I am unimpressed and probably not the target audience (as other comments allude).

This is where you are wrong, many of the 'more-developed open-source projects' are what once used to be on Show HN and other forums. Instead of working on their personal projects, if people only contributed to more-developed open-source projects, then that is all we will be left with, only those softwares, no new innovation.
I'm pretty sure the hit-to-miss rate on Show HN heavily favors "miss"
For this to be special to someone they have to 1) Understand what it is showing, 2) have nostalgia for these video games, and 3) Want art of these things to display for people who will probably not be in groups 1 & 2.

So there is a very small market for these prints, and the artist can charge what they want because they won't really be making this a business anyway.

The market is indeed pretty small. However, I have several rich rich friends who live for this sort of unique item.

They'd probably buy several, frame them nicely and put them in an obvious place in their house. Then when they're entertaining a large VC or banking crowd someone will notice them and ask WTF they are and he'll have a nice story to explain them and how unique they are. Golf claps all around and my buddies will enjoy having something their other rich friends don't; and of course the short lived adoration of his dinner guests, which is almost better than money.

Close, but I imagine the person would struggle to explain the print to their non-techie friends, who pretend to understand. $200 to hear “oh... cool.”
it's a great conversation starter
As numbered edition artworks that would be considered very low end. The price is a reflection of both intrinsic and extrinsic value as perceived in the fine art world.

Intrinsic meaning the investment of individualized effort, which include what we might call "set up costs," and extrinsic meaning: can this artist command some multiplier based on their name?

$200 suggests a modest return on modest sales by an "unknown" whose work will be primarily valued by people with a personal interest in it.

$400 framed would be reasonable as well.

For art world definitions of "reasonable" of course :)

As a lifetime student of art I consider the art world and its notions of 'intrinsic value' to be bunk. As I said before he is free to price his art at whatever rate he wants, and I am free to object to whatever price I want.
You'll notice in my description I'm describing as intrinsic tangible costs, e.g. materials. E.g. in this case what would be investment in the hardware plotter, paper, software... etc (There are opportunity costs for time which are pretty objective as well.

That is: I do think that so long as you assume someone isn't for more complicated or personal reasons distributing their work at a loss, there are really intrinsic costs... and hence arguably an intrinsic value. Assuming that your market agrees that you've done more than ruin the materials as materials.

BUT I agree with you, these costs are usually immaterial in most art world attributions of value. That is, who cares if a De Kooning consumed $400 in paint on a $400 canvas.

My interest was that in most industries, e.g. non-consumer hardware electronic goods, it's an industry standard to charge something on the order of 4:1 or 8:1 over the material costs, to account for all the less tangible costs: and provide a "healthy" profit which is liable to not also be so high as to invite competition.

In this case then it'd be expected that the cost of tangible material investment was around $25-50/work, which seems the right ballpark at least.

QED IMO anyway those drawings aren't "overpriced," quite the contrary. :)

I'm sure everyone here can agree with your statement, yet you're being downvoted to oblivion. Consider that.
It's not out of line for other works of similar scope. You don't pay for the materials.
Yeh, it's only like probably 5 cents for the paper and maybe what, 10 cents for ink. This guy shouldn't charge more than a quarter for this!
The paper he is using is 53 cents per page according to the provided link. Ink cost is a bit harder to determine without knowing how many prints per pen. He is including free shipping, could easily be $5 to $10. There is also the matter of the time taken, the overhead of space and electricity and that doesn't even acknowledge any creativity. I'd estimate the break even point to be around $20-25. Much less than that and it would be more sensible to not bother doing anything at all.
HN never fails to disappoint on the "let's read his comment as the most extreme possible version it could be, nevermind subtlety, nuance, or reading!" front
It's art. The marginal cost of producing each print includes the price of keeping the artist alive and inspired.

Also, you should probably expect to pay more for the five seconds where Jumpman actually rescues Pauline.

I'm sorry but I do not consider experiences pursued to create art to have any intrinsic value for the final piece.

Cool, he has an instrumented emulator, but really, does playing a retro game for five seconds have ANY intrinsic value beyond worthless nostalgia?

In art all that matters is creation and output. A piece of art should not have to come with an explanation or hidden information in order to justify its worth. While it is important to fuel inspiration and artistic experiences, it's a fucking joke that I am expected to pay extra for the "experience" that lead to producing the work when it has no value to me, and especially when said experience isn't as unique as it is being made out to be.

Out in the real world people will judge art way more harshly than I. Real artists don't mind that.

Aesthetically they are nice posters and art-pieces. It's just that some of us are unmoved by the accompanying story.

This idea of intrinsic artistic value has been already turned over and ripped apart, over 100 years ago - Marcel Duchamp, Dadaism et al. There are people for whom nostalgia is extremely valuable.

If it has no value to you, fine. You are free to critique, but calling someone else's work a 'fucking joke' is not exactly highbrow commentary. On the other hand, I'm sure as a real artist the author won't mind your comments at all.

You are not expected to pay anything at all.
How do you suggest the artist calculate the pricing instead?
I now kinda want a plotter art drawing of the invisible hand of the market creating a/b testing prices for itself. The HN way!
So don't buy one.

If you are really buggered, compete.

I won't, thanks for the extremely useful information. My life was absolutely incomplete until your reply!
So you see my point about your comment at least.
> I will guarantee that each drawing sold is unique,

Well, you are paying for the uniqueness. Doesn't sound too bad.

I'm also a bit surprised by the price. Nice project though!
same reaction here - neat idea, but too costly. does make me want to instrument some games I've created to generate art of this kind...