Constant Dictionary Definitions
If you hold down Command-Control-D in a Cocoa-based application that supports AppleSpell, you'll see little dictionary pop-ups for each word that you mouse over. Neat, eh?
Series: Hitting the Canvas
Matt Neuburg closely examines the warp and woof of this flexible yet often odd graphics program.
Article 1 of 3 in series
by Matt Neuburg
Although I'm no artist, I do need to make diagrams and pictures occasionally, and the early surprise and pleasure of MacPaint and MacDraw helped define the Macintosh for meShow full article
Although I'm no artist, I do need to make diagrams and pictures occasionally, and the early surprise and pleasure of MacPaint and MacDraw helped define the Macintosh for me. For years I was a fan of SuperPaint (TidBITS-112), which essentially combined the two; but it "progressed" to become sluggish, and when I used it to diagram my New Zealand garden, it was clumsy, it wouldn't print, and screen updating was slow. That's when I switched to Deneba's Canvas 3.5.
Put Me in the Picture -- Canvas, which first appeared in 1987, had developed a kind of cult following. It could both draw and paint, and it went beyond SuperPaint in its precision, multi-layered documents, and the many cool tricks it could do thanks to its component architecture, which allowed integration of new tools, such as binding text to a path, or adding dimension measurements. It was quick and rugged. Most remarkably, it handled a huge variety of graphics formats.
When Deneba announced that Canvas would be so radically improved as to be designated 5.0, we adherents were smug. We'd backed the right horse this time! Our anticipation, though, was prolonged. Canvas 5.0 was advertised month after month; the upgrade was previewed at Macworld Expo in August, 1995, and again in January, 1996; but no product. Finally, it "shipped" at the Expo in August, 1996 - meaning that in late September and early October, users began actually receiving copies.
A collective howl of anti-climactic despair arose on the nets. Users complained of crashes, erratic behavior, of slow screen updating, of unaccountably large file sizes, of inability to print, of inability to export to PICT or to import from Canvas 3.5. My own first 5.0 project, a house diagram, was a dismal failure - the dimension measurements showed as nonsense, and rotated text wouldn't print on my StyleWriter (I went back to 3.5 and did the job easily). Deneba's customer support server was swamped; an email provoked an automated response after a few days, a human response after weeks or never. Evidently, for all our patience, 5.0 was still not the real release.
In November, a 5.0.1 updater appeared. In January, a new installation CD shipped. My printing problems went away when I adopted Apple's Color StyleWriter 1500 driver (no thanks to any advice from Deneba). The dust was finally settling.
Graphic Analysis -- As promised, Canvas 5.0.1 goes well beyond its predecessor, integrating into one program capabilities that could save users from having to purchase single-purpose applications in a number of areas.
It's a draw program. You get the usual vector-based shapes and Bezier paths, plus many specialized shapes, enhanced by pen widths, arrows and calligraphic shapes, plus colors, gradients, hatchings, and textures, all heavily customizable and savable in library form for later use. Bezier paths can also now be combined and blended in powerful new ways.
It's a diagram program. As in 3.5, "smart lines" link their objects even when the latter are moved, and dimension tools and "smart mouse" features help with exact measurements.
It's a 3-D program. The extrusion tool now makes parallel or circular rotatable objects with customizable lighting.
It's a page layout program. A new type of document, the publication, can have columns, linked text boxes, headers and footers. You can have cascading paragraph and character styles, automatic hyphenation, even widow and orphan control.
It's a paint program. The paint tools include many new ways of laying on color, plus complex transfer modes and tools for smudging, sharpening, blurring, saturating and so on.
It's an image-processing program. You can use channels, masks, and filters to manipulate images in complex ways.
- It's a presentation program. You can use successions of images to make a slide show (not much changed from 3.5).
Dull as Paint -- Unfortunately, Deneba has created a decidedly unpleasant user experience. The program feels at every step like a cross-platform port: the help file reminds one of Microsoft Help; the dialogs have an un-Mac-like look and feel; a status bar mars the bottom of the screen; 3.5's extensive scriptability is completely gone; and there are occasional meaningless error messages. Installation is a nightmare, with dozens of undocumented files dumped into the System folder. The manual, while impressively slimmed down from 3.5's 900-page brick, is a tedious, repetitive reference, burdened with double sets of illustrations and instructions for both Windows and Mac.
A number of problems come down to speed, or the lack of it. On my computer using Canvas 5.0.1 is painfully slow. Okay, so I've got an LC 475. But that's a 68040 processor, though without an FPU. It runs 3.5 quickly, and comments on the net suggest that even Power Mac owners find 5.0.1 sluggish.
The screen is astoundingly slow to refresh - and it chooses to refresh a lot, at the most unaccountable times: after you've peeked at a palette; after just about any individual operation on a single object; even after scrolling in a floating window that doesn't cover any of the drawing. If you switch in from another application, the screen sometimes partially redraws, then the floating palettes redraw (also a tedious operation), and then the screen starts redrawing (slowly!) all over again. Besides which, the screen often unaccountably vanishes in the middle of an operation, or redraws incorrectly, so you have to force a refresh - and wait through it.
Various operations seem to send my computer into a frozen limbo: no status-bar message, no watch cursor, no change in my menubar clock, no response to clicks, no ability to switch away, nothing. Thus I have frequently believed the program to have crashed and restarted the computer; but it appears that most of the time there was in fact some calculation going on. An indication of this would have been nice.
Bad Brushwork -- Basic tools have not been much improved; on the whole, they are inconvenient and clumsy to use, both physically and mentally.
For example, selection tools are poor; it can be difficult and tedious to select the particular vector items you want, because all you can do is click or draw rectangles.
With the Bezier path tools, it is difficult to see what's going on as you draw or select, even with your face right up against the screen. Drawing a new path is unnecessarily difficult: after you draw the first point and tangent, the tangent vanishes, leaving just a point that's difficult to see and which gives you no sense of what will happen as you draw the second point and tangent. (As you draw subsequent points, the previous point and its tangent are both shown, so why not as you draw the second point?) There are no keyboard shortcuts for selecting points or tangent handles; you have to find them by eye (not easy) and click right on them (ditto). There have been some improvements in these tools - a new pop-up menu is a welcome relief from the numerous modifier-click path editing combinations one used to have to memorize - but they don't make up for these basic shortcomings.
When you use a paint tool, you can't see what you're doing either, because it appears as the same little icon regardless of the size and shape of the actual brush you're using; in effect, you're trying to paint with an invisible brush, so you just have to guess at the effect of clicking the mouse at any particular point. This is a major step backwards from 3.5.
It is hard to learn what the current settings are for any particular object. For instance, after you select an object, clicking on the line tool doesn't show you the object's line width (you must tear off the palette and scroll through it, hunting for the selected item); nor does the object's pen or fill color become selected in the inks palette. The distinction between a particular object's settings and the default settings remains confusing as well.
Drawing Conclusions -- Canvas 5.0 was shamefully full of bugs and errors; a glance at Deneba's own lists of changes and fixes in 5.0.1 shows just how full (and such lists are usually deliberately incomplete).
Canvas 5.0.1 runs far more reliably, but still in a sluggish, useless, unhelpful way. The slowness of screen redraw, in particular, is unforgivable; I have enough spare RAM that the program could cache the whole screen as a bitmap (though even paging out to disk and back would be vastly faster than what's happening now), and in any case I don't see why all 50 objects on the screen have to redraw just because I change the color of one of them. Both screen redraw and the interface with the basic vector and paint tools need to be rethought from the ground up, if this version of Canvas is to be useful.
Meanwhile, Deneba has not dropped Canvas 3.5 from its list of current products. That's wise.
Article 2 of 3 in series
by Matt Neuburg
In 1995, Deneba's Canvas 3.5 was one of my favorite programs. Like SuperPaint, which still worked but was showing its age, Canvas was a draw/paint program with a straightforward interfaceShow full article
In 1995, Deneba's Canvas 3.5 was one of my favorite programs. Like SuperPaint, which still worked but was showing its age, Canvas was a draw/paint program with a straightforward interface. But when Canvas 5 shipped in 1996, I found it sluggish, buggy, confusing, and blatantly a port (see "The Microsoftization of Deneba: Canvas 5.0.1" in TidBITS-366). I despaired of Deneba, and recently started using CorelDRAW and Corel PHOTO-PAINT instead (as covered in "CorelDRAW 8: A Hedy Experience" in TidBITS-457).
Last week, though, CorelDRAW slammed me into a virtual brick wall. I wanted to diagram a house; but CorelDRAW has no line tool, and can't easily be told to make a line exactly 2.25 inches long. Then later, using PHOTO-PAINT to create a background image for a Web page, I found myself unable to figure out why I couldn't select a desired object or mask a desired area.
That's when I installed Canvas 6 and was pleasantly surprised.
Tell Me What You See -- As Canvas 5 felt vast and clumsy to me, so Canvas 6 feels direct, smooth, and comprehensible. My earlier complaint that objects were often being redrawn unnecessarily has largely been attended to; so has my criticism that when using paint tools, the cursor doesn't show the brush shape. And the interface shows many commendable refinements.
There's a new "docking bar," a narrow strip at the top of the screen, where, if you drag a floating palette into it, the palette's name appears, and can be clicked to display the palette (like Finder pop-up windows). Thus, for the price of a thin strip of pixels, you are saved the huge blocks of screen real estate occupied by the floating palettes you need. Similarly, you can place colors, tools, styles, and commands into the toolbar (another strip at the top of the screen) and assign them keyboard shortcuts.
Canvas 6 makes good use of drag & drop. You can drag a vector object into a palette to use it as an arrowhead, a fill pattern, or a brush shape. To store an object as a source for cloning, just drag it into the macro palette; to change its appearance (and that of all its existing clones), drag another object on top of it. You can drag colors into an object to apply them, and in an especially nice touch, if you drag an object into the colors palette, Canvas stores the object's colors there.
Many other details make Canvas 6 a pleasant place to work. Palettes and dialogs let you preview their effects. There are multiple Undos, good contextual menus, superb object finding, and copying and pasting of object attributes. Circles and arcs can be drawn from three points (I've wondered for years why draw programs lacked this). Printing is excellent, including rotated and bound text.
Nonetheless, certain interface failings remain. Interaction with Canvas objects is still difficult: handles are tiny and hard to see, and unresponsive when the mouse passes over them; you can't set the distance at which they become clickable, and you can't use the keyboard to select them. Palettes don't change predictably to reflect a selected object's properties, and I still find it hard to learn exactly what an object's fill or stroke settings are, or why, in general, it looks the way it does. Also, the delay before tool tips or pop-up toolbars appear is too long.
I'm Looking through You -- Canvas has always been characterized by unification of vector, bitmap, and text objects. It isn't just that they coexist within the same layer, but that the distinction between them is so readily broken down. You can trace bitmaps to yield vector objects; you can rasterize text and vector objects into bitmaps. Text can have vector-object fills and outlines, can be edited as vector paths, and can follow, or wrap within or around, a vector path. Text or a vector shape can be used as a "clipping path," so that all objects behind it, of any kind, become its interior fill.
Canvas 6 takes object interaction to a new level through the use of transparency. This is the much-touted "SpriteLayers" technology - a curious name, since neither sprites nor layers are involved. The idea is that an object can be transparent in two ways:
As a whole, it can be anything between opaque and transparent, along with several transfer modes.
It can also have either a channel mask or a vector mask. With the former, you paint, possibly starting with an existing bitmap object, to detail the object's transparency; with the latter, you give it a geometric, gradient-like transparency, or else attach to it a previously drawn vector object, whose colors detail its transparency.
You're probably saying: so what? Unless I draw a lot of glass panes or cutaway views, what good is transparency to me? But Canvas encourages use of transparency in unaccustomed contexts, to achieve results that otherwise might be obtained in a clumsier, more roundabout way. Objects have their own colors, which may be complex to begin with (a gradient or a bitmap, for instance); now you're giving the front object an overall degree of transparency, plus a transfer mode determining how its colors combine with those of what's behind, plus a mask which is, in effect, another detailed image of its transparency. In essence, you paint and draw with transparency itself, as a way of adding subtlety and drama.
If you're like me, you'll be experimenting for hours, fascinated with your sudden artistic talent. To give an object's edges a multicolored glow, put it in front of a gradient-filled object, then give it a channel mask and paint around the edges with a soft brush. To give an object a subtly burnished look, place on top of it an object with a gradient fill, partial opacity, and a soft-light transfer mode. To make sunbeams appear to emanate from an object, give it an elliptical vector transparency, and put behind it an object with a brightly colored radial gradient.
I immediately used these features to redraw the phoenix on my home page; I'm no artist, but I like the results, and I had fun. The old version, in SuperPaint, was mostly hand-painted with the mouse; the new version, aside from the bird itself (a photograph), is mostly vector objects, overlapping with transparency to provide shading and radiance.
Look at All the Little Piggies -- Although I never meant to compare the Corel programs with Canvas, I was using the first when I turned to the second, and the transition left me with some revealing impressions.
To start drawing my house diagram, I need to set the document's scale. Canvas allows arithmetic expressions in its numeric dialog boxes, so I just bring up the Rulers dialog and fill in two fields: 1 inch = 100/8 feet. In CorelDRAW, I must set "feet" as the document's units in one dialog, then enter the scale (8 inches = 100 feet) in another. This difference is quite characteristic. Corel's interface is more complicated, but its ruler implementation is deeper, offering thirteen possible units as opposed to Canvas's four, plus as you zoom closer, the ruler's ticks increase in granularity, whereas in Canvas, the ticks just separate until none are visible.
Next, I want a vertical line 22.5 feet long. In Canvas, I just bring up the Object Specs dialog, set the object as a line, enter its angle (90) and its length (22.5), and hit Create. Corel has no line objects, so you must lay out three guide lines, turn on Snap To Guides, and draw a curve which happens to be a straight line. Once again Corel's implementation is deeper - it has a far better Guidelines Setup dialog, and its guidelines can be at any angle - but you've drawn three or four precise lines in Canvas in the time it takes to draw one in Corel.
The same applies to bitmap drawing. Corel PHOTO-PAINT can do much more, with oodles of transfer modes for every tool, and so many settings for texture and stroke and so forth that your head spins. In Canvas, on the other hand, it's easier to understand what I'm doing.
Canvas is smaller than Corel: one program instead of two, a 40 MB installation instead of 135 MB, 20 MB of RAM instead of 60 MB. It also feels smaller in features: fewer transfer modes, simpler color models, no lenses, and so forth. But Canvas's implementation generally doesn't feel limiting - just easier. Corel presents itself as a vast powerhouse of professional-level features; certain aspects of the interface are unbeatable; and the results can be more subtle and more impressive. But reaching those results can be a slow, daunting, touchy process, with false starts and frequent consultation of the manual; with Canvas, results come easily, quickly, and intuitively. Thus, most people will feel more comfortable with Canvas, and it will have the capabilities they'll need for most tasks.
And the Eyes in His Head -- Canvas's manual is quite good, and so is the online help in QuickHelp format; training videos are also available.
Canvas is a CPU hog; even in the background with updating turned off it grabs a heavy share of cycles. Though it generally feels stable, it crashed or froze several times during testing. I encountered some bugs of which my contact at Deneba knew nothing: an arrow in a dialog box that the manual says to drag but can't be dragged; text in an object container not wrapping properly; Control-clicking to get a contextual menu and finding the computer temporarily frozen. In a full-priced program that's been through one maintenance revision (6.0.1), that's distressing.
The cost, like that of comparable programs, is high. That's a pity, especially since you may be paying for features you don't need. No one can deny, for instance, that Canvas's text abilities are remarkable; but to expect it to compete with QuarkXPress or Microsoft Word is silly, so a real-time spell-checker (which auto-corrects as you type), automatic hyphenation, plus widow and orphan control are overkill. Canvas's ability to turn drawings into Java-based Web pages frankly repels me. Deneba trumpets Canvas's plug-in-based architecture, but fails to use this feature to create a more attractive pricing model. You don't have to load what you won't use, so why must you buy it in the first place? Deneba could sell a splendid entry-level draw/paint program for half the price.
Despite these reservations, Canvas 6 is a worthy successor to Canvas 3.5, and has replaced it on my machine. Canvas 3.5 was a motley collection of independent tools, many with primitive, quirky interfaces and limited abilities; with Canvas 6, Deneba has successfully updated and unified those features into a thoroughly modern draw/paint program, effective, satisfying and pleasurable to use.
Canvas 6 has an approximate street price of $380 ($200 competitive upgrade). It requires a Power PC processor, System 7.5 or later, 32 MB RAM, with 40 MB of hard disk space recommended. It comes with three CD-ROMs containing thousands of clip art images and fonts. A demo version is available for download.
Article 3 of 3 in series
by Matt Neuburg
For the past six years, my relationship with Deneba and its combination draw/paint program Canvas has been something of a roller-coaster ride. With Canvas 3.5, I was contented: it was an excellent replacement for my old favorite SuperPaint, which was starting to show its age; and, Canvas's splendid import/export capabilities made it useful in many difficult situationsShow full article
For the past six years, my relationship with Deneba and its combination draw/paint program Canvas has been something of a roller-coaster ride. With Canvas 3.5, I was contented: it was an excellent replacement for my old favorite SuperPaint, which was starting to show its age; and, Canvas's splendid import/export capabilities made it useful in many difficult situations. With Canvas 5, I was disgusted: it was slow, it felt like a port, it was unstable, the interface was incomprehensible. With Canvas 6, I was surprised but once again contented: the program had been thoroughly cleaned up and was now a worthy successor to version 3.5. Although it lacked the power of either CorelDRAW or Corel PHOTO-PAINT, which I had reviewed shortly before, Canvas 6 was simple and convenient, satisfying and delightful for general use; and I found myself turning to it often.
Now, with Canvas 7, I'm still contented but also puzzled. Its advances over its predecessor are real, but so miscellaneous that the program seems to have found its feet while losing its way. Bare enumeration of new features would be in vain; you can consult a list at Deneba's Web site. Instead, I'll describe their general categories, and try to assess whether the changes are moving this program in the right direction. (It might help, at this point, to read my earlier reviews and Deneba's feature list, so as to get a sense of where I'm coming from.)
Cleaning Up the Workspace -- On startup, Canvas 7 shows no obvious changes; there's nothing like the dramatic alteration of the workspace that marked the leap from Canvas 3.5 to 5, or even 5 to 6. But you soon discover numerous small interface tweaks. To change the view's zoom factor numerically, you can now type directly into the window's zoom value box, without having to bring up a palette. You can rotate the window for a better view. Aligning of objects and the "smart mouse" are now accessible via contextual menus. Guidelines can now be positioned numerically.
Bezier drawing is better on several counts. Colored nodes and anti-aliased drawing make curves far easier to see. Selecting a node now reveals not only its handles but those of the two adjacent nodes as well. The number of nodes can be automatically reduced. It is at last possible to draw all or part of a curve live by fitting it to points.
Breaking Down the Barriers -- One of Canvas's greatest strengths has always been how it combines on a single page three types of objects: vector (draw), text, and bitmap (paint). Previous versions did much to reduce the conceptual barriers between these object types, and Canvas 7 does even more.
For example, in the past, while you could create a bezier curve by drawing freehand, you were then entrenched firmly in the bezier world, forced to work with nodes and handles to reshape the curve. Now a new tool lets you reshape it by continuing to draw freehand, and another lets you pull a point on the curve as if it were a rope.
Similarly, with a bitmap object, you could previously use vector tools to draw a shape, but to select a non-geometric area, if color-based tools couldn't handle it, you had to draw freehand. Now bezier shapes can be converted to selection shapes (and vice versa).
Deneba has lifted major limitations on transparency modes introduced in Canvas 6. For example, if you added directional vector transparency to an object, you got a simple gradient running from one end-node at 0 percent to the other at 100 percent; you could move the end-nodes, but that was all. Now you can interactively add intermediate nodes and dictate their transparency values.
It was previously possible to turn a vector or text object to a bitmap, but now such objects can receive filters and adjustments previously reserved for bitmaps, such as blurring, posterizing, and color shifts, without turning them to bitmaps; they keep their editability as vector or text objects. In essence, the object is seen through its own private paint-type filter; so it isn't surprising that Canvas 7 also introduces lenses.
Weaving the Web -- Gone is the objectionable Java-based Colada; Canvas now generates HTML documents directly. But this HTML relies on CSS level 2 absolute positioning, so (unlike tables) it can't be handled by older browsers, nor even by the latest version of Netscape Communicator unless you render text as images.
To export as GIF or JPEG, you no longer need to choose one or the other and then pass through a sequence of confusing dialogs; instead, you make all your choices in a single export dialog. This export dialog isn't any easier to understand, but it is certainly more convenient, especially since, along with new optimization abilities, it previews up to four different export options simultaneously. Also, it is now possible to rotate a bitmap and retain that rotation when exporting. Thus, one no longer needs another application to post-process a JPEG made at the wrong compression, or from an inverted scan.
A new document type permits creation and editing of animated GIFs, with frames represented by "pages;" you can view several successive frames simultaneously, but amazingly there is no way to play the animation without exporting and switching to a Web browser, and there are no built-in transitions such as wipes and tiles, even though QuickTime is present to help create them.
Reading the Tea Leaves -- Canvas 7's documentation is complete and compact, though I often find the verbiage confusing. An accompanying CD of narrated screen shot animations is very helpful. Online help is good, but balloon help or more copious tooltips would be better: many important options in palettes are represented only by uninformative icons.
Canvas 7 is definitely a better version of what Canvas 6 was, a pleasantly straightforward all-purpose draw/paint program, adequate to the needs of most users. As such, I enjoy it, I turn to it often, and I recommend it.
On the other hand, I feel that Canvas 7 doesn't introduce new features so much as it cleans up and rationalizes Canvas 6; Canvas 7 feels good mostly just because there were places where Canvas 6 felt clumsy or inconvenient. It's debatable, therefore, whether Canvas 7 really warrants either the whole-number version increment or the $100 upgrade fee - especially since Deneba has failed once again to attend to some of Canvas's most basic features. The delay between clicking on a toolbox icon and the popping-up of its sub-palette is still too long. There's still no keyboard navigation for moving from one bezier curve node to another. The program isn't scriptable. Too many features are available only through modifier keys (Option-choose this menu, Tab-click this node), making the program hard to learn. And the painting tools are still crude; with Canvas, you could exhaust a whole day and all your patience before you'd achieve the painterly effects you can get with a single stroke in Corel PHOTO-PAINT, with its options for brush and edge texture, bleed and sustain, dab spacing, stroke smoothing, color shifting, and so forth.
This raises the larger question of what an all-in-one program should be. Canvas ranges wide but is spread rather thin. It lags behind the individual competition in every department it has chosen to enter: in painting, page layout, Web images, Web pages, and GIF animations - even in certain aspects of drawing - other specialized applications are ahead, sometimes far ahead. Canvas 7 now seems to be playing copycat, trying to catch up in every area at once, with results that are sometimes inadequate (like the GIF animation) and sometimes inappropriate (like the new FTP capability). Deneba might profitably refocus Canvas on achieving greatness in a few well-defined areas, rather than risk mediocrity in many. Canvas isn't QuarkXPress, GoLive, WebPainter, or Anarchie, so why pretend? In my view, Deneba should return its attention to achieving its basic mission with Canvas, excellent drawing excellently combined with excellent painting.
Whether Deneba can afford not to do this is really a question of whether users will continue to find that the convenience of a single general application outweighs the inability to accomplish what's perfectly possible with several individual dedicated ones. This is the common quandary of "Swiss Army knife" applications. If users become so frustrated by Canvas's inability to play its own GIF animations, or to export text objects as HTML text that browsers can actually render, or if they find themselves repeatedly turning to other paint programs to achieve the fine control that Canvas denies them, they may wonder what real advantage Canvas offers. There is also, to be sure, the matter of price; and Deneba's new aggressive policy of offering Canvas as a download for just $130 is commendable. But even this policy could backfire, since it could cause long-time Canvas users to feel understandably enraged at being asked to pay almost as much ($100) to upgrade. Also, Corel is fighting back by offering the CorelDRAW and Corel PHOTO-PAINT package, in a slightly crippled form but without time limitations, absolutely free.
Canvas 7 requires a PowerPC-based Mac with Mac OS 8.5 or later and 32 MB of RAM with a monitor running at 16-bit color and with at least 800 by 600 resolution. A standard installation requires about 80 MB of disk space. Canvas 7 costs $375 with CD-ROMs, printed manuals, font and clip art collections, $130 without, and Deneba makes a free 15-day trial version available.