One of the most interesting things about Deneba’s early 1990s Macintosh drawing apps is that they were built in a modular way with additional files adding specific features. These days we call those Plugins but back in 1990 Deneba referred to them as External Tools.
They are first seen in UltraPaint and later in Canvas 3.0, artWORKS and Canvas 3.5. Tools are categorised as several types: Effect, I/O, Manager, Modifier, Object, Setting and Other. Each adds functionality and/or user interface to the app in its own way.
Amongst the Deneba material on an AppleLink archive disk from Spring 1993 there are a bunch of “non-shipping” tools labelled for use with Canvas 3.0. Interestingly, they are listed individually and also as a combined set. If we extract the combined set of tools there’s a single additional tool that is somewhat out of place: the Waco Tool (for Wacom pressure sensitive pen) which is marked with UltraPaint’s type and creator information.
I can confirm this that this tool - which I don’t believe was ever included with UltraPaint - allows my Wacom ArtPad II to work. Bonus! But why was this tool meant for UltraPaint included in a download for Canvas. Could it work in Canvas?
I put the additional files in the Canvas Tools folder and started the app with the Space Bar held down. This starts the Tool Picker allowing you to select which tools you want to use for that session.
Boom! There it was.
I tried copying some tools from Canvas to UltraPaint and artWORKS. They didn’t work. What was the difference? In ResEdit they looked largely the same. On a whim I looked at the type/creator codes using Snitch’s Get Info extension. I noticed that disabled tools had a different type code. If the app is using type to store information like that, maybe it’s only accepting certain type codes?
So I copied a tool from Canvas over to artWORKS, being careful to pick one that already exists so it was as much like for like as it could be. It didn’t show up. Then I changed the type/creator codes and… it did show up! And not only that, but the tool worked in the app!
I was surprised, and also impressed. Deneba did a really great job with the architecture and API of these apps for things to remain this compatible over the course of several years. All three apps share code and resources. If you take a look at both UltraPaint and artWORKS in ResEdit you’ll see that they share a lot of DNA, artWORKS is basically an enhanced version of UltraPaint. I’d bet all three apps were built from the same code base.
How far can we go?
Some questions remained: how many tools could this be done with? Would they install and function? Could I use tools in artWORKS that were meant only for the more expensive Canvas? There was only one way to find out: try all the tools!
I set about copying the tools from one app to artWORKS, my favourite app, changing the creator and type codes to match. To make bulk changes to type/creator I used Get Info (with Snitch) on multiple items, but I could have used software such as FileTyper.
The result was quite amazing with artWORKS total tools increasing from 59 to 92—that’s 33 additional tools! This is not counting a handful of tools that install but do not present themselves in the user interface. I’ll need to investigate those further at a later date.
Doing the same for Canvas 3.0 takes us from 74 to an even higher total of 97 tools! It’s worth noting there are a couple of tools that go by the same internal name: PANTONE™ Colors (Color Manager) and Separations (PostScript) but I’ve chosen not to merge those rows of the table as there are some subtle differences in their capabilities. Also the functionality of the Grids & Rulers tool is built-in.
The table below shows tools present in each of the apps, each with their own symbol, and then the final combined column shows all tools that are compatible with artWORKS with the symbols showing which app that tool originated from.
|Software Name||UltraPaint||Canvas 3.0||artWORKS||artWORKS+||Canvas 3.0+|
|Canvas 1.0 I/O||●||●||●|
|Canvas 2.1 I/O||●||■||■||●|
|Fuzz lasso/Soften Edges||▲||■||■||■|
|Gray Scale Manager||▲||▲||▲|
|Grids & Rulers||■||■|
|RGB Color Manager||●||●||●|
|Search & Replace||●||●||●|
|Sharpen and Blur||▲||▲||▲|
|System 7.0 Options||●||■||■||●|
|Three Color Airbrush||▲||■||■||■|
|UltraPaint 1.0 I/O||●||■||■||●|
▲ UltraPaint tool ● Canvas 3.0 tool (○ that installs but doesn’t show any interface) ■ artWORKS tool
So after all this I now have an install of artWORKS (let’s call it artWORKS+) that includes additional tools from both UltraPaint and Canvas 3.0 and I had a ton of fun figuring all this out. And I’m only 30 years late!
Here’s a download of my artWORKS Tools folder containing all the combined tools (use StuffIt! Expander 5.5 to extract): artWORKS-Tools-Combined.sit [1.1MB]
A note about later versions of Canvas: version 3.5 provides roughly the same tools as version 3.0. The handful of unique tools in version 3.5 are not compatible with artWORKS. Version 5.0 features similar tools but they’re no longer compatible with the earlier apps.