Talk:2601: Instructions

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
Turtle graphics

So these are instructions for a turtle graphics program. The audio is drawn from https://xkcd.com/2601/radio.mp3, a 9 hour 7 minute 12 second long audio file It's generated by feeding turtle code into a text-to-speech program, but idk which language or which program. If you can convert the speech back to text, somehow without ruining the formatting (or just do a lot of editing with regex until it looks right), you could feed it into a turtle graphics program and get the resulting drawing.

If you're not familiar with Turtle and Logo, look at this [guide]. The short version is that these commands move a little cursor, called a turtle, which draws a line as it moves and turns. At this time, contributors have applied a few different computer transcriptions to the entire audio. There are quotes about turtles from a variety of sources intermixed with Logo code. It is expected that some correction to the code is needed, such as adding parenthesis that are not spoken in the audio. Standard Logo commands found in the audio are: PENUP, PENDOWN, SETHEADING (N) (N), SETXY (N) (N), and FORWARD (N). Some custom functions are defined, including DIST (N) (N) (N) (N), LERP (N) (N) (N), MIX (N) (N), CUBIC (N) (N) (N) (N), and SQUARE (N) (N). The next steps are to test the transcripts of these custom functions in a Logo interpreter, at which point we can begin drawing the picture. Mannerisky (talk) 02:45, 2 April 2022 (UTC)
The picture indeed will be Bob Ross. The first hour of radio has him saying, "A happy little tree - holding up a happy little world." We can coordinate transcribing this code at GitHub Repository. Credit for this progress goes to the GitHub owner. Mannerisky (talk) 04:55, 2 April 2022 (UTC)

I don't know what the current image on this page is. Is that the drawing you get by following these instructions? 172.70.100.4 20:58, 1 April 2022 (UTC)

Wait I see now, that is the actual image for the comic. It just gets covered up by the button so I can't see it. 172.70.126.87 21:03, 1 April 2022 (UTC)
Ah, it looks like someone realized it's actually longer than that. After downloading it, I found it to be 131,329,389 bytes. The Windows Properties viewer claims it is 8h41m08s in length, but that's wrong. It is actually 9h07m06s. By the way, the code is in the Logo language. He seems to have copied this from a book, but I don't know which one. 172.70.100.4 21:12, 1 April 2022 (UTC)
Worth taking a look at? I can start looking for books that contain that text162.158.107.52 21:39, 1 April 2022 (UTC)
The automatic speech system is using standard punctuation processing, meaning that critical marks for the code aren't being announced. You can't get the code from the samples without filling in the blanks after getting a transcript. N (talk) 22:19, 1 April 2022 (UTC)

The MP3 file ends with this text: "I even talk to turtles at times. But you need to understand LOGO to appreciate the great, great things that have been created. We spend so much of our life typing, looking, but never ever seeing." 162.158.222.151 21:17, 1 April 2022 (UTC)

april fools' comic? GcGYSF(asterisk)P(vertical line)e (talk) 21:18, 1 April 2022 (UTC)

I think it's an April Fool's joke. 108.162.238.148 21:20, 1 April 2022 (UTC)
Well is it 2022/04/01 141.101.77.189 21:26, 1 April 2022 (UTC)

Broken Version

I think mine's broken. I don't get it. 172.70.130.91 21:29, 1 April 2022 (UTC)

You press the radio button, it selects it, then you can press it a zillion times in any pattern and all it ever does is blink the entire image. Nothing else ever appears other than the radio button, and there’s never any sound so pressing the speaker in the corner to supposedly turn it on or off is also completely pointless.172.70.126.65 23:31, 1 April 2022 (UTC)
Alright, it’s April 2nd now, so if all of you have been LYING about it actually doing something, just playing along with the joke, you can admit it now.172.70.130.153 18:40, 2 April 2022 (UTC)
Did it only work on American April 1st, or only for some people? It's the third of April here now, and it's still a boring button that clicks on once and does nothing else. Have I missed it? 108.162.249.13 20:38, 2 April 2022 (UTC)

Given the alt text "happy little turtles" and the tone of the narration I assume we're supposed to pretend the narrator is Bob Ross guiding us to creating an artistic masterpiece with Logo 172.70.211.72 21:31, 1 April 2022 (UTC)

Guys, it's been HOURS and the transcription is still incomplete. Step it up! 172.70.162.77 21:37, 1 April 2022 (UTC)

