This is the home of the Braids project.

Braids was written to create patterns for woodcarving, and since it might be useful to others it has been released under GNU GPL through SourceForge. Below is a working Java Applet version of the program for you to try. It is less useable than the standalone Java Application version, but gives a taste of the functionality. You can download the executable jar at: http://sourceforge.net/projects/braids/ . The jar contains the code for the standalone version and for the applet.


Something went wrong with the applet. Hey ho.

Basic concepts:

Braid diagrams are made up of rectangular 'tiles' each with a fragment of the braid pattern on. These tiles can be moved and resized on the drawing surface. They are created either by invoking a popup-menu (right mouse click) and selecting the type of tile, or by dragging a tile from the palette on the right of the screen. The tiles can be rotated or flipped to ensure the correct edges meet.

There are four kinds of tile. In each the underlyimg braid fragment has been manipulated so that it forms a useful shape. These different shapes can then be layed next to each other to form many patterns. The kinds of tile are:

 The patterns on the tiles can be chosen from the limited selection in the default dictionary, or can be created by one of two methods:

Each braid fragment has a unique name. The braid fragment in a tile my be local to the tile - only that tile has the exact pattern, or it may be stored in the dictionary, and a reference is held in the tile. If a reference is held, then when changes (edits or design) are made to a tile you have the option of changing just the local tiles pattern or of changing the patttern in the dictionary. If you choose to change the pattern in the dictionary then all the tiles using that dictionary pattern will change. During fragment design you can see the changes happen to all the tiles using the pattern.  

At the top of the palette is a drop-down list. This list allows you to select the pattern from the dictionary that will be used when you drage a tile from the palette.

Editing a Braid Fragment

Editing of braid fragments gives you the opportunity to create your own repeating units. You can design your own corners (because corner tiles do not always look as good as they should). You can create patterns or designs as you choose. You can then mix these designs with with algorithmically designed tiles. Editing a braid fragment consists of adding, removing, and reshaping lines.

To remove a line, right click on it and choose delete.

To add a line right click on some empty space and choose 'line'.

To reshape a line, first click on it to select it. When selected you will see some scaffolding drawn in light grey. The scafflding consists of 'handles' (small squares) joined by line segments . You can reshape the line by dragging the handles to new locations. If you need to create a new handle, first choose the line segment on which you would like the new handle, thenn drag that line segment. A new handle is created automatically. If you wish to remove a handle, arrane for it to be on a straight lline between the handles either side. It will be removed.

You will notice that there is a rectangle on the screen. This rectangle represents the extent of the pattern fragment. Think of it as the window through which you will llook at the fragment. Any line, or portion of line outside this window will not be visible in the finished fragment. To help you visualise the finished fragment, the invisible portions are drawn in a lighter colour. When you accept edits, only those lines that wholly or partly wiithin the window are kept. Lines that fall entirely outside the window are discarded.

Making use of the Braid Patterns

Of course, all this iis useless without a way to use the patterns. Because of the limitations of the applet version of the program, you cannot save, load, or export the patterns. With the full version you have these options.

Currently there are two (or three depending on how you count them) means of export.