This time I wrote a Quaternion Julia fractal raymarcher using the Hubbard-Douady distance estimation and tried to wrap the all thing with a nice design.
Hope you like this first entry to JS1K and appreciate the efforts.
PS: It works at a good 20fps in Firefox on my 2yo machines.
That is really impressive. I wish the guy would release some notes about how he did it, or what his code means...
Edit: I started looking into it. He does some really bizarre things, like having all of his assignments and statements in the parens of a for loop, assigning Math.cos to $, and some tricky bit ops. Unfortunately, I don't think I understand the math well enough to totally understand it.
As I understand it, the trig calls are just to establish the camera position and direction. The rest of the calculation (the two inner loops) is marching along a ray to find a depth value.
I can't tell you guys how happy this makes me, it is the kind of programming that I really think should be done more often because it really makes you a better programmer to be able to work within such a restrictive environment.
Some of the demos are absolutely stunning for their size. I'm more and more convinced that javascript will be the dominant 'starter' language for new programmers in the future and these small programs are just the right size for enthusiastic kids to pry apart and learn from.
I've found trying to squeeze my demo down really addictive.
My first version was about 990bytes, my second did the same stuff in 934. I then spent about 6 hours trying to squeeze a blur routine into the last 90 bytes. I've now got everything I want in and I've got 8 bytes to spare.
Of course, now I'm wondering what I can get into those last 8...
I've only just submitted the last verion (with blur) so it's not on yet but the previous one is here:
http://js1k.com/demo/59
I just submitted mine! It's a shortened version of this (don't click if using firefox on linux because of bug #550845): http://cs.uiowa.edu/~mltucker/js/chaos/ ... although bit simpler and without jquery of course.
It runs super slow on Firefox, it does much better in Chrome.