Not even sure what the transcript should be. I did my best162.158.107.52 21:41, 1 April 2022 (UTC)
I have a feeling this might be one of the longest transcripts on the site. 108.162.245.43 21:57, 1 April 2022 (UTC)
Wanna bet? 1608: Hoverboard/Transcript... --Kynde (talk) 20:35, 2 April 2022 (UTC)
Or 980: Money/Transcript --Kynde (talk) 21:59, 2 April 2022 (UTC)

Up until someone automates the process, I'll be working on the transcript and saving it in exkcd in parts (: Don't worry too much about edit overrides, I'll be transcribing in a google doc to avoid that! --Wielder of the Staple Gun (talk) 21:53, 1 April 2022 (UTC)

The sections about turtles between the code blocks seems to be from

Interesting Facts About Turtles A Little Nature Study by a Scientist that will Interest Old and Young Naturalists Alike By Randle C. Rosenberger M. D., Professor of Hygiene and Bacteriology, Jefferson Medical College, Philadelphia, Pa. https://archive.org/stream/foreststream861916newy/foreststream861916newy_djvu.txt

The uni.xkcd version of this comic also just shows the turtle like this article. So much for uses two April Fools comics against each other ;) 172.70.114.77 22:44, 1 April 2022 (UTC)

I ran the MP3 through Amazon Transcribe. It can do only 4 hours at a time, so I had to split the original file. I went from start to 03:59:59, 03:59:59 to 07:59:58, and 07:59:58 to end. Amazon Transcribe also gave me some subtitle files (index 1). They have time codes in them. So if someone wanted to note the times of the little quips, and host the audio file somewhere where links to the middle of the file can be generated (like YouTube), that could be cool. Below are the transcriptions for analysis. Replace X with 1, 2, or 3; and replace Y with json, srt, or vtt. Pgn674 (talk) 23:15, 1 April 2022 (UTC)

https://pgn674.s3.amazonaws.com/xkcd-2601/xkcd-2601-X.Y
No need to host anything special. Let's say we want to jump to time code 02:35:14.840 from the vtt subtitle file #1 (line 7084, subtitle 1771). 2*60*60+35*60+14=9314. Subtract a few seconds, and make a link like this. Click here to learn about turtle noises: https://xkcd.com/2601/radio.mp3#t=9310 Pgn674 (talk) 23:48, 1 April 2022 (UTC)
I went and found all mentions of "turtle", extracted those lines, and generated links to them. Programmatically. If anyone wants to go through and do some manual review and fine tuning, go ahead. Pgn674 (talk) 00:57, 2 April 2022 (UTC)

I threw Adobe Premiere Pro at it: https://anonfiles.com/pbYfK7Sax4/radio_csv; and https://anonfiles.com/35YbKeScxe/radio_txt are the results. Note: these transcribe until 07:01:28:19. I am currently in the process of making APP suffer more and churn out the last two hours. --ẞ qwertz (talk) 23:54, 1 April 2022 (UTC)

So... what language is this? I'm hearing: PENUP, PENDOWN, SETHEADING (N) (N), SETXY (N) (N), FORWARD (N) - all of which are standard LOGO commands. But I'm also hearing something that sounds like CUBIC (N) (N) (N) (N) (N) (N), though it could also be QBIT, or text-to-speech for something like "^3". Either way it's NOT a standard LOGO command, so suggests it's a variant. Does not seem to be KTurtle, POOL, UCBLogo. QLogo, FMSLogo, and then I got bored searching. --172.69.71.91 00:37, 2 April 2022 (UTC)

In the automatic transcription it has "Two cubic colon X one colon Y one colon X two"... which would be TO CUBIC :X1 :Y1 :X2 ... so it is defined above. 162.158.107.230 01:15, 2 April 2022 (UTC)
Yes, some of the commands seem to be defined at the top. CUBIC at the top, SQUARE maybe somewhere else. So a shortcut to decyphering it might be to just extract and render all the cubes from the "CUBIC" and "SQUARE" commands, given their values. But what format are the cubes? Are they even the coordinates of cubes? For both commands, the six numbers seem to be in the format A B A B A B where the As and Bs are similar or even in some cases identical, which seems a strange thing for a cube:
SetXY -443 412
PenDown
Square -443 405 -443 397 -444 390

The definition seems to be something like:

