Upload Assignment: Programming Assignment 2: 3D Modeling & Transformations
ASSIGNMENT INFORMATION
1. Overview
This programming assignment is meant to acquaint you with 3D modeling and model transformation. You will implement a creature model and make it move by performing transformations on its joints. You will also need to submit a simple reference image or concept drawing with your code.
Basic Requirements
Before coding, please have a look at file “Component.py”(TOREAD 1): we recommend calling functions in the Component class in your keyboard event functions to make the joint/body of your creature move. Please be patient and have a look at what the Component class provides to make your creature move during running the program.
After reading the code in the “Component.py” file, you should start implementing certain features in certain blocks/files in the skeleton code.
- TODO 1 in “DisplayableCube.py”: please implement your own geometric object classes that later its instances add up to be your creatures. In addition to the cube class we provide you, you could also consider building the geometric object with GLU functions: Cylinder, Cone(no caps), Sphere, Disk Please create another .py file to write your needed geometric object classes other than cube.
- TODO 2 in “ModelLinkage.py”: please implement your own creature class by mimicking the form of the ModelLinkage class. You will need to create a few instances of what’d been defined in TODO 1 and connected them as a whole. Use them to construct a 3D insect, spider, or scorpion model from cylinders and/or ellipsoids. The model need not be anatomically accurate, but each limb should have at least three joints. You can model the body as a single ellipsoid. You
Due Date
Tuesday, October 13, 2020
12:00 PM
Points Possible
100
1 of 5 10/5/21, 21:28
Upload Assignment: Programming Assignment 2: 3D … https://learn.bu.edu/ultra/courses/_78777_1/cl/outline
|
need to figure out how to use hierarchy structure to store components and set them in proper position through chaining transformation. Remember to modularize your design to one class (e.g. like Arm.java in example code), you might need to reuse them in next programming assignment.
Extra Credits
Programming Style 9. For any modified or newly added source file, you should include a brief explanation about what you did in this file in the file heading and add your name to the author list. Your code should be readable with sufficient comments. You should use consistent variable naming and keep reasonable indentation. In python, we prefer to use reStructuredText format docstring, for more details about this format, please check here. Model Requirements In addition to roughly following the reference image/drawing you will provide, your model should be suitably complex: • at least 6 limbs required (tails and wings count) • each limb must have at least 3 joints |
2 of 5 10/5/21, 21:28
Upload Assignment: Programming Assignment 2: 3D … https://learn.bu.edu/ultra/courses/_78777_1/cl/outline
|
• a pair of opposing limbs must be present (to test mirrored motions) 2. Resources 2.1 Start code A Python Program skeleton PA2.zip, which includes basic classes, methods, and main pipeline, is provided for you. You are expected to complete the sketch program by completing/modifying Sketch.py. There are comments in the skeleton code that will help guide you in writing your own subroutines. Some of them are noted as “TODO” or “BONUS” which suggest you should complete the corresponding block. 2.2 Environment Setup Installing the appropriate programming environment should be covered in a lab session. For more step-by-step instructions, please check the environment setup page. 2.3 User Interface The user interface to the program is provided through mouse buttons and keyboard keys:
|
3 of 5 10/5/21, 21:28
Upload Assignment: Programming Assignment 2: 3D … https://learn.bu.edu/ultra/courses/_78777_1/cl/outline
|
0:00 / 2:38 3. Submission (due by 11:59 PM, Tuesday, 10/12) 3.1 Source Code Your program’s source files are to be submitted electronically on Gradescope. Please wrap everything in your project folder to a zip file and submit it. The code you submit should conform to the program assignment guidelines. 3.2 Demo Part of your grade for this programming assignment will be based on your giving a short demo (5 minutes) during the CS480/680 scheduled labs following the assignment due date. You will be expected to talk about how your program works. 3.3 Reference image or drawing Please submit a reference image or drawing of your design. This can be relatively simple, and is simply to motivate some modeling with intent. 4. Grading Task 3D Creature model constructed satisfies requirements for shapes, hierarchies, and color Proper rotation at the joints The creature design is similar to your reference image/drawing Eye movement Programming style (See Assignments > General Guidelines) 5. Code Distribution Policy You acknowledge this code is only for the course learning purpose. You should never distribute any part of this assignment, especially the completed version, to any publicly accessible website or open repository without our permission. Keep the code in your local |
4 of 5 10/5/21, 21:28
Upload Assignment: Programming Assignment 2: 3D … https://learn.bu.edu/ultra/courses/_78777_1/cl/outline
computer or private repository is allowed. You should never share, sell, gift or copy the code in any format with any other person without our permission.





