K-3D is the free-as-in-freedom 3D modeling, animation, and rendering system for GNU/Linux and Win32. K-3D features a robust, object-oriented plugin architecture, designed to scale to the needs of professional artists. K-3D is designed from-the-ground-up to generate motion-picture-quality animation using RenderMan-compliant render engines. We strongly recommend the Aqsis render engine for use with K-3D.
The current version of K-3D is always available from http://k3d.sourceforge.net
Original author Tim Shead began work on what became K-3D in early 1994, on an Amiga computer. At that time, the program was called Equus-3D, and work was subsequently moved to Win32. The application evolved and was to be a commercial product. During this period the name was changed to K-3D. Finally, in 1999 Tim opted to release K-3D under the free-as-in-freedom GNU General Public Licence, which led to the K-3D motto: "Seven Degrees of Freedom." The CVS server and web site were hosted on a home machine, until they moved to the SourceForge platform in 2002.
There's been a lot of fuss with this topic. The application's original name was Equus-3D, later changed by Tim to K-3D because the meaning of Equus was lost on too many people, and he was feeling particulary un-creative that day. At that time, Tim was unaware of the existence of the KDE project. As it happens the K in KDE may either stand for 'Kool' or nothing, as you wish! Manuel Bastioni has proposed Kinka, which stands for 'K-3D Is Not a KDE Application'.
Please have a look at the SourceForge page for the latest updates of K-3D. K-3D is a work in progress, actively maintained, and after many early missteps, rapidly maturing.
Version 0.2.5.0 was the K-3D project's first-ever stable release branch, a major milestone in the history of the project, and reflects well on the efforts of its many contributors.
Licensed under the GNU General Public License (GPL).
Record interactive tutorials and macros.
Unlimited undos / redos.
Robust clipboard support including Cut, Copy, Paste, and Duplicate.
Create and edit documents in multiple realtime OpenGL solid, shaded, texture-mapped views.
Scripting interface supports JavaScript, Python and Ruby, with an open API for other scripting languages.
Model, animate, and interact with animations while they play back for maximum productivity.
Highly-evolved architecture allows complete extensibility at runtime through third-party plugins.
Animated geometric procedural effects.
Powerful control-spline based animation in a uniform interface.
Uses the Pixar Renderman Interface to render motion-picture-quality images with a wide variety of rendering engines.
Supports Renderman Subdivision Mesh output.
Background rendering and batch rendering.
Written in ANSI C++, and GTK+.
For rendering, K-3D currently supports output through the Pixar Renderman Interface, a professional industry standard interface between modelers and renderers. The output would typically be sent to one of the several render engines that K-3D supports, including Aqsis and BMRT (note that the latter is no longer available). K-3D could also be used with Pixar's Photorealistic Renderman, or any other Renderman Interface compliant engine. K-3D's modular, flexible architecture should encourage authors to develop links to other rendering engines - POVRay would be a natural first candidate.
Since the afore-mentioned render engines are standalone executables, K-3D invokes them by creating Pixar Renderman Interface Bytestream (RIB) files, before handing them off to the renderjob and renderframe processes. This has many benefits, including the ability to continue working with the program while rendering, or to queue multiple rendering jobs, and (future) network rendering.
K-3D documents are stored using a simple, flexible, easy-to-understand XML markup. This makes the files robust, easily compressed, and easily interchangeable in a variety of interesting ways. K-3D supports XML through SDPXML, a C++ XML parser. For document loading, an instance of the sdpXmlDocument class is used to load the XML tree into memory, where XML elements and attributes are extracted on an as-needed basis. Trees can be created / modified, and written to any stream.