1.1.5 The Early History of POV-Ray
You know you have been raytracing too long when ...
... You hear a name beginning with the letter K and
wonder if it's David Buck's middle name.
-- Alex McLeod
OK, here's a not-so brief history of POV-Ray (from the horse's mouth, so to speak):
Back in 1986 or so, I had an Amiga. A friend who also has an Amiga downloaded the C code for a raytracer for Unix
from the Internet and brought it over. I thought it looked interesting and I ported it to the Amiga and wrote the
drivers to display it with Amiga graphics. The program only rendered untextured spheres with a planar floor in black
and white, but I was still impressed by it. I played with it a bit adding support for color, but I eventually decided
that I could do a better job writing a raytracer from scratch, so I scrapped the C program and started my own -
DKBTrace had begun.
I decided to start with general quadric surfaces since they could represent spheres, ellipsoids, cylinders, planes,
and more. I worked out the ray-quadric intersection calculations and used some calculus to work out the surface normal
to a quadric surface at a point. For the program structure, I decided to use an object-oriented style since I had
learned Smalltalk at university and it fit nicely. To make modeling more flexible, I added CSG and procedural
textures. In the end, I had an interesting little raytracer and I decided to release it as freeware since I was
planning to return to university to start my Master's degree and didn't have time to develop a commercial raytracer.
Besides, there were already commercial renders for the Amiga that had user interfaces (not just text files) and I felt
I couldn't sell it as a commercial product. I called it DKBTrace and released it to local BBS'es and to the Internet.
DKBTrace was an Amiga-only program, but it attracted quite a lot of interest. I released several versions of it
adding in new features, better primitives, more texturing options, etc. Eventually I released version 2.01.
Sometime around 1987 or 1988, I was contacted by Aaron Collins. He had found the C code for DKBTrace and ported it
to the PC. He also added a Phong lighting model and a few more goodies. I was interested in what he had done, so I
contacted him to see if he wanted to help develop a new version of the program. This one would be portable across more
platforms (at university I had access to Unix workstations). We eventually came up with version 2.l2 which was the
last version of DKBTrace ever released (1989).
While Aaron and I were working up to version 2.12, there was a group of people on CompuServe who were very excited
about DKBTrace and were creating all sorts of neat scenes for it. They were also expressing frustration that Aaron and
I weren't able to add new features into DKBTrace fast enough. They started talking about building a whole new
raytracer from scratch that they could control and add the features they wanted. At that time, I was starting to
pursue other areas and was starting to drift away from raytracing. So, I posted a message on CompuServe with the
following offer: We could form a team to develop a new raytracer using DKBTrace as a base. I had three requirements
for this team. The resulting code had to be freeware with the source code freely available, it had to remain portable
between different platforms, and it had to have a different name than DKBTrace.
The name DKBTrace was, of course, based on my initials: David Kirk Buck (there's some little known trivia for you).
With a package developed by a team of people, it was inappropriate to use my initials. I was also starting to drift
away from raytracing (as I mentioned) and I didn't want people thinking that I was the head of the team forever. The
name that was proposed was "Persistance Of Vision Raytracer" which was shortened to POV-Ray. It worked in
three ways. It was the result of a persistent vision of the developers, it was a reference to the Salvador Dali work
which depicted a distorted but realistic world, and the term "persistance of vision" in biology referred to
the ability to see an image that was presented briefly - almost an after image.
In 1989, then, DKBTrace 2.12 was officially released and the POV-Ray project had begun. I worked with the team for
a few years after that. I was responsible for the Amiga port among other things. Drew Wells was the project leader.
Aaron Collins dropped out of the project around that time as well. Other early members included Chris Young, Steve
Anger, Tim Wegner, Dan Farmer, Bill Pulver (IBM drivers), and Alexander Enzmann (quartics and cool math stuff). Chris
Cason joined shortly after (my apologies if I left anyone out - lots of people were involved). The reference to Robert
Skinner in the credits for POV-Ray was because we had a hard time finding a good noise function. In another raytracer,
he had a great noise function written by Robert Skinner, so we asked for and received permission to use it in POV-Ray.
There was so much demand for us to release a new version that we created POV-Ray 0.5 and released it. It was
basically an enhanced DKBTrace with a similar grammar but many more features. Eventually, we released POV-Ray 1.0
which had the new grammar and lots of new stuff. Drew dropped out later and Chris Young took over as project leader.
It was around that time that I started to drift away from the POV-Ray team. The project had momentum and could
continue on without me. I was getting into different areas (physically based modeling and animation) and no longer had
the time to continue with POV-Ray. Around the release of version 2.0, I left the project and the POV-Ray team
developed it to its current state. Chris Cason is now the project leader.
Even though I'm no longer on the POV-Ray development team, I still like to follow its progress. I haven't built my
own scene by hand for years now (although I occasionally use Moray). I still enjoy the one thing that drove me back in
the DKBTrace days - I love seeing the works of other people who used my software. Even though I can no longer call
POV-Ray "my software", I still enjoy admiring the artwork people create with it. I'm constantly amazed at
what people can do. It was always the feedback from user community that drove me.
david [at] simberon.com