Not So Breaking News:

This is information that was previously posted in the Breaking News section.

Tue 8:00am EDT:  There was a slight bug in our renderer (and thus our images).  For instance, the golf ball should’ve been bright white but was showing up as a sort of dingy grey.  The images have been fixed.


Mon 10:43pm EDT:   The task documents have been updated to fix the surface equation for spheres (see below) and a few other things.  


Mon 10:13pm EDT:  The image reflect.ppm and the associated code reflect.gml had a bug (as did our sample renderer).  Sphere s1 (the cyan one) should cover the viewer obscuring the rest of the scene.  We’ve fixed our renderer and changed the scene itself, shifting the sphere up a bit to get rid of the problem and generate an image similar to the old one.  New code and image are on the examples page.


Mon 8:36pm EDT:  The surface equations for spheres is (still) wrong but only in the .html version.  (There’s a bug in the LaTeX to html conversion.)  See the pdf or ps versions and we’ll try to get it fixed in the next release of task.htm.


Mon 7:07pm EDT:  The network problems at Cornell should have been fixed.  (There was a flaky internal switch which we had to route around.)


Mon 2:41pm EDT:  The equation at the end of section 3.8 had a bug in it.  This is fixed in version 1.17 of the task documents.


Mon 1:56pm EDT:  A new example has been posted for Tier-1 that demonstrates the use of recursive functions.


Mon 12:58pm EDT:  Version 1.16 of the task description is up.  This fixes the previously mentioned bug regarding the Cylinders and Cones, corrects sloppy language about illumination vectors, clarifies how the rendering depth works, and corrects the text about light attenuation.  Also, there’s a new image on the examples page.


Mon 10:01am EDT:  The texture mapping equations for Cylinders and Cones are still buggy (sigh).  They should read as follows:  For Cylinder:  top (2u-1, 1, 2v-1)  bottom (2u-1, 0, 2v-1).  For Cone:  base (2u-1, 1, 2v-1).


Mon 9:30am EDT:  There were internal networking problems at Cornell that caused problems with the primary web site.  We’re sorry for the disruption.  For future reference, we suggest that you bookmark the Bell Labs quasi-mirror site and download copies of the task documents and submission procedure.


Sun 11:38pm EDT:  We’ve fixed the bug in equation (12) of section 3.5 in the latest task description (version 1.14).  (See previous entry.)


Sun 10:20pm EDT:  In section 3.5 (Lighting), there’s a bug in equation (12) which gives the attenuation for point lights and spotlights.  The “d3” (d-cubed) in the denominator should be a “d2” (d-squared).  We’re extremely sorry for this (and all) bugs.  Note that this bug was also in our implementation and thus showed up in two of the images on the examples page.  We have fixed the example images but have not yet fixed the task document.  We should have this fixed in version 1.14.


Sun 8:44pm EDT:  In section 3.8, regarding the ray direction, we had “If the upper-left corner of the image is at (x, y, 0) and the width of a pixel is D, then the ray through the jth pixel in the ith row has a direction of (x + (i+0.5)D, y - (j+0.5)D, 1).”  This is wrong.  It should read “the ith pixel in the jth row”.   This should be fixed in the latest version (1.13) of the task documents.


Sun 7:13pm EDT:  My FAQ entry for modi had a bug – it’s now fixed.  Also, we failed to (clearly) specify the types of the arguments to the light primitives.  It should be pretty clear that directions and colors are meant to be points and the other arguments are reals.  See the code on the examples page for uses.  Also, I added an FAQ entry on temporary files.


Sun 10:19am EDT:  Version 1.12 of the task description is online (here are the pdf and ps versions.)  This fixes both the sphere and plane surface coordinate mappings in Table 1.  A change log is at the bottom of the document.  Be sure to check the FAQ which has also been updated.  Old bug reports can be found here.


Sun 10:12am EDT:  There were lots of bugs in Table 1 (texture coordinates for geometric primitives.)   Most of these were fixed in version 1.11 of the task description, but the definition for the Plane is still wrong.  That line should read as follows:

(0,u,v)  maps to (u,v,0) (u,0,v) (NOTE:  I had this wrong here previously – 1.12 has it right.).  This will be fixed in version 1.12 of the task document.


Sun 10:03am EDT:  Version 1.11 of the task description is online (here are the pdf and ps versions.)  A change log is at the bottom of the document.  Be sure to check the FAQ which has also been updated.  Old bug reports can be found here.


Sun 7:25am EDT:  Overnight bugs:  the equation defining the surface of a sphere is wrong.  It should be something like (N * sin(360*u), N * (2 * v - 1), N * cos(360*u)) where N is 1/(length of the point = sqrt(4 * v^2 - 4*v + 2))  Oops!  That should’ve read (sqrt(1-y^2)sin(360u), y, sqrt(1-y^2)cos(360u)) where y = 2v - 1.  We will fix this in the next version of the task.  There’s also a bug in the definition of thc in section 5.2, paragraph explaining intersection of spheres.  The equation should be thc2 = r2 - d2.  Also, in that paragraph loc should be loc.

Sun 12:27am EDT:  Version 1.10 of  the task has been posted which fixes the bugs mentioned below and on the FAQ page.  There’s still a bug in the definition of dot products in section 5.1.  We’ll fix this in the next revision of the document.  Also, as someone has pointed out, we’re technically on US Eastern Daylight Time (EDT) not standard.

Sat 9:39pm EST:  Bug in the definition of the “inc” function example.  Fixed in version 1.7 of task.htm.

Sat 9:18pm EST:  Space is considered a printable character (and can thus go in strings.)  FAQ is fixed.

Sat 9:16pm EST:  Oops.  Bug in the definition of the swap example.  Fixed in version 1.6 of task.htm.

Sat 9:00pm EST:  Lots of clarifications.  See the FAQ

Sat 8:25pm EST:  Lots of clarifications and a bug fix in the factorial example.  See the FAQ.  Also, we’ve put a version number (currently 1.4) on the task description so that you can more easily track changes.

Sat 6:51pm EST:  Clarification:  true and false are keywords (like the operators).

Sat 6:04pm EST:  Clarification:  identifiers are case-sensitive.

Sat 5:49pm EST:  We failed to say anything about the precision of integers.  Integers should have 24 bits worth of precision (using 2's compliment representation.)  

Sat 5:47pm EST:  The references to the rules in Figure 2 of the HTML task description were wrong.  They are now fixed.  

Sat 5:35pm EST:  A clarification have been posted to the FAQ and the task.htm document has been updated.  Check the FAQ frequently.  We will post clarifications to the FAQ and the task.htm immediately.  It may take a while longer to update the task.pdf and files.

Sat 5:35pm EST:  A bug has been fixed in the task.htm document:  the example in the array section used "sub" instead of "get".  

O'Reilly and Associates have generously offered to give all of participants on the winning teams a free book and free T-shirt.

Details of the contest machine configuration are available.  NOTE: If at all possible, please submit a statically linked executable along with your source code. We've installed various languages on the contest machine to support languages that cannot create executables, or in case we need to debug your source code to get it to run. Remember, your source code may be written in any language.

Cambridge University Press has generously donated two journal subscriptions (the Journal of Functional Programming and the new Theory and Practice of Logic Programming) to be given to the winners.