The latest version of this document can be found at

SketchBlock 2.8 - Digital Sketching For The Amiga


Here we are at release number 2.8.

It's now more than two years since I started coding SketchBlock. The first release being on the 30th January 2012, coding starting in the atumn of 2011.

In that time the project has grown somewhat and now is spread across 2.5Mb of source code, more than 83000 lines in more than 280 files! Written in 3 languages (C Python and Arexx). (not counting the perl scripts used for build ing the documentation!. There are now more than 150 ARexx commands.

This version address a few bugs and minor feature requests and clears the tables ready for starting work on SketchBlock 3.1 Professional.

See the Changelog for a complete list of changes and read on for an overview. SketchBlock is a developing sketching and painting package for AmigaOS. The project is in it's very early stages but is very bold in it's long term aims. What are those aims? To create a sophisticated application for digital painting, with full support for graphics tablets, layers, a wide variety of tools, configurable interface, full arexx script support, a plugin API and much more. The bias of SketchBlock will be towards painting and creating digital art rather than image processing, but it will likely be usable for manipulating photos too!

Version 2.6 remains available from Download From OS4Depot version 2.7 and above now know as 'SketchBlock Lite' may be purchsed from AmiStore for only 10.00 plus VAT. The Version 3 series to be know as 'SketchBlock Professional' is in progress.

Major Changes In SketchBlock 2.8

Changes In Previous Versions

Planned Features And Current Usage

SketchBlock may be start from either the sehell or from Workbench SketchBlock creates an assign SketchPath: which allows ARexx etc to find scripts, and default scripts to save to the correct dir. The assign is removed after the program exits. NB: PROGDIR: cannot be used for this as this only applies to the SketchBlock executable. ARExx, python, perl et al have their own 'PROGDIR:' Some debug info may be printed to the console, but usually ony in the case of an error.

Support Scripts

SketchBlock makes use of many support scripts written in both ARexx and python. These scripts use ProAction for a GUI. Some make us of PIL (The Python Imaging Library). To get the best out of SketchBlock please install the latest versions of these utilities.


The GUI is currently divided into 3 windows, the default layout has one large window containing the Sketch, where sketching and other editing is done, and two other windows, Tools on the left and Layers on the right. These windows can be hidden or revealed at anytime by pressing the TAB key.

Sketch Window

This is where the main sketching action takes place, it should be fairly intuitive, simply click with the mouse and drag to paint. Less obvious will that you can pick a colour from the current pixel by pressing CTRL at the same time as you left click with the mouse (or stylus if you have a graphics tablet).

Gadgets And Controls
Window Title
The window title displays useful info about the project, such as project name, modification status, filename ect
Pick Colour
Press CTRL whilst left clicking with the mouse or graphics tablet stylus.
The zoom gadget is at the bottom left of the Sketch Window, enter the desired zoom level in percent. The best graphical performance is obtained for multiples of 2. ie 25% 50% 100% 200% 400% etc but any zoom percentage may be specified.
Keyboard Shortcuts
As well as the varous menu shortcuts additional shortcuts can be defined in the prefs.xml file. These are intended to be user definable but a useful set of defaults are defined. Similarly to menus keyboard shortcuts can trigger commands, ARexx scripts or python scripts, indeed scripts written in any language. Please have alook at the prefs file and the scripts it calls to inspire your own customisations.
Future Plans

This window will remain as simple as possible so as to give the largest sketching space. However, a popup with Zoom presets wouldn't go amiss!

Tools Window

Layers Window


All windows share the same set of menus, these are defined via an xml preferences file, and can be user customised by editing that file. The following are the defaults supplied, you should customise them to your needs.
Project Menu

The default project menu contains the following entries

Brings up the New Project Window to allow and new Sketch Project to be created
Opens a requester to allow an existing sketch file to opened and loaded
Save a sketch to it's file, if a new sketch, opens a requestor to allow a new filename to be selected
Save As
Save the active sketch to a new file
Save AS Brush
Save the project as a SketchBrush
Export As
Flatten the project and export as a 32bit ILBM to the filename chosenor if PIL and ProAction are installed the option to choose from a range of formats will be offered
Import an image via the datatypes system
Postscript Print
"Print" the current project to a file as postcript. The GUI will offer various formats, postscript, eps, amd pdf.
Close the active sketch, if the active sketch has been modified since last save, a requester suggesting saving before closing will show
Quit the entire application, currently no waning requester is show (will be implemented later!)
Edit Menu

The edit menu privides entries control editing the project

Undo one action in the active layers undo stack
Redo one action in the active layers redo stack
Copies the currently active layer into the system clipboard as an IFF image.
Pastes the contents of the system clipboard into the active project as a new layer. Only works if the clipbaord has an image in it!
Clear Selection
Clears the current slection, and disables the mask
Invert Selection
Inverts the current slection
Alpha To Selection Sub Menu
Modify the slection with the alpha channel of the current layer. Actions are the same as those available in the tools.
Replace the slection entirely
Add to the current slection
Subtract from the current selection
errm any guesses?
View Menu
Zoom SubMenu
Zoom related commands.
Zoom to the preset percentages
Fit To Window
Zoom project so as to fit the whole project into the window.
Fill Window
Zoom project so that the whole window is filled. If the projects aspect ratio is not the same as the window, then parts of it will be clipped (scrollable of course).
Save Zoom State
Save the current zoom level and scroll bar offsets.
Restore Zoom State
Restores the zoom to the state saved with the above command. This is very useful if you wish to zoom in on part of the image, then zoom out to see the whole, then quickly zoom back to do some more close work.
Image menu
Image level commands and actions.
Scale Image
Brings up the Scale Image With Contents script
Layers Menu
Layer manipulation actions.
Import Layer
Import an image via the datatypes system and add it to the current project.
Export layer
Export the currently active layer as a 32bit ILBM
Add Alpha Channel
Creates an Alpha channel in the active layer, but does not other wise change the image
Colour To Alpha
Remove the current background colour from the image and replace with transperancy
Selection To Alpha
Creates an alpha channel from the current selection mask
Remove Alpha Channel
Removes the alpha channel from the active layer, and replaces it with the current background colour
Paths Menu
Path manipulation and loading saving etc.
Load Path
Load a path from disk, make it the active path
Save Path
Save the active path to disk
New Path
Start the path editor with a fresh path
Edit Active Path
Start the path editor, with the active path
Fill Active
Fill the active path with the foreground colour, operates on the active layer
Stroke Active
Stroke the active path with the current brush
Window Menu
Window manipulation Actions
Toggle Tools
Toggle Laters
Toggle the open and close state of the Tool and Layers windows
Snapshot Windows
Snapshots the positions of the active project, tools and layers windows
Create and select presets
Make Preset
Brings up a ProAction based requester to enable you to create a preset from the current tools settings. You may choose which settings you want restored when the preset is selected.
Preset list...
A list of currently available presets. Presets are stored as mini ARexx scripts that set the required state.
Vreate a load / save palettes.
New Palette
Creates a new empty palette and adds it to the application palette list as the active palette.
Load Palette
Load a palette from a file, makes it the currently active palette
Save Palette
Save the current palette to a file
Add To Palette
Adds the current forground colour to the end of the current palette
Select and remove input wedges and other miscellaneous scripts. These are script based plugins that add significant functionality to SketchBlock.
Draw Straight Lines with the current brush
Draw rectangular boxes using the current brush and paint tool settings.
Curves (new for 1.8)
An advanced plugin that allows you to draw bezier curves using the current brush.
The plugins is controlled by the mouse /tablet and the keyboard
Keyboard controls are as follows Mouse controls:
Click and drag mouse near the controls points (shown as dots) to move the ends of the curve and adjust its shape
Circles (new in 2.5)
CTRL click to set the centre then drag to swet the size of the circle. Press SPACE to stroke with current brush or SHIFT SPACE to fill with the current colour. Under the bonnet this script uses a path to simulate a circle, this is not 100% accurate but for most uses you'll hardly detect the difference.
Filled Boxes (new for 1.8)
Another advance plugin, this time with a ProAction GUI. It allows you to draw boxes, which may be filled, the outlined may be stroked with the current brush, the corners maybe rounded. etc etc. The location of the box id shown by dotted lines in the sketch window. It can be positioned via the GUI or by dragging the edges with the mouse. When working in the sketchwindow press "D" to draw the box or "C" to cancel. Or press the corresponding gadgets in the GUI window.
Copy Box
Coppies a rectagle in the active layer into a new layer. Just drag the mouse to select the area. This is a one of wedge, it removes itself after a completed copy.
Move Layer
Left click on the active layer and drag to it's new location then release
Scale Layer
Allows you to resize tha active layer. Use the mouse to resize the layer by dragging the edges or corners and press RETURN or SPACE to scale or ESC to quit
Remove Wedge
Removes the currently active input wedge.

Convolution Menu

Convolution actions.
Perform an emboss convolution of the active layer
This convolution creates the illusion of a deep chiselled effct
Apply a gaussian blur to the whole active layer
Horizontal Sobel
Apply sobel edge detecion in the hosrizontal direction
Vertical Sobel
Apply sobel edge detection in the vertical direction
Full Sobel
An advance script that combines the above two actions. The script itself performs extensive calculations using the READPIXELS and WRITEPIXELS functions to access layer data. Can create a cartoon like effect depending on the image, but will be slow on larger images. Be patient!

The latest version of this document can be found at