[HN Gopher] Human Shader ___________________________________________________________________ Human Shader Author : bpierre Score : 230 points Date : 2023-07-18 22:23 UTC (2 days ago) (HTM) web link (humanshader.com) (TXT) w3m dump (humanshader.com) | whalesalad wrote: | this is like amish folding@home | LectronPusher wrote: | 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. | jabbany wrote: | It's really interesting seeing the (what I assume are) error | pixels. | kens wrote: | 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. | poly_morphis wrote: | 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. | cvoss wrote: | 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. | bee_rider wrote: | 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). | kens wrote: | 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 | PicassoCTs wrote: | Hello, my name is Inigo Quilez, you skilled my father, | prepare to draw half the shader on shadertoy :D | [deleted] | bagels wrote: | They already know the right answer for each pixel, | presumably though? | gregw134 wrote: | The errors (wrong colors) colors is the charming part to | me. | fdsakljvalkj wrote: | I don't know, if they were aiming for perfection you'd | think they'd just use a computer. | sb057 wrote: | I think something like this would actually make for a really | interesting 3rd grade class project, with each student | contributing a few pixels. | jabbany wrote: | 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) | mattsan wrote: | This is so genius - if I ever become a teacher I'm doing | this. | Synaesthesia wrote: | Quite enjoyed this, and it wasn't too much computation, about 10 | minutes worth. | causality0 wrote: | If you like this you will enjoy decompressing Pokemon by hand: | | https://youtu.be/aF1Yw_wu2cM | | https://www.youtube.com/live/OBVwnUH8Eek?feature=share | starmole wrote: | Amazing experiment from the man who brought us shadertoy. | Kuinox wrote: | Now I want to see the results of one done by chatgpt. | agys wrote: | For the lazy: pick a pixel in the sky to skip to section D (less | calculations)... | ygra wrote: | You get a random pixel assigned, so you cannot choose. | FreshStart wrote: | And yet another task outsourced to the public, abusing human | brains for gfx calculations and hn post as api. Crypto mined the | matrix style. | barelyauser wrote: | I claimed a pixel and computed it using a calculator. | Arch-TK wrote: | People were too quick to claim so I wrote a hacky script to try | to auto-claim in a loop and then ended up with a PNG in my | terminal, beware, save the response to the request if you're | going to automate the claiming part. | | Well I got another pixel anyway. | thelastparadise wrote: | 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. | fgeahfeaha wrote: | Next year the worksheet is just the rendering equation and a list | of vertices/lights/transforms | geon wrote: | A bit too much to ask from a user. | | It could be split up into easier steps, like adding a pair of | 4-digit numbers or multiplying a pair of 1/2 digit numbers. | jamal-kumar wrote: | I mean yeah but it's rendering | | Let it cook | webdevver wrote: | 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. | dahart wrote: | 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. | [deleted] | mirkodrummer wrote: | It can be done. To submit a pixel you have to take a photo | proof of your calculations on paper, it's already "moderated" | dahart wrote: | 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. | quadrature wrote: | Interesting, how come there are obviously incorrect pixels | ?. | simplicio wrote: | Think they're just people making math mistakes (one of | the reasons why we don't usually implement shaders by | having people compute values by hand). | | If you compare them to nearby "correct" pixels, they | usually just have one of the three RGB values that are | sharply different. | eat_veggies wrote: | the moderators are checking that the pixel was computed | by hand, not that it's correct | dahart wrote: | 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? | sb8244 wrote: | Validate is slightly vague here. I interpreted it as "so | we can validate your work [was done by hand]." | dahart wrote: | Fair enough, I guess it is open to interpretation. The | language on the page has changed now, the quote I posted | is no longer there. | [deleted] | 2023throwawayy wrote: | > Error: All pixels are claimed, please wait! | 3cats-in-a-coat wrote: | I see a missed opportunity to remove the math and instead give | people a prompt, and one pixel to shade, and then refine with | each next pass. | | Human generative reverse-diffusion AI. | mft_ wrote: | Not dissimilar to /r/place[0] - which gets messy. | | [0] https://new.reddit.com/r/place/?screenmode=preview | 3cats-in-a-coat wrote: | Generative AI would also be messy if: | | 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. | vardump wrote: | That seems like a... lot of work. | | Shouldn't have claimed a pixel. | M4v3R wrote: | 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. | zellyn wrote: | 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! | [deleted] | chasing wrote: | Pretty soon even tasks like this will be done by computers. | atleastoptimal wrote: | Fun, but it would be interesting if on the worksheet there was an | explanation for each calculation | jheriko wrote: | [flagged] | cdelsolar wrote: | 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.. | | edit: https://imgur.com/a/UO37L1b | fgeahfeaha wrote: | woah woah dude, spoilers! | ainiriand wrote: | How are they planning to get rid of errors? | LoganDark wrote: | by eliminating the pixels where the proof-of-work is incorrect | adamrezich wrote: | 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! | ygra wrote: | 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. | eerikkivistik wrote: | I suppose by using a non-human shader and comparing the results | :D | bmacho wrote: | I suppose they won't use a non-human shader, since it is the | whole point. | ainiriand wrote: | Well then why is showing so many mistakes? It makes the | experience worse. | Sharlin wrote: | A stochastic approach would work quite well. Have each pixel | computed by _n_ people and take the mode. | thih9 wrote: | 73% in 94h at the moment. | | This is 0,000002157210402 FPS so far. | endominus wrote: | I'm sure that'll be fixed by release. You know what they say | about premature optimization. | m00dy wrote: | very interesting exercise,, | jovial_cavalier wrote: | I love this. It would be super cool if I could see other people's | worksheets, but the image hosting might be a nightmare | pjs_ wrote: | They could just use a computer to do this? | superb_dev wrote: | Sure but that's not the point? | Verdex wrote: | They are. Computer was an occupation filled by humans long | before it was mechanized. | shdon wrote: | 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 | Sharlin wrote: | 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! ___________________________________________________________________ (page generated 2023-07-20 23:00 UTC)