Storyspace 3: Space and Time, more from the Map view

Much of the time, tutorials and demonstrations of sophisticated apps get bogged down in detail, and make the app look difficult to use. Very capable, yes, but equally daunting to the inexperienced user. This short and very simple tutorial should show you how easy it is to create visually attractive hypertext using Storyspace 3 – or beautiful notes using Tinderbox 6, as it transfers across directly too.

When I am writing articles for my blog, I am constantly thinking in terms of hypertext, and how I could better express my stories using Storyspace. Having just completed writing a brief account of the cruelly short life of the brilliant nineteenth century British painter Richard Parkes Bonington, I thought that it might be valuable to display his paintings in France on a Map view to illustrate where they depicted, as well as on a timeline. I was also aware that my previous explorations of the Map view had been quite limited.

My first task was to get a better understanding of the Map view and its co-ordinate system. This is made easy by the fact that Control-clicking (or its equivalent) at any location in that view displays a popup window, at the top of which are the co-ordinates of that location.


Any writing space can also reveal its location in the Map view by exposing the $Xpos and $Ypos attributes. To those you can also add $Width and $Height to see its current dimensions too.

Exploring the Map view using these basic tools shows that, by default, the top left corner is around (-23, -32.5), and the bottom right is around (36, 50). So if you are going to set $Xpos and $Ypos, and set the Map view up reasonably, it is good to constrain co-ordinates within a rectangle defined by (0, 0) at the top left, and (20, 30) at the bottom right, for example.

If you are putting small writing space tiles onto a Map with plenty of space between them, then you might want to create user attributes to contain their (decimal) latitude and longitude, then write a simple script to scale those into your visible rectangle. In my case, I knew that each writing space tile would need to be placed manually, and there was no benefit to setting $Xpos and $Ypos by script. In other circumstances, that could be a very neat approach.

So what I set out to do was – as simply and quickly as possibly – to create a Storyspace document in which Bonington’s limited output could be shown attractively on a map of the north east of France, and on a timeline.

Create a new writing space by double-clicking on the Map view of a fresh, empty document, name it painting, and expose the following key attributes: $Xpos, $Ypos, $Lock (all from Map), $StartDate and $EndDate (from Events). Then make it a prototype and tuck it away from the visible area of the Map view.


You next need a decent-sized image of the map area which is going to be used in the Map view. I made mine using a screenshot from Apple’s Maps, but if this is intended for commercial use, you will have to be very careful over copyright: most of the convenient mapping apps use protected data, and may need to be licensed for commercial purposes.

Drag and drop the JPEG image of your map onto the Map view, placing its top left corner around the (0, 0) origin. Open the window up to a good viewing size, then Shift-drag the lower right corner of the map adornment until it fills the Map view to the extent that you wish. Shift-dragging is a standard gesture for altering the size of an object whilst preserving its aspect ratio, which is ideal here.

Adjust the window size iteratively until you are happy. Then select the map adornment and click on the padlock icon, locking it into place.


For this, as in other projects, I have scaled my paintings so that they are flattened JPEG images with neither side greater than 512 pixels. These ensure that the picture is intelligible, but not so large as to make the whole document huge.

Create a new writing space for your first painting by double-clicking away from the map adornment. Set it to use your painting prototype. Switch to Edit rather than Read, then drag and drop your first painting onto its content area. With the insert mark at the right of the image, add any text you might wish, such as its caption details.

Resize the writing space’s tile in the Map view until the painting is shown well in it, then drag it over the map adornment until its bottom left corner is close to the correct place on the map. Then insert its date(s) of creation correctly.


Repeat this for each painting which you wish to include, adjusting the positions of their tiles on the map adornment according to the location referenced and good layout principles.

Once they are all in place, make any final adjustments, then go through the tiles one by one and set the $Lock attribute to true (ticked) so that they cannot be moved inadvertently.


Finally create a new window for the document, and set that to show the Timeline rather than Map view. You will again need to tweak the window size to get it to look right. Your paintings will now also be shown on the document’s timeline, without any further effort.


After amazingly little work, and without any complex scripts or other power features, you can now view the paintings in space in the Map view, and over time in the Timeline. You can do this in Storyspace or Tinderbox, and use the resulting document in either app.

Here is my example file: Bonington

Happy hypertexting!