Turtle implemention for Jupyter Notebook


Keywords
Jupyter, Widgets, IPython
License
BSD-3-Clause
Install
pip install ipyturtle2==0.7.4

Documentation

ipyturtle2

Turtle implemention for Jupyter Notebook

Installation

if you use jupyterlab:

pip install ipyturtle2
jupyter labextension install @jupyter-widgets/jupyterlab-manager --minimize=False
jupyter labextension install ipyturtle2

If you are using Jupyter Notebook 5.2 or earlier, you may also need to enable the nbextension:

pip install ipyturtle2
jupyter nbextension enable --py --sys-prefix ipyturtle2

Supported Turtle Methods

  1. back
  2. circle: step is not supported
  3. dot
  4. forward
  5. goto
  6. heading
  7. hideturtle
  8. isdown
  9. isvisible
  10. left
  11. pencolor
  12. pendown
  13. pensize
  14. penup
  15. position
  16. reset
  17. right
  18. setpos
  19. setposition
  20. showturtle
  21. write: move is not supported
  22. color
  23. fillColor

All color params only support colorstring.

For method support request, please open an issue.

Custom Methods

  1. spiral_circle(steps, start_radius, radius_stride, angle_stride) draw spiral with circle
  2. spiral_forward(steps, start_arc_length, arc_length_stride, angle_stride) draw spiral with forward
  3. animating() return if the turtle is doing animating when drawing, default is False.
  4. begin_animation() let the turtle start animation
  5. end_animation let the turtle stop animation

Image Data Hook (pro use)

You can use the function window.__ipyturtle_get_image_data to get turtle panel drawing result.

const crop = false; // Set true to auto crop to contents
window.__ipyturtle_get_image_data(crop).then(data => {
    console.log(data); // image buffer
    // to base64
    // const base64String = btoa(String.fromCharCode(...new Uint8Array(buffer)));
})

Development

docker run --rm -it -p 8888:8888 -v $(pwd):/home/jovyan/ipyturtle2 jupyter/base-notebook bash
pip install -e ".[test, examples]"
jupyter nbextension install --sys-prefix --symlink --overwrite --py ipyturtle2
jupyter nbextension enable --sys-prefix --py ipyturtle2
jupyter notebook
jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
jupyter labextension install --minimize=False .
jupyter lab

http://localhost:8888

Publish

python setup.py sdist bdist_wheel
pip install twine
twine upload dist/ipyturtle2-*