Last Updated : Dec. 20, 1996
Thanks for taking interest in Canvas3D. We hope to answer most of your questions about Canvas3D in the FAQ below.
Canvas3D has been developed to satisfy several needs that arised for providing 3D graphics support to multimedia and virtual reality applications. It all started when a graphics engine was required for developing the Virtual Reality Conferencing system, that embeds live video and audio conferencing into a virtual space. However, such applications and many others basically have been held back by the market available specialized tools for 3D graphics. Canvas3D has been developed to bring the following features onto a common platform :
Ease of Development - Computer Graphics, though extremely exciting to see and enjoy, is however, a very tedious and a mathematically complex field for software developers. Canvas3D tries to extremely simplify the development process for graphical environments, and offers an interface that the user can use with minimal knowledge of Computer Graphics internals.
High-Performance Graphics Engine - High speed computer graphics market has focussed more on the development of specialized hardware support. Canvas3D offers an interface for an equivalent level of software performance on the more widely used low-end machines and operating systems.
Customization of Special Features - Canvas3D has been developed and planned to be made available to the users/developers along with the source code. Canvas3D can be thus customized to add in new features or else change the code according to requirements. Also, Canvas3D inherently considers special support required for multimedia and virtual reality applications.
Platform Independence - Interactive communication over the network requires software applications to be developed with platform independent support. The software implementation of Canvas3D takes into consideration this issue of portability too.
Interactive Development - It is fun to be able to make 3D graphics environments interactively, and equally, it is fun to be able to change mind immediately and see the new effects. Canvas3D explores such user interests, and provides a large number of options to play around with.
GUI support, C embeddable - Tcl/Tk plays the role of parser and manager in Canvas3D, and like any of its other support, Canvas3D can be embedded into X-systems like GUI and provided a more logical interface through the C language interaction.
Canvas3D has a specialized three layer software architecture. Sun Labs' Tcl/Tk provides the role of the parser, manager and the communicator as well as it provides the GUI/C extension support. A Graphics Engine library is defined by Canvas3D that would suffice all the possible requirements for supporting 3D graphics. Microsoft Direct3D provides a high-performance graphics rendering support on Windows95/NT and Macintosh platforms. Support for Unix machines still remains to be provided.
Any applications that requires a graphics engine support can be developed using Canvas3D. Games, 3D Images, Banners can be developed very easily. However, the special features of Canvas3D are in supporting applications such as Virtual Reality Conferencing, Virtual Shopping Malls and Seminar Rooms, and many other such virtual reality applications that merge the concepts of multimedia systems into virtual reality. Texture Mapping and Modeling applications can be efficiently developed through Canvas3D. VRML browser can be implemented to run over Canvas3D, and thus meet the standardizations.
As of today (Dec. '96), Canvas3D is very finely designed, and almost all the features are working perfectly. There are, as can be expected, several improvements and known bugs in the software. However, most of the fixes required are also known. Several times the design had to be changed to meet all the goals described above. And with Microsoft Direct3D still being quite young and `unfriendly', it has been a hard time to stay alive with it. Canvas3D still requires a lot of stress testing. However, as the software stands today, a lot of work has been achieved and accomplished. Canvas3D has been tested successfully on Pentium machines with 24-bit color specs. The 4-CPU Pentium Pro Gateways showed some Direct3D generic failure on few of the features (specifically noticed only on the Box Item!).
Canvas3D has been developed as a research project by the Multimedia Research Group Project Zeno led by Prof. Brian Smith (bsmith@cs.cornell.edu) at the Cornell University's Department of Computer Science. Ankit Patel (apatel@cs.cornell.edu) ,a grad student at Cornell, has developed the first version of Canvas3D. He is the designer/implementer of Canvas3D for the support over Microsoft Direct3D.
Any questions regarding the software in general may be directed to either of the persons. Please contact Ankit for any specific implementation details or queries. Since Canvas3D is very young and immature as yet, we do not expect to provide any sort of full-fledged support for it. However, we encourage contribution and distribution of the software for the purpose of further research and development.
Ankit Patel (apatel@cs.cornell.edu)