LANGUAGES

POV-RAY.

The POV-Ray ray tracer, on a cartridge. You do not draw: you describe the scene in the POV-Ray language, its objects, materials, lights and camera, and the machine computes the picture pixel by pixel in the 640 × 480 mode, following each ray of light through reflections and glass. A scene written for POV-Ray can be pasted as it is, as long as it keeps to what the cartridge knows.

A red ball, a chrome ball and a glass marble on a checkerboard under a blue sky.
SPHERES. Reflections, glass and cast shadows.
A marble cube hollowed by a sphere, a wooden ring and three crossed golden cylinders.
CSG. Combined shapes: difference, intersection.
Sixty balls of every colour in a helix around a pole.
SPIRALE. Sixty spheres placed by a #while loop.
A small Greek temple with ten marble columns on a tiled floor, at sunset.
TEMPLE. The columns come from a macro and a #for loop.
global_settings { assumed_gamma 1.0 }
camera { location <0, 2, -6> look_at <0, 1, 0> }
light_source { <-5, 9, -7> color rgb 1 }
plane { y, 0 pigment { checker color rgb 0.9 color rgb 0.2 } }
sphere { <0, 1, 0>, 1
  pigment { color rgb <1, 0.2, 0.2> }
  finish { phong 1 reflection 0.2 }
}

The language

  • Shapes: sphere, box, cylinder, cone, plane, torus, disc, triangle
  • Combinations: union, merge, intersection, difference, with translate, rotate, scale
  • Materials: pigment with checker, gradient, marble, wood, granite, bozo… and turbulence; finish with phong, specular, reflection, metallic; normal for bumps; interior { ior } for glass
  • Directives: #declare, #local, #while, #for, #if, #macro, #include, #debug
  • The colours of colors.inc, the finishes of finish.inc and a few metal, glass and marble textures are built in

The cartridge

  • RUN computes the picture: a coarse first pass in an instant, then finer and finer, then the edges smoothed. The picture stays alone on screen; any key goes back to the prompt, and VOIR shows it again
  • APERCU gives a quick preview for framing, INFO sums up the scene and the last render
  • EDIT opens the editor with syntax colouring; an error puts the cursor on its line
  • Ctrl+C stops a render, CONT resumes it where it was; Escape pauses it
  • SAVE "NAME" writes a .POV file; RUN "3:SPHERES", and likewise CSG, SPIRALE, TEMPLE

The picture

  • 640 × 480 pixels, each one of the 4,096 colours of mode 20, with an ordered dither that smooths gradients
  • Shadows, reflections, refraction in glass, spotlights, fog and gradient skies
  • POV-Ray 3.7 gamma: with assumed_gamma 1.0, colours are counted as light, as in POV-Ray
  • Not yet: text objects, isosurfaces, blobs, media, radiosity and image maps; the cartridge says so and names the line

POV-Ray and the TO2026

POV-Ray, the Persistence of Vision Raytracer, grew in 1991 out of David K. Buck's DKBTrace; it is free software and still developed. Scenes are written like programs, and it taught generations of hobbyists about light and geometry. The TO2026 cartridge follows its language and its way of computing, written anew for the machine: it does not use POV-Ray's code. The monitor speaks French, like the rest of the machine.