Optional Contest: Scheme Art
The output is art,
But what about its source code?
It's just as abstract.
This contest is completely optional! Winners will earn extra credit.
Entries are due at 11:59pm on Monday, 11/27.
Here are the steps to enter the contest:
- Download scheme_contest.zip.
From your Scheme project, copy all the Python files to the scheme_contest directory. This should be:
- Complete the
contest.scmfile (you can render your drawing with
python3 scheme.py contest.scm). For more information on drawing graphics, you may find the Scheme Primitive Reference to be helpful.
- Take a screenshot of the "Scheme Turtles" window containing your artwork.
draw procedure should draw your entry and then exit on
All entries, including their source code, will be distributed to your fellow students for voting. Please do not include personal info in your submission.
Important: when you are ready to submit, follow both these steps:
python3 ok --submitto submit your
contest.scmfile to Ok.
- Fill out the contest form. Make sure the information here is correct, since we'll be using it to generate your entry in the Scheme art gallery.
Create a visualization of an iterative or recursive process of your choosing,
using turtle graphics. Your implementation must be written entirely in Scheme
using the interpreter you have built. In particular, you may not use any
external image files. However, you may add primitive procedures to interface
math modules. Other than that, all computation must
be done in Scheme. If you do add new primitives, then make sure to submit your
scheme_primitives.py in addition to
We will have two categories of submissions:
- Featherweight: Fewer than 256 Scheme tokens
- Heavyweight: Fewer than 2048 Scheme tokens
Extra credit will be awarded as follows:
- 3 points to 1st place in each category
- 2 points to 2nd place in each category
- 1 points to 3rd place in each category
You can check the number of tokens in a Scheme file called
running the command
python3 scheme_tokens.py contest.scm
Entries (code and images) will be posted online, and winners will be selected by popular vote as part of a future homework.
To improve your chance of success, you are welcome to include a title and descriptive haiku in the comments of your entry, which will be included in the voting.
Entries that do not construct an image iteratively or recursively may be disqualified. Please don't just draw a preexisting image, even if the drawing function is iterative or recursive. If you're unsure, just ask.
For inspiration, you can peruse these galleries of past entries.