Papervision 3D is an open-source project released under the MIT license. It was started by Carlos Ulloa, who later joined forces with John Grden and Ralph Hauwert. If you haven't had the opportunity to see some of their stunning demonstrations of the engine, I encourage you to seek them out. Some of the most amazing Flash work to date is being done using the Papervision engine.
Papervision 3D includes a typical set of objects you'd expect from a 3D engine: scenes, cameras, meshes, materials, and more—not a whole lot of shock value there. What makes this engine so successful is its method of texture mapping.
Instead of trying to attempt expensive, setPixel-based, perspective corrected texture mapping, the engine uses what is known as affine texture mapping. To understand affine texture mapping, it's easiest to see it in action and in comparison to perspective corrected texture mapping. Figures 1–3 show a sample source image and its mapping using the two techniques.

Figure 1. Source image

Figure 2. Affine texture mapping

Figure 3. Perspective-corrected texture mapping
As you can see from comparing Figures 2 and 3, affine texture mapping is not as accurate as perspective corrective texture mapping. But what you lose in accuracy, you gain in performance—and as you begin to subdivide your meshes, the distortion effects become less apparent (see Figure 4).

Figure 4. Affine texture mapping with subdivided plane
Affine texture mapping can be frustrating for those who don't expect its results. It is especially noticeable when text or hard lines are present in the texture. However, considering the performance limitations of a software-rendered 3D engine, it is a reasonable compromise.
Another powerful feature provided by Papervision 3D is Collada support—an industry-standard XML schema used to describe a wide range of 3D features. It's used as an intermediate format for sharing assets between 3D packages. Specifically, it was designed to support the handoff between 3D content creation packages—such as Maya, Softimage, and Blender—and runtime 3D engines, such as those used in gaming.
Papervision 3D doesn't support the full range of features described in the Collada schema. However, what it does support is an excellent start and plenty enough for what we need. The team is also hard at work implementing some of the missing features.