This repository contains the code needed to complete the programming assignments in UW CSE 599 on E-Textiles for the Fall Quarter of 2021.
In the command line, type:
git clone https://github.com/mhofmann-uw/599-Knitting-Assignments.git
Next, change into the working directory by typing:
cd 599-Knitting-Assignments
(note: if you installed the repo in a subdirectory, make sure to type out the full path.)
If you have trouble opening the file, you likely need to run the following commands:
git submodule init
git submodule update
^These commands initialize and update the submodules (other Git repos) that the visualizer depends on.
See the github documentation on cloning a repository if you need assistance with installation.
This project may work on older versions of Python, but it was developed with Python 3.9
Particularly if you are a Windows User I highly recommend running this code as a PyCharm Project.
Otherwise:
Install the required packages using the requirements.txt
file:
pip install -r requirements.txt
while in the project directory.
Add the project directory to your PYTHONPATH
In Unix machines: export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
For Windows: set PYTHONPATH=%PYTHONPATH%;C:\path\to\your\project\
Now you should be able to access main methods from cmd line (e.g., python tests\test_simple_knitgraphs.py
)
Assignment 1 is spread across two packages and the test package
This package contains the classes used to create a knit graph (Loop, Yarn, Knit_Graph, Pull_Direction(Enum)). Methods in these classes need to be implemented to complete Assignment 1
This package contains a visualizer method to help visualize simple knitgraphs. This may be useful to extend for debugging future projects It also contains a set of simple knitgraph which manually generate some simple textures. In future assignments we will make it easier to define more complex knit graphs. 2 of these textures need to be implemented for assignment 1
This package contains a representation of a v-bed knitting machine and 'KnitoutGenerator' class to create knitout instructions by manipulting that machine-state. Knitout operations are in the machine_operations file.