For some context, this was the first raytracer that ran on any personal computer.<p>Some more context here:
<a href="http://home.comcast.net/~erniew/juggler.html" rel="nofollow">http://home.comcast.net/~erniew/juggler.html</a><p>and a bit more here:
<a href="http://www.pouet.net/prod.php?which=10776" rel="nofollow">http://www.pouet.net/prod.php?which=10776</a><p>The source code is refreshingly simple and easy to read: both the original C code and the ported JS code.
The Juggler showed off the Amiga graphic abilities. It is what helped sell some of the 1986 and 1987 Amiga computers.<p>Before that it was a bouncing checkered beach ball. Other computers did their own bouncing ball, but the Amiga could multitask and had multiple bouncing beach balls, each program running on its own. I think you could have multiple jugglers as well.
It's pretty cool to click on the link and be able to run a ray tracer on your phone. Maybe more exciting because you get the drama of it taking a couple seconds to render.<p>Ironic that compute has come so far yet real time movie quality graphics are still only a dream.<p>We have GPU based ray tracing, and if you stuff a 44u rack full of them it becomes more tolerable, but still nothing approaching 24fps for complex scenes and effects,<p>This has a lot to do with the content being more complex compared to say, what was done for a movie like Tron. But it's more than that. How many other problem domains could eat 5 orders of magnitude of performance increases and easily make use of it for everyday consumer applications? That still might not even be enough to get us out of the uncanny valley.
This has nothing to do with the Amiga, but shameless plug for a cool in-browser ray-tracer we made for a school project <a href="http://camargo.github.io/tracejs/#/" rel="nofollow">http://camargo.github.io/tracejs/#/</a><p>Rendering times become exponentially slower with more objects in the scene (100% native Javascript, hence 0 hardware acceleration) but it's fun to play with if you're in the mood!
It's interesting that they chose to port the source to JS by hand, rather than compiling the C to asm.js with emscripten. It'd probably have been easier, and the resulting code faster, if this approach was taken.
i'm surprised to see so much badness in the original code.<p>it kind of takes away from the rose tinted view i have of the past being dominated by awesome programmers who got the most out of the hardware...