A JavaScript Port of the 1986 Amiga Juggler Raytracer
home.comcast.net
home.comcast.net
Some more context here: http://home.comcast.net/~erniew/juggler.html
and a bit more here: http://www.pouet.net/prod.php?which=10776
The source code is refreshingly simple and easy to read: both the original C code and the ported JS code.
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.
https://www.youtube.com/watch?v=89wq5EoXy-0
A year later same group released "9 Fingers", also running on Amiga 500.
https://www.youtube.com/watch?v=WgriMuXZ3QY
I think Jannicke, the state of the art girl dated Paul (Lone Starr) at the time. They were all teens when they made this and Paul was one of the by far youngest democoders in the scene at the time.
Interview with Jannicke (look how young everyone is): https://web.archive.org/web/20050307132321/http://spaceballs...
More context in Borzyskowski's work: "THE HACKER DEMO SCENE AND IT'S CULTURAL ARTIFACTS" http://fullscream.com/wp-content/uploads/borzysko.txt
Raw #5 diskmag: http://janeway.exotica.org.uk/release.php?id=9511
One day I'll really take the time to write a properly researched history of this very unique era..
* 1MB RAM
* 256K ROM
* 7.16 MHz (yes, that's 0.007 GHz :)) Motorola 68000
plus a whole lot of custom chips [2]There were different ways of expanding the Amiga RAM and the demo became so popular it was reverse engineered by a popular cracking group Skid Row[3,4]., patched and re-distributed
[1] http://amiga.resource.cx/exp/a501
[2] http://en.wikipedia.org/wiki/Amiga_500
In some sense it's really like a 1.7 MHz machine. And that's being generous.
The master clock crystal oscillator on the motherboard was set to be 2 clock cycles per pixel and other chips clocks were derived from that.
Hence the CPU was set to 1/4th of master clock, so the European PAL[1] machines (a 50fps TV standard) actually ran slightly slower than the American NTSC[2] machines (a 60fps TV standard with a smaller vertical resolution).
I was the only one from my friends having a PC at home instead of an Amiga, but luckily we had lot of scener parties at their places so I got to learn lot about the system.
It was an environment ahead of its time with dedicated hardware for sound and graphics, pure multitasking even if lack of MMU meant occasional crashes and the whole libraries concept was great.
He's currently at Roku where I can only begin to imagine what he's working on. My only wish is that they'd replace the horrific BrightScript with Rebol.
http://www.nicholson.com/rhn/photo-cv.html
Notice how he was the guy behind the IWM (Integrated Woz Machine) for the Mac and the beautifully minimized Apple //c in addition to being one of the key persons in creating the essence of Amiga hardware magic: Denise, Copper and Blitter.
Carl Sassenrath and RJ Mical were super influential on the OS side, making a super lightweight preemptively multitasking OS with small components that messaged each other and the OS abstraction layers that the rest of the personal computing world will not see in the next 10+ years.
Dave Haynie, one of Commodores hardware engineers, films the last day at the Commodore plant. And the layoff party afterwards. Hilarious, informative, and sad at the same time.
http://www.folklore.org/StoryView.py?story=Five_Different_Ma...
(and lots of other pages.)
However, Ron Nicholson (rhn) is on the Mac case signatures, he also did major work on Apple //, so I find it strange that he is not mentioned anywhere on folklore.org . I think this is something worth researching..
Like he'd let a little thing like death stop him! :)
Ironic that compute has come so far yet real time movie quality graphics are still only a dream.
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,
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.
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!
https://www.shadertoy.com/view/XdfXDB
(There's no geometry in that scene --- the shader is run for each pixel independently!)
Step by step tutorial in Java.
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...
RT1.C http://pastebin.com/67KWYV3p
You can kind of tell that this is more "proof of concept" than "artistic triumph" because the scene itself is relatively bland stuff, with its most impressive aspect today being that the juggler actually animates somewhat like a person. Everything else is just a straightforward demonstration of the Amiga's compute resources and display capability. Since the output was always going to be a single prerendered animation, deep optimization probably wouldn't be worth it.
its unexpected given the apparent intuition for rendering/geometry/maths from the simple, yet clever animation used.