What research directions are you following?
The Pad++ group is developing Pad++ in many ways, such as:
- Creating Pad++ GUI components.
- Developing an internet based distributed Pad++.
- Performing Pad++ usability studies.
- Developing Pad++ applications for understanding large datasets.
- Porting Pad++ to Windows95/NT.
- Developing easy to use authoring tools.
How do I contact the Pad++ group
You can contact the Pad++ group at the following email addresses:
How do I get a Pad++ license?
For non-commercial (education, research, or in-house) use, all you need to
do to use Pad++ is to fill in the online
registration form. If you are interested
in a commercial license, you should contact us at
The Pad++ Consortium currently consists of UNM and NYU, and license
can be negotiated from either institution.
How do I get on the Pad++ mailing lists?
When you download Pad++, there are two checkboxes to add you to the
mailing lists. Or, you can send mail to
and we'll add you manually.
There is an announce list which has
very low volume. This list is just for us to send you mail about new
Pad++ releases and other important information. This is a private list,
and others can not use it, so you don't have to worry about getting
much unsolicited mail. There is also a chat list which has
moderate volume. This list is for the Pad++ user community to communicate
with us and each other about ideas, solutions, requests, etc.
Questions about Pad++
What other online info is there on Pad++ or Zoomable interfaces?
There are several online papers about Pad++ and related issues
Is Pad++ available?
Yes it is. You can register online and download it
What platforms does Pad++ run on?
Pad++ runs on just about any Unix platform. We have tested it on
PCs running Linux, SGIs, and Suns (SunOS and Solaris).
Pad++ now also runs on Windows95/NT. This port is still early,
and the Windows version is not very reliable.
Also, it is slower because it is currently implemented with
Tk's X emulator.
Why does the Windows version run slower
than the Unix version?
The Windows version of Pad++ runs slower than the Unix version
because we are using the Tk X emulator. In a future
version, we will write a native Windows renderer, and expect that it will
be at least as fast as the Unix version.
Is there a Pad++ FTP site
No, all public information about Pad++ is at this web site.
What are the plans for the Web browser?
We built a prototype Web browser in Pad++ in 1995. At that time, HTML was
quite simple, and the idea of building our own better browser was quite
tempting. We build what was at the time a cutting edge browser - with HTML 1.0.
Since then, the web has advanced greatly, and we realized that we didn't
want to get in the business of competing with the major Web browser companies.
Instead, we are taking advantage of the new features of HTML by building a
new generation Web browser that piggybacks on existing commercial ones.
The new Pad++ Web browser, called PadPrints,
monitors what the browser is doing and what pages are being visited.
It builds a map showing your history of interaction with Web. You can
use your commercial browser normally, but at any time, you can go to
PadPrints in a separate window to control the browser.
Are you going to port Pad++ to Java?
We are looking into connecting Pad++ to Java so that it will
be possible to write zooming applications entirely in Java
using the C++ core. However, this work still has a long way
Another approach would be to build Pad++ entirely in Java. We have
experimented with this, and it appears that at least for the
time being, Java is too slow, and the AWT graphics package is
not powerful enough. Perhaps when Java compilers are common,
and Java2D is commonly available (and well-implemented),
it will be possible, but that is still in the future. However,
we have created a simple zooming Java applet to give a flavor
of what the interaction feels like. See the link on the
Questions about the approach
Its all very well, but why isn't Pad++ 3D?
There are some very attractive 3D systems out there (the Information Visualizer is
one of them). However, although they may look impressive, 3D systems are typically
hard to navigate using current display and pointer technologies. They also
require high levels of computing resources. Its not obvious that a 3D
interface is appropriate for a handheld device or for a cheap home
Pad++, on the other hand, can be implemented very efficiently using a small
home computer, and is easy to navigate using a mouse.
How does Pad++ relate to traditional windowing systems?
There are two answers to this - choose one you like:
1. Pad++ can be seen as a mechanism for creating applications which have a
zooming component. For some applications, a zoomable interface may be more
appropriate than a more traditional windows based approach - for example,
zooming seems to be particularly effective for applications which need to
present large amounts of data in an intuitive and understandable
manner. This especially true for data that is hierarchical in nature
as information that is deeper in the hierarchy can be represented as
being smaller on the Pad++ surface.
2. Pad++ could also be viewed as a way to implement an alternative windowing
system based on zooming. Your whole desktop could be zoomable. This seems
especially attractive for systems which have small screens, such as handheld
computers (i.e. PDA's).
Technical questions about Pad++
What does the Pad++ code consist of?
Pad++ consists of a C++ core that provides zoomable objects.
Applications can be written in C++ (this API is still under development),
Tcl/Tk, a scripting language
that implements the zoomable draw application which you have seen.
Pad++ runs on most unix machines including PC's running Linux,
on workstations from Silocon Graphics, IBM and Sun, and probably
on most other UNIX-like systems that support X11.
Pad++ also runs on Windows95/NT, but this port is still slow and unreliable.
How do you get Pad++ to zoom so quickly?
In order to keep zoom animations fast, Pad++ employs several tricks:
Pad++ uses an R-Tree internally to quickly determine which
objects are visible in a given view.
Level of Detail
When things become too small to see, Pad++ ceases to render them.
When Pad++ starts to get too slow, it renders medium sized things
in a more ugly fashion. When the system is idle, things that
have not been rendered fully are refined - see below.
When trying to achieve a high frame rate, Pad++ use a reduced level
of detail. Then, when the system is idle, successive refinements are performed
to increase the level of detail.
Adaptive render scheduling
The system monitors render times, and adapts the rendering algorithm to
maintain a constant frame rate during zooms and pans.
Pad++ dies as it starts up on Windows95/NT. Why?
There is a bug in the Windows95/NT version where it dies if there is a space
in any of the directory names that Pad++ is installed in. So, if you
installed Pad++ in the 'Program Files' directory, it will die with this
behavior. Try re-installing (or just moving Pad++) in the top-level directory,
and it should work. Sorry about this - we'll try and fix this in the next
Building Pad++ on Solaris with gcc 2.8.1 hangs. Why?
We've had reports that building Pad++ on Solaris 2.5 with gcc 2.8.1
hanges when compiling generic/object.cpp. A workaround is to
remove the -fPIC flag from the Makefile. This flag is only
necessary when compiling shared libraries, but isn't necessary
when just compiling an executable, so you should be able to
remove it safely.
Another approach is to configure with:
and then add '-ldl' at the end of the link line
Why does my Tcl socket code hang when using Pad++?
When Tcl 7.6 performs a socket read in "line buffered" mode, it reads only until the
new-line character. If the writer sends a zero-terminated string, Tcl 7.6 leaves
the zero byte in the buffer. The next read, then, returns a string that begins with
a zero byte; we interpreted this incorrectly as a read of a null string, when in
fact it was a long string following a zero byte.
This problem does not occur with Tcl 8.1, the latest release.