[Prev][Next][Index][Thread]

Contest status update



A brief status update on the efforts of the Dylan Hackers to kick
booty in the ICFP 2000 programming contest
(http://www.cs.cornell.edu/icfp/).

When we started out, Andreas and I took over the ray-tracing engine,
and left Bruce to work on language engine.

Bruce used the d2c lexer as a starting point, and successfully
produced a lexer for the language we had to work with.  In the
process, he found (and fixed) a bug in the d2c lexer that made
floating-point numbers with exponents (2.5e15) totally worthless...
This has been fixed, not only for the contest code, but also for d2c
:-)

After Andreas packed it in, I worked long into Saturday evening, and
finally managed to render a white circle in the middle of a black
background at about 7:30 Sunday morning.  After I woke up, later, I
started work on planes (which were a lot easier) and the ability to
draw more than one object at the same time...

Then, out of nowhere, in came Gabor Greif, who dropped a beautifully
working compiler/interpreter combination right into our laps; it was a
matter of an hour or two to bolt it onto the renderer, and in one
swell foop, we could now render stuff from our very own test files.

Meanwhile, Bruce was not idle... he noticed that the performance of
our matrix math, to put it bluntly, sucked.  A hand-unrolled rewrite
to avoid all the GF dispatching later, and the renderer moved 40 times
faster.

I returned to work shortly therafter and (rather quickly) got shadows
working, after blundering headlong into the 'surface acne' problem,
and ending up with an image that looked distinctly pointillistic...

It was at this time that we noticed that there were several weird
visual artifacts, and after careful investigation, we found enough
bugs in the (rewritten) vector/matrix stuff to warrant a rewrite.

After rewriting and shaking the bugs loose, we ended up with, wonder
of wonders, something that not only worked, but duplicated the example
images with near-pixel-perfect accuracy.  The 'near' part went away
after we adjusted the rays to shoot through the center of each pixel,
rather than the upper-left-corner.

Our current projects are:
igor:  Make reflections work properly, then moving on to cones & cubes
Bruce: Thinking about CSG stuff.
Gabor: An simplifier and partial-evaluation system for the compiler.
Andreas: Help us finish up later today.
Eric: Better think of something to do so that he can get the free trip
      to Montreal...

Feel free to join the fray!
-igor, back to work...


Follow-Ups: