[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)