6 ms·
A JavaScript Port of the 1986 Amiga Juggler Raytracer
- guru_meditation 11y agoFor some context, this was the first raytracer that ran on any personal computer. Some more context here: http://home.comcast.net/~erniew/juggler.html http://home.comcast.net/~erniew/juggler.html and a bit more here: http://www.pouet.net/prod.php?which=10776 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.
- azakai 11y agoI trust you are accurate because of your username.
- vardump 11y agoYou do? I think I see blinking red bars around his username...
- abdias 11y agoAh yes, I think this was one of the first things I looked for this in particular at the first run when I just got my first Amiga. Brings back good memories!
- orionblastar 11y agoThe Juggler showed off the Amiga graphic abilities. It is what helped sell some of the 1986 and 1987 Amiga computers. 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.
- vardump 11y agoA few years later 1992 "State of the Art", Spaceballs demo shows off Amiga 500 pretty well. That whole thing fits on 880 kB floppy and it's rendered realtime. https://www.youtube.com/watch?v=89wq5EoXy-0 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=PPoYzwib7JQ https://www.youtube.com/watch?v=PPoYzwib7JQ
- guru_meditation 11y ago9 Fingers "making of" video, where the Spaceballs dudes videotaped their highschool friends for the dance shots: https://www.youtube.com/watch?v=WgriMuXZ3QY 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.planet-d.net/dancer.html 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 http://fullscream.com/wp-content/uploads/borzysko.txt Raw #5 diskmag: http://janeway.exotica.org.uk/release.php?id=9511 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..
- aidenn0 11y agoDid those run on a stock Amiga 500?
- guru_meditation 11y agoYes, this ran on an 1987 Amiga 500 with the Commodore A501[1] 512K RAM expansion. This means: * 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 http://amiga.resource.cx/exp/a501 [2] http://en.wikipedia.org/wiki/Amiga_500 http://en.wikipedia.org/wiki/Amiga_500 [3] http://www.exotica.org.uk/wiki/Skid_Row_%28old%29 http://www.exotica.org.uk/wiki/Skid_Row_%28old%29 [4] https://www.youtube.com/watch?v=uqfcrViBGn8 https://www.youtube.com/watch?v=uqfcrViBGn8
- Zelphyr 11y agoSome of the amazing capabilities of the Amiga were influenced by one of its architects: Carl Sassenrath. He has since gone on to create the Rebol language which is even more astounding once you begin to look into it. 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.
- guru_meditation 11y agoThe hardware owes it all to Jay Miner and Ron Nicholson (rhn). Jay Miner passed a long time away from a long term kidney condition and is still out there doing lots of stuff: http://www.nicholson.com/rhn/photo-cv.html 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.
- FeepingCreature 11y ago> Jay Miner passed a long time away from a long term kidney condition and is still out there doing lots of stuff Like he'd let a little thing like death stop him! :)
- guru_meditation 11y agoHa! :) Sorry, meant to write "rhn is still out there", but I dropped I replied to hastily and by the time I figured it out it was too late to edit my post..
- Syssiphus 11y agoI don't know if he is still selling them, but: http://www.frogpondmedia.com/dbv/index.html http://www.frogpondmedia.com/dbv/index.html 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.
- donatj 11y agoI wish he hadn't made so many modifications.
- jheriko 11y agoi'm surprised to see so much badness in the original code. 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...
- guru_meditation 11y agoI just realized I can't find the original code on this guy's website but I have the extracted Amiga disk image from a public domain disk circulated at the time... so, here's the annotated 1987 K&R C code on pastebin for comparison: RT1.C http://pastebin.com/67KWYV3p http://pastebin.com/67KWYV3p RT2.C http://pastebin.com/pc3Uq2Xd http://pastebin.com/pc3Uq2Xd RT3.C http://pastebin.com/v4Qx0gTD http://pastebin.com/v4Qx0gTD
- chipsy 11y agoFor what it was aiming to do, I think it makes a lot of sense, albeit it might be a little bit too factored for the data(e.g. passing in the whole world to functions called only once). 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.
- jheriko 11y agoi mean stuff like the wonky reflection code and checkerboard logic... its a bit 'special', even for a proof of concept. its unexpected given the apparent intuition for rendering/geometry/maths from the simple, yet clever animation used.
- deleted 11y ago[deleted]
- peterashford 11y agoHeh. I thought it was going to be animated.
- szimmer1 11y agoThis has nothing to do with the Amiga, but shameless plug for a cool in-browser ray-tracer we made for a school project http://camargo.github.io/tracejs/#/ http://camargo.github.io/tracejs/#/ 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!
- david-given 11y agoIf you want the other extreme, these days you can do real-time raytracing entirely in an OpenGL shader: https://www.shadertoy.com/view/XdfXDB https://www.shadertoy.com/view/XdfXDB (There's no geometry in that scene --- the shader is run for each pixel independently!)
- TazeTSchnitzel 11y agoIt'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.
- mrspeaker 11y agoThey should have just taken a still of the original and pasted it as a png. Would have been easier, and requires less CPU. But I don't think that was the point of the whole exercise.
- WhitneyLand 11y agoIt'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. 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.
- indypb 11y agoProject Amiga Juggler: http://meatfighter.com/juggler/ http://meatfighter.com/juggler/ Step by step tutorial in Java.
- wiso 11y agoMultithreaded ray tracing C# version: https://github.com/wieslawsoltes/rt https://github.com/wieslawsoltes/rt