ToCubic : X1 : Y1 : X2 : Y2 : Ex : Ey --- Parameter definitions?
local Make " X0 XCor  --- Local variable definitions?
Local Make " Y0 YCor
Local Make " ErrX1 Lerp : X0 : X 0.25
local Make " ErrY1 Lerp : Y0 : Ey 0.25
Local Make " ErrX2 Lerp : X0 : Ex 0.75
Local Make " ErrY2 Lerp : Y0 : Ey 0.75
IfElse
  Or
    LessP : picks error Dist : ErrX1 : ErrY1 : X1 : Y1 
    LessP : picks error Dist : ErrX2 : ErrY2 : X2 : Y2
[
    Local Make " Qx0 mix : X0 : X1
    Local Make " Qy0 mix : Y0 : Y1
    Local Make " Qx1 mix : X1 : X2
    Local Make " qy1 Mix : Y1 : Y2
    Local Make " Qx2 mix : X2 : EX
    Local Make " Qy2 mix : Y2 : Ey
    Local Make " Lx0 mix : Qx0 : QX1
    Local Make " Ly0 mix : Qy0 : QY1
    Local Make " Lx1 Mix : Qx1 : Qx2
    Local Make " Ly1 Mix : qy1 : Q
    Local Make " PmX Mix : Lx0 : Lx1
    Local Make " PmY Mix : Ly0 : LY1
    Cubic : Qx0 : qy0 : Lx0 : Ly0 : PmX : PmY
    Cubic : Lx1 : Ly1 : Qx2 : Qy2 : Ex : Ey
]
[
    SetXY : Ex : Ey
]

Least, that's what it sounds like, but I suspect round brackets and suchlike are not spoken aloud :( --108.162.221.95 01:54, 2 April 2022 (UTC)

Maybe it's implementing a cubic spline interpolation, not a tridimensional cube. 172.70.131.214 11:08, 2 April 2022 (UTC)

Feels like the speech processing is lossy, so generating the code will be a lengthy labor of love transcribing it, then debugging it, trying to fill the gaps. The code may also have been fed through an automated "Bob Ross filter" which may have lost even more data. --172.69.71.91 00:37, 2 April 2022 (UTC)

About a quarter of the way into the text is the line "You know, I'm beginning to suspect it's turtles all the way down!" 162.158.78.215 00:46, 2 April 2022 (UTC)

it's concerning that the only real way we'll be able to figure this comic out is to compile the entire 9 hour computer-generated voice speech. youtube.com/watch?v=miLcaqq2Zpk (talk) 01:40, 2 April 2022 (UTC)

Anyone actually doing any transcribing of this audio text is a true April Fools' fool, hence the reason to release this on April 1st. But I'd still like to see what the Fools' come up with :-D --Kynde (talk) 21:26, 2 April 2022 (UTC)

I'm moving all things about audio transcription here: 2601: Instructions/Audio Transcript, both the real transcript and peoples very long comments in the main discussion, to keep the main page short and keep loading time down. The comments from here go in the discussion for that page --Kynde (talk) 20:35, 2 April 2022 (UTC)

OMG, fond memories of LOGO! I'm in a loud bar at the moment so I can't listen, and I'm not listening to NINE HOURS anyway, LOL! Everybody DOES realize, someone needs to extract the program and run it in LOGO, right? I would guarantee this draws something interesting and/or stupid. :) NiceGuy1 (talk) 03:27, 2 April 2022 (UTC)

I found a GitHub Repository for transcription. May be of use to you guys for adding more info and citations to this Wiki. By the way, I didn't know this wiki existed. I don't want to create an account for it right now so good luck guys ;-; 04:12, 2 April 2022 (UTC)

I tried running some code through "ucblogo" on a Linux distro, but didn't get very far with it. ---Tim 04:16, 2 April 2022 (UTC)

Given that the audio is generated by text-to-speech, could a source-aware speech-to-text work better (fewer errors and less manual correction) than a generic one? For example, finding the right text-to-speech, extracting a sound for each phoneme, and then searching for near-identical snippets of waveform, seems like it could potentially be more reliable than the generic neural nets which are primarily trained for real human speech. Or even training a neural net on the same text-to-speech source, with a big block of sample data, if that would help distinguish homophones. Presumably someone here is good enough at this sort of thing to try that? Sqek (talk) 10:05, 2 April 2022 (UTC)

