Steve Abbott's Computer Drawn Celtic Knotwork


Now version 3.44k

Updated Dec 2009 with v3.44k which is designed for those with bigger screens and which allows some more colour options, anti-aliased drawings and XYZ export of the 3D data for use in, e.g. CarveWright software (the j version offers improvements to the HeightMap export for CarveWright). There was a skew error in the 3D exports which has now been fixed

The latest version has an AutoGrid feature that lets you create complex knots from a simple graphical template. The knot at the top of this page was done with this technique. You can also create Celtic rings or bracelets, such as:

Knots3D works, of course, in 3D. You create the knots in 2D then make them into 3D knots which you can rotate in 3D space. It can also output the knots in various 3D formats including VRML for viewing in browsers.

Click here to download the programs

Other programs you might be interested in
KnotTyer3D lets you tie real knots in 3D. Reef knots, bowlines, anchor bends ... - it does them all.
Click here to find out about it and download v 1.15.
Pretzangles. A new way of making intricate 2D and 3D designs. I wrote the program but the brilliant idea behind it is by Matthew Kells.
Click here to find out all about it.

Why Celtic Knotwork?

The beauty of such knots speaks for itself!

Why use a computer?

I don't have the slightest intention of trying to replace the wonderful craft of hand-made knots by computerisation. Hand-made is the real thing!

I wrote the program because it was a fascinating challenge.

I'd only wanted it to produce simple knots such as the one above, but once I had written it I discovered that it taught me a lot about knots that I could not have worked out by hand-drawing alone and I started to make it more and more complex.

The basic knot is so simple that anyone can do it by hand. But the knots at the start of the page would be too difficult for me. But if they inspire others to hand-draw their own knots, I will be well pleased.

How's it done?

The secret is in the method devised by Christian Mercat, a French mathematician. His method is suitable for the computer, but he also teaches it to those who want to make really fine knots by hand. See Celtic knotwork - the ultimate tutorial for a brilliant on-line tutorial.

The Program

The program has been developed primarily for my own pleasure, so it is neither professional nor bomb proof! There is a full Help file explains what's going on and there's also a button to create pseudo-random knots for inspiration.

Click here to download V3.444k Just unzip into a convenient folder and run it. It should run under XP, Vista and Windows-7. The old built-in Help is no longer supported by Vista and Windows 7 (it's even been tested on the 64bit version), so just open Help.rtf into Word and you can read it all there.

Remember - if all else fails, read the manual. Knots3D has so many options, because that's what users requested, that it's quite complex. The Help file explains everything in detail so have a good read of it to get to know all the things you can do with the program.

Feedback from visitors

I've been astonished that such an obscure site would have attracted so many interesting visitors. Many thanks for your e-mails, comments (mostly positive!) and suggestions for improvements.

Improvements requested

1. Nicer knots. Done! That's what's so good about version3.
2. Mac, Linux... version. No! I don't have time to learn Java.
3. Bigger, faster 3D in more formats than just VRML and POV. Faster and OBJ, DXF & STL added. And VRML2 now standard which allows some extra tricks.
4. Fixes to those pesky red-line blues. In the works, and they're not as bad as they were ...
5. A ScreenSaver version. Done.
6. An easier, more reliable install. Done - it now uses InstallShield which is about the best there is.
7. The ability to create custom knots. Done!
8. Make the 3D work on all graphics cards. Well, it's much better than it was!
8. Help improve the 3D navigation. Done
9. Set the background colour for the 2D knot as well as the 3D knot. Done
10. Allow export of .dxf files for 2D CAD/CAM. Done
11. Allow export of emf/wmf to allow high magnification of 2D knots. Done
12. Improve DXF and DXF-2D export. Done
13. Make it easier to create custom designs. Done
14. Bend the knots into 'real' 3D to create Celtic rings and bracelets. Done
15. Allow 'Constant Shape' mode for Random knots. Done
16. Remember the last folder you used. Done
17. Animate the knot drawing in 2D. Done
18. Improve the line quality of the 2D knots by making them anti-aliased. Done
19. Adding Height Map and XYZ output for CarveWright software. Done
20. Make it install easily under Windows-7 64bit. Done

3D Knots

Following a suggestion from John McDermott I found a way of outputting 3D co-ordinates from the knots in a format that allowed (crude) POVRay views.
But just at that time I bought, for other reasons, a book on graphics for VB5: Visual Basic Graphics Programming, by Rod Stephens. I quickly found that this superb book gave me most of the answers of how to generate fancy 3D knots from within my own program. Rod kindly saved me a lot of time by customising some of the routines from the book and it was then straightforward to blend the two programs together. Please note that I have 'optimized' some of his code for maximum speed. This might have unintended consequences in the 3D views. All credit for nice views goes to Rod, all blame goes to me.

For more information on Rod's book (which is now in its Second Edition) see: Visual Basic Graphics Programming
and for Rod's own home page see: Rod's amazing source of VB stuff

Eventually I learned enough about POVRay to find a way of outputting the knots in a compact (comparatively) format that POVRay can render (left picture).

Terry W. Gintz helped me debug .OBJ and .DXF outputs, and his graphic (right picture) shows what happens when you import them into a powerful 3D program such as Bryce.

To see a knot in VRML2 format, click here for VRMLknotn.wrl which is ~50KB (for those who want to read the VRML content, note that it's in gzip format so you'll have to gunzip it first (your browser gunzips it automatically for viewing))
Note that with VRML2 I've now made the knot spin on startup!

From v3.35 there's the ability to output the knots in a format useable on CAD/CAM machines. The picture shows a simulated engraving from CAD software of a knot as it might be machined into a piece of wood or metal. This functionality is particularly useful for schools - and was suggested by Peter Patient who works extensivly with the UK schools CAD/CAM community

I'm grateful to Nathan Smith for helping improve the DXF and DXF-2D outputs, to Todd for suggesting the way to make more complex custom knots, to Paul Hilton for the idea of curving the knots into rings/bracelets and to Steve McQuinn for identifyng bugs in the rings program and inefficiencies in .obj files.

Thanks to Nagata Shojiro for suggesting animating the 2D drawing process.

And thanks to Ben Thompson for persuading me to add anti-aliased lines, better colour and also to fix some drawing bugs

And thanks to Jim Darrah for persuading me to add Height Map and XYZ output ready for the CarveWright community

And thanks to Steven McQuinn (again!) who took the Height Map output into Carrara and produced this amazing knot in a pseudo CarveWright manner.

If you have comments or suggestions for improvements then mail me:
Steven Abbott, Ipswich, England