I had a lot of fun doing this, and while doing the arithmetic, figuring out what the shader algorithm is actually doing. Such a great idea, turning internet users into the world's slowest and most inaccurate GPU
It took me 10 minutes to do the whole computation by hand, so I wouldn't say it's a LOT of work. At the same time I believe this is also one the points of this experiment, to show how much work goes into computing a single pixel value for a very simple 3D scene which makes us appreciate more that our GPUs can do this work billions of times per second.
It's double the work if you skim the instructions too fast and pick your own empty pixel and compute it, only to find that you need to be assigned one!
I mean if you want to do it perfectly with no chance of error, let a computer do it, or just find the reference image. This is communal mathematics, and the errors are a part of the experience.
Saying the mistakes make this worse is like saying "I'd really enjoy spaghetti, I think, but all the noodles are ruining it."
the final step in the worksheet provides an error correction heuristic and procedure:
> Thanks a lot for being part of the Human Shader, go find your pixel in the public canvas! Tip: if its color looks wrong to you, feel free to review your calculations and submit again with the same code!
By scrubbing through the duration I haven't found a single error pixel that has been corrected, though. Which is a pity, as they do stand out quite glaringly.
This was fun, I forget sometimes how silly all our grade school math worksheets used to be. I always had trouble showing my work for simple additions and multiplication, it's a bit easier when its a self motivated dunking on the GPUs.
It may take 4-5 days and 1000+ people, but it's definitely created a greater sense of community than any faster rendering system. I like looking over the different pixels and knowing that they represent some nerd-sniped engineer like me.
The author should implement an error correction system, where 1) the result is withheld from the display until a second corroborating calculation comes in, and 2) if there is disagreement, request an arbitration from a third user whose job is to pick which of the two is the best answer.
It is a bit odd; they specifically ask for the picture of the worksheet, and say they’ll check it. I wonder if the just haven’t gotten around to it yet. Automatic error checking would be nice (IMO just let multiple people do each pixel and take the most popular result).
They ask for the worksheet to check that you're not cheating. They don't check the pixel values. I think much of the charm of the image is seeing the errors.
By the way, there's more going on in the shader algorithm than you might expect. Here's an explanation of the worksheet:
u, v are coordinates relative to the center of the image
h is radius from center, squared
Section B generates the ball:
B3-8 generates the reflected color on the ball.
B9-11 applies the diffuse illumination to the ball.
B12 adds the illumination highlight.
Section C creates the ground:
C5 puts a shadow directly under the ball.
C13 is the cast shadow of the ball.
Section D creates the sky with a simple gradient
Section E converts the image from two-color to three-color
Or a story if anti-aliasing but getting each pixel computed multiple times and averaging the results. Over time the image should get better as the errors are diluted. It will significantly increase the amount of HPU time required, but with enough human processing units willingly taking part the wall-clock time might not be too badly affected.
Yes, I find it interesting to note the different types of errors. There are some random errors, but many of the errors seem to be repeated. It looks like a lot of people ended up in the wrong code path, resulting in blue/white pixels in the lower half, while fewer people made the reverse mistake (yellow pixels in the upper half). There are a lot of purple pixels in the upper right; I wonder what led many people to the same mistake.
Another interesting thing is to try to reverse-engineer the worksheet: section B is the sphere, section C is the ground, and section D is the sky. But then there's the lighting model, shadow, etc.
All of the pixels were already taken by the time I tried, but I did an "error" pixel (11, 26) just for my own pleasure.
Somehow I got RGB(255, 50, 194), which is different from the value posted on the chart. Actually, I'm not sure how originally they got 0, since G comes from R and B, which are both positive, and the expression is multiplication and addition.
Ah, I remember seeing some chinese summer math workbook shared online where the answers to each problem could be translated into a bit that could be plotted in a giant grid on the last page.
When completed, it would show a QR code, that upon scanning would mark completion of the workbook and show you the answer key. The implicit idea being you didn't have to be perfect, just good enough so the error-correction algorithm of QR codes was enough to pick up the final image. (Probably extra credit if you could figure out how to do as few problems as needed and then use EC to still figure out the secret link)
It's slightly older than 3rd grade, but for Pi Day 2022, Matt Parker marshaled a couple dozen students to spend a weekend computing pi by hand: https://www.youtube.com/watch?v=dtiLxLrzjOQ
I found it interesting working out what the different sections were on my own. I can't write shaders, but it was enough to roughly judge which parts were ground, sky, and sphere, and where the ground included the shadow. I didn't spot the ambient occlusion or lighting on the sphere, though.
It feels like a missed opportunity to not show each pixel's worksheet: It would be cool if you could click on each pixel, and it opens a PDF scan of that persons calculations.
Sadly you can’t do that on a site without having people post very inappropriate things, so it would require a human moderator, which I speculate makes it unlikely to happen.
The page does actually say they want to see intermediate results “so we can validate your work.” (Edit that quote has been removed now.)
But there’s no promise that they will. The photo feature may be more of an automated speed bump, a way to reduce silly answers and pixel spam, and let people self-select, than an active human moderation tool. Moderating is boring and expensive in time and/or money, why would anyone actually sift through thousands of hand-written pages of arithmetic?
Are you certain a human is inspecting the image? Or is this “moderation” currently automated?
Yes obviously it “can” be done, I’m suggesting it won’t for long, because there’s a big difference between submitting something to the site mods versus submitting something that is anonymously exposed to the public.
I’m saying this as the owner of a site where I made the mistake of allowing crowd-sourced image content to be anonymously served to others. It didn’t take long before not only was there NSFW content, but there was also illegal content.
* edit OH BTW I only just noticed this site was created by IQ, who has already dealt with this exact issue on ShaderToy and had to restrict and remove user submitted images due to abuse! The decision to not show people’s images is almost certainly intentional and by design.
This is a particularly fun exercise when you recall that the original "computers" were people doing arithmetic, not at all dissimilarly to what’s done here, just with less parallelism. Though they did at least have mechanical adders and multipliers!
".. Based on the unbelievably true life stories of three of these women, known as "human computers", we follow these women as they quickly rose the ranks of NASA..."
Sure they used their brains. But "brains behind the operation" is a term of art.
Is the McDonald's cashier the "brains behind the operation" because they count change as part of their duties?
Counting change accurately is very important to the continued successful operation of a retail establishment. But it's menial work.
Even Wikipedia agrees with me:
> Alan Turing described the "human computer" as someone who is "supposed to be following fixed rules; he has no authority to deviate from them in any detail."
I think the term "human computer" is extremely misleading without the cultural context behind the term, i.e. that these people were essentially doing 5th grade math worksheets all day. Reading numbers, plugging them into a calculator (yes, really), and writing down the results.
“The reason that these pre-electronic computation jobs were feminized is they were seen as rote and de-skilled,” says Mar Hicks, a historian and author of Programmed Inequality. It wasn’t true, though: “In a lot of cases, the women doing these computation jobs actually had to have pretty advanced math skills and math training, especially if they were doing very complex calculations.”
The work could require superhuman endurance, though. “They had to keep working eight hours a day doing the same equation over and over again—it must have been mind-numbing,” notes Paul Ceruzzi, author of Reckoners: The Prehistory of the Digital Computer.
If I take the words of Alan Turing then your interpretation of menial work, then programming is menial work too. You have fixed rules that you can't deviate from. Is all programming really menial? I would argue that it can be very mentally taxing, the same way math or any intellectual work can be.
At its bases, NASA employed nearly 80 black women as computers, says Margot Lee Shetterly, author of Hidden Figures. One of them, Katherine Johnson, was so revered for her abilities that in 1962, John Glenn asked her to personally verify the flight path of his first launch into space on the Friendship 7 mission. The astronauts didn’t trust the newfangled digital computers, which were prone to crashing. Glenn wanted human eyes on the problem.
“They had a tremendous amount of respect for these women and their mathematical abilities,” says Shetterly. “The male engineers often were not good mathematicians. So the women made their work possible.” Still, some friction existed. Women who asked for promotions got stonewalled or turned down: “For women who wanted to move up, who wanted to be supervisors—particularly if that involves supervising men? Not so much.”
The women wouldn't have been employed without the engineering work, but the engineering work wouldn't have been possible without these women. They were equally the brains behind getting things to space. A sizable number of these women later became programmers, because building the computers was seen as the really difficult task. Coding was dull work. Writing code that gets people safely to the moon and back was obviously trivial.
Over the course of the film, the three women cover a broader range of capabilities than just doing arithmetic, and that tagline is not unreasonable. I'm not being very specific on purpose - you should watch the film.
Los alamos used a room full of women for doing simulations when their IBM machine was out of order:
We needed a man to repair the machines, to keep them going and everything. And
the army was always going to send this fellow they had, but he was always delayed.
Now, we always were in a hurry. Everything we did, we tried to do as quickly as
possible. In this particular case, we worked out all the numerical steps that the machines
were supposed to do — multiply this, and then do this, and subtract that. Then we worked
out the program, but we didn’t have any machine to test it on. So we set up this room with
girls in it. Each one had a Marchant: one was the multiplier, another was the adder. This
one cubed — all she did was cube a number on an index card and send it to the next girl.
We went through our cycle this way until we got all the bugs out. It turned out
that the speed at which we were able to do it was a hell of a lot faster than the other way,
where every single person did all the steps. We got speed with this system that was the
predicted speed for the IBM machine. The only difference is that the IBM machines
didn’t get tired and could work three shifts. But the girls got tired after a while.
so someone can just write a script to generate the full image right? since instructions are the same for each pixel. Would make it easier to check your work..
What a great experiment. Math looked a bit daunting at first (pixel 22,34) glance but it really wasn't bad. Took me about 4 minutes in total to do the math.
Highly recommended for anyone who wants a chill afternoon challenge. And the best part is seeing the final image come together.
130 comments
[ 3.4 ms ] story [ 73.1 ms ] threadIt could be split up into easier steps, like adding a pair of 4-digit numbers or multiplying a pair of 1/2 digit numbers.
Let it cook
Shouldn't have claimed a pixel.
Saying the mistakes make this worse is like saying "I'd really enjoy spaghetti, I think, but all the noodles are ruining it."
> Thanks a lot for being part of the Human Shader, go find your pixel in the public canvas! Tip: if its color looks wrong to you, feel free to review your calculations and submit again with the same code!
It may take 4-5 days and 1000+ people, but it's definitely created a greater sense of community than any faster rendering system. I like looking over the different pixels and knowing that they represent some nerd-sniped engineer like me.
By the way, there's more going on in the shader algorithm than you might expect. Here's an explanation of the worksheet:
Another interesting thing is to try to reverse-engineer the worksheet: section B is the sphere, section C is the ground, and section D is the sky. But then there's the lighting model, shadow, etc.
Somehow I got RGB(255, 50, 194), which is different from the value posted on the chart. Actually, I'm not sure how originally they got 0, since G comes from R and B, which are both positive, and the expression is multiplication and addition.
When completed, it would show a QR code, that upon scanning would mark completion of the workbook and show you the answer key. The implicit idea being you didn't have to be perfect, just good enough so the error-correction algorithm of QR codes was enough to pick up the final image. (Probably extra credit if you could figure out how to do as few problems as needed and then use EC to still figure out the secret link)
If you compare them to nearby "correct" pixels, they usually just have one of the three RGB values that are sharply different.
But there’s no promise that they will. The photo feature may be more of an automated speed bump, a way to reduce silly answers and pixel spam, and let people self-select, than an active human moderation tool. Moderating is boring and expensive in time and/or money, why would anyone actually sift through thousands of hand-written pages of arithmetic?
2840 pages. Doesn't seem crazy. Page looks like it was written by hand? Next. At two pages per second it's less than half an hour of work.
Yes obviously it “can” be done, I’m suggesting it won’t for long, because there’s a big difference between submitting something to the site mods versus submitting something that is anonymously exposed to the public.
I’m saying this as the owner of a site where I made the mistake of allowing crowd-sourced image content to be anonymously served to others. It didn’t take long before not only was there NSFW content, but there was also illegal content.
* edit OH BTW I only just noticed this site was created by IQ, who has already dealt with this exact issue on ShaderToy and had to restrict and remove user submitted images due to abuse! The decision to not show people’s images is almost certainly intentional and by design.
This is 0,000002157210402 FPS so far.
Human generative reverse-diffusion AI.
[0] https://new.reddit.com/r/place/?screenmode=preview
1. You have no prompt.
2. You have 1 iteration.
Hence why I suggested prompt and multiple iterations. It's a very subtle tweak, but in aggregate behavior, everything is subtle and has huge effects.
".. Based on the unbelievably true life stories of three of these women, known as "human computers", we follow these women as they quickly rose the ranks of NASA..."
https://www.imdb.com/title/tt4846340/
> mathematicians that served as the brains behind one of the greatest operations in U.S. history
In this case, aren't they more like hands than brains?
The brains should be the ones who created the code. These people are just processing it, it's like manual labor.
They used their brains to perform the calculations, I don't see how you could see it otherwise.
Is the McDonald's cashier the "brains behind the operation" because they count change as part of their duties?
Counting change accurately is very important to the continued successful operation of a retail establishment. But it's menial work.
Even Wikipedia agrees with me:
> Alan Turing described the "human computer" as someone who is "supposed to be following fixed rules; he has no authority to deviate from them in any detail."
I think the term "human computer" is extremely misleading without the cultural context behind the term, i.e. that these people were essentially doing 5th grade math worksheets all day. Reading numbers, plugging them into a calculator (yes, really), and writing down the results.
Usually we call these mechanical turks?
The work could require superhuman endurance, though. “They had to keep working eight hours a day doing the same equation over and over again—it must have been mind-numbing,” notes Paul Ceruzzi, author of Reckoners: The Prehistory of the Digital Computer.
from [this](https://www.smithsonianmag.com/science-nature/history-human-...) article
If I take the words of Alan Turing then your interpretation of menial work, then programming is menial work too. You have fixed rules that you can't deviate from. Is all programming really menial? I would argue that it can be very mentally taxing, the same way math or any intellectual work can be.
At its bases, NASA employed nearly 80 black women as computers, says Margot Lee Shetterly, author of Hidden Figures. One of them, Katherine Johnson, was so revered for her abilities that in 1962, John Glenn asked her to personally verify the flight path of his first launch into space on the Friendship 7 mission. The astronauts didn’t trust the newfangled digital computers, which were prone to crashing. Glenn wanted human eyes on the problem.
“They had a tremendous amount of respect for these women and their mathematical abilities,” says Shetterly. “The male engineers often were not good mathematicians. So the women made their work possible.” Still, some friction existed. Women who asked for promotions got stonewalled or turned down: “For women who wanted to move up, who wanted to be supervisors—particularly if that involves supervising men? Not so much.”
The women wouldn't have been employed without the engineering work, but the engineering work wouldn't have been possible without these women. They were equally the brains behind getting things to space. A sizable number of these women later became programmers, because building the computers was seen as the really difficult task. Coding was dull work. Writing code that gets people safely to the moon and back was obviously trivial.
Which art?
We needed a man to repair the machines, to keep them going and everything. And the army was always going to send this fellow they had, but he was always delayed.
Now, we always were in a hurry. Everything we did, we tried to do as quickly as possible. In this particular case, we worked out all the numerical steps that the machines were supposed to do — multiply this, and then do this, and subtract that. Then we worked out the program, but we didn’t have any machine to test it on. So we set up this room with girls in it. Each one had a Marchant: one was the multiplier, another was the adder. This one cubed — all she did was cube a number on an index card and send it to the next girl.
We went through our cycle this way until we got all the bugs out. It turned out that the speed at which we were able to do it was a hell of a lot faster than the other way, where every single person did all the steps. We got speed with this system that was the predicted speed for the IBM machine. The only difference is that the IBM machines didn’t get tired and could work three shifts. But the girls got tired after a while.
https://calteches.library.caltech.edu/34/3/FeynmanLosAlamos....
edit: https://imgur.com/a/UO37L1b
Highly recommended for anyone who wants a chill afternoon challenge. And the best part is seeing the final image come together.
We'll start with inference, but maybe we'll eventually convince some folks to do a full training exercise.