What is Tymless?

  Tymless is a computer language for drawing and colouring shapes. It runs on Windows, and you can download it for free. There is also an on-line tutorial.

What can I use it for?

 
  • Fractals, from snowflakes to Mandelbrot and Barnsley
  • Tesselation, from regular tilings to Penrose and beyond
  • Fractiles - tesselating fractals
  • Complex number investigation
  • Cellular automation
  • etc, etc...
See the gallery for examples.

Why was Tymless created?

  I was fascinated by rule-based visual design, but frustrated with the tools available for exploring the subject. That is to say, there are good tools for specialised areas such as tesselation and Mandelbrot fractals, but I found them too limited. Low-level languages like Basic and C take too much time to program simple graphics. High level mathematics programs like Mathematica are expensive and too generalised.

How powerful is it?

 
  • many of the features you would expect from a full programming language, including loops, conditional jumps, user functions with parameters, variables, arrays, etc.
  • simple yet powerful control of recursion, the basis of fractal drawing.
  • interpreted, but fast. The syntax has been designed to let short programs produce powerful results.
  • advanced control of colour. You can adjust individually the red, green and blue, hue, saturation and brightness components of a colour. Minute gradients of change are possible.
  • the ability to draw pixels, lines and filled polygons, all properties of which can be further manipulated after they have been drawn.
  • cursor based drawing, via the 'turtle' metaphor. The turtle represents the current point of contact with the drawing surface, and can be turned and moved programmatically to create the drawing. New cursors can be created to branch off and complete nested sub-drawings of their own.
  • all points on the drawing surface are treated as complex numbers, allowing arithmetic to be performed on points, shapes and even lists of shapes. Tymless also provides transformations such as rotate and flip, and user-defined 'affine transformation' objects to perform groups of transformations in one operation.
  • images displayed on screen, ad can be saved as bitmap or scalable vector graphic.
  • animation by drawing then redrawing in a loop. Sequential images can be saved to file to create animated gifs. You will need a gif-animation generator to convert the bitmaps to gifs.
  • images are automatically fitted and centred to the screen.
  • image annotation with full control of font.
  • debug error messages stamped with program line and column number.

How does it compare with other languages?

  The Logo language introduced the idea of a programmable Turtle wandering around the drawing surface with a pen. Logo is now in use the world over, mainly in primary schools, in keeping with its objective as a teaching language. Although Logo is usually identified closely with Turtle graphics, it is also used in musical programming and robotics; anything in fact in which users can get instant and appealing feedback on the programs they write.

Logo can be used to produce complex graphical output, but as this is not its main focus, Tymless is able to offer more. To my knowledge, there is no version of Logo which allows filled polygons, comprehensive colour control, complex number arithmetic or shape transformations. And although Logo does allow recursion, it is harder for the programmer to control.

Tymless was more directly influenced by various L-System languages, such as that found in FractInt. These are a class of simple language invented by Aristid Lindenmayer (the 'L' in L-system) in which a long program (i.e. sequence of letters) is automatically generated from a short one by recursively replacing sections of code with sections of longer code. After the last iteration the final string is interpreted as a sequence of instructions to a drawing turtle.

Tymless is an anagram of L-System, and the first version was an L-System. But I found the format too restrictive, and the current version bears little resemblance. I believe Tymless can match any image made by an L-system, plus a lot more.

The Tymless interpreter is written in C++ (Borland C++Builder), and of course such a language could be used to create images directly. These would run quicker than Tymless, but take a lot longer to write.

Many mathematicians use Mathematica to generate similar images. I can't offer a valid comparison because I can't afford a copy! I suspect it is slower, although of course much more powerful in most respects.

How easy is it to use?

  Tymless is designed to be easy for beginners to pick up. Simple tasks can be performed in a simple manner. The visual design of the output image closely follows the design of the program, so that even non-programmers can soon become proficient through experimentation. The more complex and powerful aspects of the language can be picked up as needed.

Certain instructions, when creating an image, are more common than others, e.g. turn, move forward, etc. The keywords for these have been kept as short as possible to give the programs a shorthand conciseness. The language syntax, too, has a simplicity and consistency that makes it natural to use and learn.

 

© 2002 Julian Davies