CSS451 Fall 2022: 3D Computer Graphics

These are the final projects we build in the last two weeks of Fall Quarter 2022. Mostly, students projects must replace some of the core Unity3D functionality by our own implementations: Camera Manipulation, Scene Graph Composition, Object to World matrix computation and concatenation, Collision with the hierarchy, GPU Shader.

Please refer to each project posting on what additional installations are required to run the project. When available, you should be able to download, unzip, and double click on the .exe to run.



Developers
Pavel Peev
Mikhail Ermolenko
Cheuk-Hang Tse

Unity Custom Rigging

This is a tool for manipulating vertices on a mesh through a skeletal armature, much like other commercial modelling softwares. We support a system for assigning vertices to indiviual bones, either through selecting them individually or as a group using our box select. We also support automatic vertex bone parenting, where we assign vertices to bones based off which bones are closest. Finally, we support the saving and loading of the vertex data as a JSON.


Assets we Used: "Dark Knight" (https://skfb.ly/o6OpZ) by Nick Scott is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).

“Free Medieval Room” (https://assetstore.unity.com/packages/3d/environments/free-medieval-room-131004) by Omni Studio is licensed under Standard Unity Asset Store EULA Extension Asset (https://unity.com/legal/as-terms)

Project proposal       Final Demo Presentation       Final Project EXE      



Developers
Justin Seo
Po-Lin Tu

App Name: Punch!

This application allows the user to punch the objects in the scene. In this application, an arm stays on the right-hand side of the main camera. The arm and the main camera simulate a controllable character. The user is able to move the fist with the mouse, and the arm will rotate according to the movement of the fist. There are objects traveling towards the main camera, and the user should control the fist with the mouse and right-click on the mouse to punch those objects. Additionally, the user can move the main camera with WASD to dodge the incoming objects. Overall, this is a stress-relieving application that is somewhat similar to Fruit Ninja and Beat Saber.


From Unity: Emoji Texture

From Unity Asset Store: Stylized Sci-fi Texture, Alien Ships Pack, Scifi Crate, Free Pixel Font - Thaleah

Project Proposal       Final Demo Presentation       Final Project EXE      



Developers
Daniel Clarke
Sidhant Bansal

App Name: 3D Space Invaders

A 3 Dimensional space game, where the player controls a spaceship protecting the galaxy from alien robots. Move left to right with the AD keys, your turret will rotate and follow your mouse's position. Fire with left click and destroy any robots your lasers hit. If you defeat 50 robots you win! If 15 robots get past you then you lose. If you wish to edit the settings you can press escape to pause the game. You can leave, change the enemy's speed or spawn rate, and you can change the size of the battlefield.


From Unity Asset Store:

Opening Music: Zapsplat.com
Enemy Drones: VooDooPlay
SpaceShip: Alexandr Voevodov
Space Skybox: Sean Duffy

Proposal Presentation       Final Demo Presentation       Final Project EXE      



Developers
Elygh Thao
Ray Xia
Chloe Ngo

App Name: AR Cup Pong

Our project is inspired by the real word game of cup pong. Throughout this project, we seek to understand and demonstrate how 3D computer graphics apply to 3D games and visualization. Our project will have a 3-level hierarchy of controllable robot arms. Users will interact with our project through a GUI controller, which can control the difficulty level, for example, changing the cup size or shape, moving the robot arm position, and the number of cups on the table.

We plan to make our robot arm have a 3-part scene node hierarchy( the arm in our picture) in which the user will launch the ball into a cup. There will be two cameras, one being the first-person view and the second being an overhead cam view of the ball as it's flying. Having it like this will allow the user to judge the force needed after each try after seeing the view of the ball itself. The user will also be able to choose different positions. This will either be part of the GUI or have the player actually click where they want to stand. From here, they can manipulate the arm to launch the ball where they want.

From Unity Asset Store: AR Kit, Lean Touch.

Project proposal       Progress Demo Presentation       Final Demo Presentation       Final Project EXE      



Developers
Ethan Berg
Luca de Raad

App Name: Catapult Simulator

A simulator in which the user can control a catapult to fire projectiles at a target wall. The movement of the x and z of the catapult are controlled by the "T" portion of xformcontrol and the "R" portion of xformcontrol controls the spin of the catapult, as well as the angle of the launcher arm. The angle of this launcher arm determines how fast the projectile will be released from the catapult, the projectile then travels towards the wall. If it hits the wall, it removes the brick it hit, and then the bricks above it fall down. Click "reset" to reset the scene. "Spawn" button spawns in the projectile on the catapult and the "launch" button does just that, it fires the catapult!.


Textures used are from the following sources:
https://www.rawpixel.com/search/grass%20texture?page=1&sort=curated&topic_group=_topics - grass
https://cdn.pixabay.com - for wood texture
Flickr for brick texture - https://www.flickr.com/photos/triviaqueen/33886383152 https://www.deviantart.com/artofjosevega/art/Mountain-Ruins-copy-502752600 - background
all used under creative commons liscense

Project proposal       Proposal Presentation       Final Project EXE      



Developers
Kyle Huynh
Wesley Miravete

App Name: Skillshot

Skillshot is a round-based game where the user attempts to position and fire a cannon at the end of a robotic arm within a limited amount of time, to shoot a ball through as many hoops as possible. The robot arm is placed at the end of a circular shooting range, with one or more hoops appearing down the range. The user will attempt to position the arm within a given time limit, to shoot the ball through as many hoops as possible.


Credits:

Code: Wes & Kyle
Music: Wes
Models: Kyle

Proposal Presentation       Final Demo Presentation       Final Project EXE      



Developers
Austin Ferdinand Morales

Sung Joon-Im

Alicia Taing

App Name:

Our project is a virtual reality application that allows the user to placed in a sandbox with the ability spawn with a list of prefabs to spawn, delete and interact with. As an addition, the user is also witness the time of day in the sandbox space through a spinning sundial allowing to let the user see the effect of the time of day around them through a sun and moon. The user can manipulate the sundial to change the time of day or affect the orbit of the sun and moon. Objects spawned by the user are also affected by light sources displayed by the sun and moon.


Textures are provided from: AmbientCG

Project proposal       Final Demo Presentation       Final Project EXE      



Developers
Yuze Wang
Sam Sze

App Name: Warship Simulator

A 3D warship simulator in which the user experiences a very basic warship model building process and controls the warship model to do many things. The model building experience consists of putting glue on certain areas, then putting three main turrets to the model, finally putting cannons on to the turrets. After building the model, the user can “drive” the warship around using WASD keys, use the slider to control one of the three main turrets, adjust rotation and angle to aim at a target in distance, and use space key to fire. There is a small view camera on top of the controllable turrets, helping users to aim the target. And there is a progress bar suggesting the reload time of the cannons.


From Unity Asset Store: warships ww2, ceto

Project proposal       Final Demo Presentation       Final Project EXE      



Developers
Sav Wheeler
Laurence Monson

App Name: 3D Multiplayer Chess

3D Multiplayer Chess is exactly what its name suggests: a game of chess developed to work in the unity 3D environment. A turn tracker alternates the views between the black and white sides of the board, and each side can see a preview of what their opponent sees. Piece movement logic is fully implemeted: players can only move their own side's pieces in ways that those specific pieces can legally move. When selecting a piece, the valid spaces for movement are displayed. Though we have no logic for detecting the win/lose conditions, players can capture their opponents pieces like in real chess. Instead of a checkmate, you can consider it a game over if all your pieces are captured!


Gameplay Samples:

Project Proposal       Final Demo Presentation       Final Project EXE