Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Learn more about Tcl/Tk at

A 3-D Canvas Widget For Tcl/Tk

Originally written on 2005-08-15. Updated 2013-11-12:

The 3-D Canvas Widget provides Tk programs with 3-D graphics capabilities through the use of OpenGL. But the 3-D Canvas widget is not another thin wrapper around the OpenGL interface. This widget is a much higher-level abstraction. Just as the built-in canvas widget of Tk is a high-level abstraction of the X11 drawing routines, so too the 3-D Canvas widget is a high-level abstraction of OpenGL.

The 3dcanvas project is stable and has been in use and relatively unchanged for several years. New contributors who want to expand and enhance 3dcanvas are welcomed. The project is currently maintained by Sean "The Hypnotoad" Woods. (yoda at etoyoc dot com)

The current interface can be seen in the ./3dcanvas.html. The ./ source code to this file is in the source repository. Source code is available by fossil. As follows:

fossil clone 3dcanvas.fossil
mkdir 3dcanvas
cd 3dcanvas
fossil open ../3dcanvas.fossil

Or, if you don't want to mess with installing fossil (fossil is a self-contained, stand-alone binary and precompiled fossil binaries are available, so installation is trivial) then you can download the code as a ZIP archive as follows:

  1. Login as user "anonymous". The password is shown on the login page. (The reason for requiring login is to prevent spiders for downloading every historical version of 3dcanvas.
  1. Go to the timeline page and select a version of 3dcanvas that you want to download. Click on its link.
  1. Find the "ZIP archive" link on the baseline page. This will cause a ZIP archive containing the particular version of 3dcanvas you have selected to be built and downloaded.

Build instructions for various environments is here: Building.

A timeline of changes is available online. There is also a wiki devoted to this widget. The wiki is currently empty but feel free to change that. Use the ticket entry form to report bugs or request new features.

Code contributions are welcomed. Write access to the fossil repository can be arranged by contacting Sean Woods (yoda at etoyoc dot com).