Turtle 3D
========

In Turtle Graphics, rather than a coordinate system we have a pen which follows a set of rules without any regard to it's current position or orientation.

Forward, turn right, forward, turn left, about face, forward.


Usage


        var turtle = require('turtle3d');
        var coords = turtle("^<XF^<XFX-F^>>XFX&F+>>XFX-F>X->", 90 * (Math.PI / 180));


Typically there is a strong connection between using L-system or Lindenmayer system and turtle graphics in either 2 or 3 dimensions.

        var fractal = require('lsys');
        var lsystem = fractal("L", {
            "L": "L+R++R-L--LL-R+", 
            "R": "-L+RR++R+L--L-R"
        }).iterate(2).apply({"L": "F","R": "F"}); 
        
        lsystem.debug();
        var turtle = require('turtle3d');
        var coords = turtle(lsystem.string(), 60 * (Math.PI / 180));
        
Uses an LSystem to build and then Turtle to apply the rules for a Gosper Flowsnake with two iterations, a two dimensional spacefilling fractal.

Syntax
        
        F: draw and move one unit vector forward
        +: turn right
        -: turn left
        &: pitch up
        ^: pitch down
        <: roll right
        >: roll left
        |: reverse vector direction
        [: push current pen position
        ]: pop current position


# install

With [npm](https://npmjs.org) do:

```
npm install turtle3d
```
