Skip to content

Stuyvesant AnnualCs final project -- turtle implementation of a ray marcher

Notifications You must be signed in to change notification settings

selym3/stuy-ray-marcher

Repository files navigation

stuy-ray-marcher

Stuyvesant AnnualCs final project -- turtle implementation of a ray marcher

Project

Create a visual work using the Python turtles library.

This may be the building of a visual scene or an animation. The intent here is artistic creativity, using primarily the resources of the turtles library and Python programming techniques.

It may also be an interactive work, in which case an adequate set of instructions needs to be provided for the user.

You will need to learn to use the turtle library well, including learning to use any techniques necessary for your project that we have not covered in class.

Scene creation: the creation sequence for the still image should take between 15 and 60 seconds.

or

Animation: the animation should take between 30 seconds and no more than 3 minutes

You should submit to the homework server:

  • the Python program file that runs your project (uploaded)
  • the address of the webpage discussing your project to the Comments-to-Teacher
  • The webpage should talk about
    • the difficulties you had to overcome.
    • the techniques you needed to master, especially those we didn't cover in class.
    • a measure of the time you spent on the project
    • any help you received from people and outside resources.
    • any instructions on how to recreate your project beyond simply loading it into Thonny and pressing Run.
    • ...and any other comments about the project you wish to share.

Requirements

  • turtle
  • pillow (Python Imaging Library)
  • tkinter (seemed to be there if Turtle worked)
  • linux is recommended, as for now, the windows version uses slower threading (4-8x slower)

pip install -r requirements.txt

Instructions

  • Visit examples.py to see the function names of the example scenes and how to make a scene
  • Visit main.py to see where to call the example functions or where to put your own
  • Visit constants.py to configure some backend stuff (threading, lighting, screen size)

python main.py