2023 Linear Algebra Weekly

Class videos

2023 Fall BS201: Linear Algebra

Week 4

Class Information

Course Description

Course Objective

Advanced Encryption Standard (AES)

3D graphics

  1. 3D graphics

    We will use the Go programming language and the ebiten package (which is a Go package for making games) to generate an interactive visual of a 3D object. Users can move or rotate the 3D object using their mouse cursor. By accomplishing this task, students will gain an understanding of the role of matrix in three-dimensional vector spaces.

    Screenshot 2023-06-30 at 2.26.42 PM.png

  2. Task Two: Shading

    Once students have grasped the concept of how 3D graphics are generated, they will have the opportunity to enhance the visual aspect further by incorporating shading. Shading adds depth and dimension to the 3D visuals, providing a more realistic and immersive experience for the viewer. During this task, students will be encouraged to delve into the intricacies of how shading should be implemented to maximize viewer engagement. This task also serves as a platform for students to contemplate the significance of optimization.

  3. Task Three: Creating patterns

    There will be a new challenge for students to enhance their 3D visuals: the addition of textures. Texturing surfaces provides a heightened sense of immersion and realism, particularly in industries such as gaming and virtual reality (VR). In this task, students will have the freedom to explore and select their own methods of generating texture patterns using mathematical formulas. They will then apply these textures to their own visuals. This exercise encourages students to exercise their creativity and problem-solving skills while gaining practical experiences.

  4. Task Four: Presentation

    We will spend a week for students to present and share their achievements in creating 3D visuals with added features such as shading, texture, and other enhancements they have implemented. This period will include a peer-review session, where students can provide feedback and constructive criticism of each other's work. Additionally, there will be a voting process to select the exceptional results. The group that receives the highest number of votes will be awarded bonus points.

The final product of this project is the creation of an executable program, akin to a game, which allows users to interactively manipulate and rotate a 3D object, enabling them to comprehend its shape. The program must be written in the Go language, and students are strictly prohibited from using any 3D graphic packages or external programs to aid in the creation of their final product.

To successfully complete this project, students are expected to possess a comprehensive understanding of the mathematical foundations they employ in their work. Moreover, students are required to prioritize the user experience, as the votes from their peers will significantly contribute to their final grading. This entails designing an interface and interaction that is intuitive, visually appealing, and engaging for the users.

There will be a poster session, in which students will showcase their collaborative group work and present their accomplishments. Each group should set up a laptop to demonstrate their final product to their fellow students. The classroom will be arranged so that every student can freely move around and experience the programs created by their peers. During the session, group members will take turns explaining their outcomes to other students, providing insights into the design choices, functionality, and unique features of their program. Students will put a sticker to the group where they find the most impressive or compelling work.

Useful links for 3D graphics

Convolutional Neural Network (Optional)

Textbook