I think that the original comment at the top is the best approach. Using the speech-to-text data posted yesterday, and doing some simple regsubs, I can get it into good enough shape that I can proceed to transcribe the whole program by editing the file while listening to the audio, in real time. "In real time" means nine hours to correctly transcribe the whole thing. So any other approach would have to do better than nine hours. Plus if somebody put a little effort into organization, the transcription can be parallelized and so completed in nine hours / N transcribers. ---Tim 172.70.38.41 13:10, 2 April 2022 (UTC)

I was helping with this last night, and here are the major steps we've done to interpret the code and who has helped, I think.

  • Pgn674 Used AWS to make a transcription of the audio, which we have been building from
  • 172.68.118.59 Transcribed the critical functions at the top of the transcription
  • theinternetftw Found a working interpreter and set up a collaboration space at a GitHub repo, and has since been maintaining the code
  • theinternetftw Also transcribed the first hour and got us our view of a partial picture
  • somebody1234 Got a messy but runnable version of the entire transcription and a view of the entire picture with errors
  • Many people are transcribing bits of audio and submitting to GitHub. Here is the list of contributors

Mannerisky (talk) 15:06, 2 April 2022 (UTC)

I have changed the image to that which is seen on xkcd when loading the comic. It has not been updated on this page yet as of when I write this. But the turtle is of course not the comic, but a placeholder for those webcrawlers that would fail when trying to download the radio button. I have also added info on this in the current explanation. As I have made a link to a new sub page for the looong audio transcript and removed all of that from this page and discussion and put it here: 2601: Instructions/Audio Transcript --Kynde (talk) 21:38, 2 April 2022 (UTC)

I started planning to write some code to figure this out, but moved on to other things after a few hours, due to psychological issues I have. The draft just runs the audio through the start of a random speech to text model. I trained a tokenizer around the logo code but didn't move farther. There are a lot of possible next steps, some of which others have mentioned. A simple approach would be to finetune the model around the hand-transcribed data. https://colab.research.google.com/gist/xloem/4310a26b6c9d13adac14307b948157d3/untitled4.ipynb 172.70.114.147 23:04, 2 April 2022 (UTC)

Any plans to exkcd the "real" comic that gets drawn by the LOGO code in the audio? I mean, I recognize, e. g., the Mars rover and Ursa Major, but what's the significance of the vacuum decay here, for instance? Nitpicking (talk) 01:18, 3 April 2022 (UTC)

