The Code Crafters project aims to use the generation of quilts as a vehicle to teach computer science to users who are
familiar with traditional crafts but not programming. To fulfill that goal, workshops are to be run with software that
generates quilt designs based on half-square triangles. Participants will learn how the program works and how to modify
the generator / generated quilts to fit their visions.
The first prototype generator for the project was an evolution-based generator written in Java using
Processing. This prototype randomly generates a number of quilts according to
several base parameters. For as many generations as the user specified, the generator selects some number of "best"
quilts from that generation according to user-specified fitness functions. Upon reaching the final generation, the
user is able to sift through each of the generated quilts from that generation and view the RGB, Hexadecimal,
and HSV values for each triangle in the quilt.
The second and current prototype generator for the project is a live editor written in JavaScript using
p5.js. This prototype allows the user to upload a text representation of a base quilt
to begin editing or to define a quilt entirely in the text fields of the editor. The structure of the editor is built
around the idea of user manipulation of the plaintext quilt data. Fabric colors for the quilt are declared before the
main body of data and represented with single characters in order to introduce the concept of variables while doing so
in a way that many experienced quilters may already be experienced with.
Live editor and Evolution-based generator programmed in part by Aidan Buffum
Java
Traditional Crafts
Class Project
Team Project
Mario Level Generator and Quilt Renderer
By Aidan Buffum, Hung Hong, and Remy Kaldawy
The Mario Level Generator and Quilt Renderer is separated into three distinct parts. The first part of the program
uses a grammar-based system to generate random Mario Levels of a desired length. The second part runs a player agent
through each of the generated levels to determine playability in terms of whether the level can be completed and how
much of a challenge the platforming in the level presents. The final part of the program renders out any viable
levels, as determined by the evaluator, in both the standard graphics of Super Mario World and as a semi-optimized
quilting pattern.
Generator programmed primarily by Remy Kaldawy
Evaluator programmed primarily by Hung Hong
Renderer programmed primarily by Aidan Buffum
Made as the final project for the Artificial Intelligence for Interactive Media and Games course at Worcester Polytechnic Institute.
Solidworks
Arduino
Class Project
Team Project
Reprogrammable Puzzle Box
By Aidan Buffum and Sky Alsever
The reprogrammable puzzle box is a proof of concept prototype tool for Worcester Polytechnic Institute's annual escape rooms.
The box is built to be solved after receiving a combination of keypad inputs and dial turns.
Puzzles on the box are designed in multiple stages, the progress of which are displayed on four LEDs.
Programmers can define how many stages (between 1 and 768) the box should send the user through before
unlocking as well as which of the over 19,000 possible combinations to require the user to solve
for each stage. Programmers may also choose whether to randomize the combinations for each stage.
The box is designed to accept remote input to manually lock and unlock it.
While programming and debugging the box, the non-numerical keys may be used to manually lock and unlock the box.
These keys act as reset buttons during the administration of the escape room.
Cheat protection is built into the box such that resetting the box will reset progress but will not unlock the box.
Programmed and Constructed by Aidan Buffum
Designed by Aidan Buffum and Sky Alsever
Made as the final project for the course Novel Interfaces for Interactive Systems at Worcester Polytechnic Institute.