Now that the project is complete, we should add the resulting image on this page (not just a link to github). It'll be what folks are looking for first. And then we can start identifying the many references in the picture and turtle quotes. Mannerisky (talk) 04:26, 3 April 2022 (UTC)
well, i added the picture. youtube.com/watch?v=miLcaqq2Zpk (talk) 08:08, 3 April 2022 (UTC)
Vacuum decay is the total annihilation of the observable universe, which (in theory, depending on details we don't yet know) could happen at any point and at any time and would expand at the speed of light to clobber any space it reaches. Since it's limited to the speed of light, I guess it wouldn't affect regions of the universe that are receding faster than that. So, it's a bit of irony contrasting the happy picture. See https://en.wikipedia.org/wiki/False_vacuum_decay . For an even better explanation, try Katie Mack's excellent book, https://www.amazon.com/End-Everything-Astrophysically-Speaking/dp/198210354X 172.70.110.65 14:13, 6 April 2022 (UTC)

It was wonderful watching all of this unfold. Great work everyone. I don't have an account here, nor on github, but I thought I'd mention that the makesvg.py uses the ':=' operator which was introduced in python 3.8. Not all of us have it on our creaky old machines. Maybe add a comment in the usage at the top of the file? Or better, refactor the .py? -- 172.70.100.4 14:39, 3 April 2022 (UTC)


Is there a trick to making it work? I've tried both Firefox and Chrome. I hear the narration and can toggle the mute, but it never draws the picture for me. I have enabled JavaScript and I have disabled Privacy Badger, NoSCript, and uBlock Origin and still no joy. I did find the final drawing so I've seen the animation via GIF. --108.162.221.221

Signing with triple tilde puts the WRONG IP address for me! My IP is NOT 108.162.221.221, my IP is 47.186.56.37. What gives????
--108.162.221.221
Just FYI, your registered IP (like mine) is probably from the (regional?) gateway that mediates between you, at your true and current internet-facing IP, and the serving server. It's not something for you to really worry about, but you asked.
i'm trying to find a way to say this that doesn't sound condescending, but do you actually think the comic draws the picture or are you using https://benediktwerner.github.io/xkcd-2601-drawer/ ? if it's the former, the comic does not draw the picture. if it's the latter, you have to click the "use the latest code" button and *then* click draw. again, i know that sounded super condescending, pls don't think i'm trying to be mean. New editor (talk) 05:24, 4 April 2022 (UTC)

does this comic *technically* feature beret guy, ponytail, etc or not. they're not *in* the comic, but it could be said to feature them. New editor (talk) 05:31, 4 April 2022 (UTC)

What is
CUBIC
? GcGYSF(asterisk)P(vertical line)e (talk) 05:45, 4 April 2022 (UTC)
A function defined above (both in the transcript and, partially, in this Talk page) that is there to define certain smooth lines via a cascade of interesting LOGO procedural code, including branch-tests, that I wasn't even aware could be done until I started to read it.
(I mean, I didn't even know LOGO used Polish Notation, having last practically dabbled with it on the probably vastly more limited interpreters that ran on BBC Microcomputers at school, back in the early '80s. You could define procedures with params, but I can't remember this syntax, nor any tests available that seem to suggest recursive tests until the finest changes do nothing.)
That was at my first glance, I've avoided the pages until most of the fuss died down because I could see a lot of work being shovelled in, by others, and I knew I couldn't add much but confusion. But I now think I can take leisurely ride through the code and see what I can personally pick up from it. (Cheers to the army of volunteers that mobilised to make this possible, BTW!) 162.158.159.11 20:56, 4 April 2022 (UTC)

The inserted comments don't seem to just be facts about turtles - they also include 'Rossisms' - e.g. "I've just covered the entire canvas in a layer of light."172.69.79.153 08:35, 4 April 2022 (UTC)

The explanation should reference the World Turtle (https://en.wikipedia.org/wiki/World_Turtle) in regard to the finished image.172.69.79.153 08:46, 4 April 2022 (UTC)

I hope that's Cory Doctorow in the hot air balloon. 172.70.110.209 13:35, 4 April 2022 (UTC)

I don’t have an account, but I wanted to add that if you are subscribed to email updates (by clicking email on the xkcd website) the update reads: “Sadly today's comic is best views on the web” 162.158.107.198

Narrative vs. code[edit]

There should be some statement that there's code and narrative mixed within the transcript; you can't just hand the whole thing to Logo and expect it to work.

(Unless, of course, there's some way of telling Logo to ignore a block of text that wouldn't be spoken when you actually read the annotated block. In which case, the transcript needs to be so-annotated. I doubt it, though.)

-- Dtgriscom (talk) 10:25, 4 April 2022 (UTC)

The transcript on GitHub prefixes narration by `;` which turns it into a comment that is not parsed by LOGO. It would be cool to have this read out loud like it seems to have been designed: "Bob Ross" talking about painting while "painting" using logo. It'd be something like "Narrate, execute code snippet, narrate, excute code" until the entire picture is done. I noticed, for example, that he talks about drawing a "happy little tree" in between a section of code that, surprise, draws a tree. 162.158.222.151 11:23, 4 April 2022 (UTC)
Good thing to notice, and now we have two topics:
1. What the transcription page should show. Big, big bonus points if we could have a transcript that, when fed to a "text to speech" tool, would produce exactly what the comic's audio track includes (e.g. no "semicolon Happy Little Tree here")
2. What the output animations should include. What if you'd see a blank canvas, and hear the AI-Bob-Ross narrate, and then watch the code execute and draw? Then, more narration, then more code executing? You could even have the code sections be read out loud, and see the results in real time, It would take a lot of patience to watch the results. (I ain't gonna do it, though...)
-- Dtgriscom (talk) 12:14, 4 April 2022 (UTC)

One line in the narrative, "I read in the L.A. Times this morning that 42,000 Mazda cars were recalled because of a spider problem. Really makes you think doesn’t it?" could be refering to https://xkcd.com/2600/, namely "Will I have to start worrying about spiders after Tuesday?"

162.158.222.39 13:55, 4 April 2022 (UTC)

No, it actually references a thing that happened in 2014, because Mazda's cars are for some reason spider magnets. 162.158.222.157 06:58, 5 April 2022 (UTC)