To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Add your files
-[ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-[ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-[ ] [Set up project integrations](https://agile.bu.edu/gitlab/ec504/ec504_projects/group5/-/settings/integrations)
## Collaborate with your team
-[ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-[ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-[ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
Use the built-in continuous integration in GitLab.
-[ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-[ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-[ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-[ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-[ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
## Name
Bouncing Shape
@@ -54,39 +10,38 @@ This Project aim to Design and implement a Java application that efficiently bou
Mohan Guo -- The project leader plays a positive role in the division of labor and supervision of the project. Flexibly assist with debugging and modification when encountering code issues in two groups.
Mohan Guo, Jiangjian Xie-- The rasterization part.
Wenyuan Cui -- Model main thread and the collision physical engine part.
Wenyuan Cui, Jiangjian Xie -- Collision section code writing group. Responsible for querying and writing physical models of object collisions in three-dimensional space, and establishing spatial models, physical models, and object models.
Shanshang Zeng--The project leader, assisting and log writting.
Zhekai Zhu, Shanshang Zeng -- The deformation part code writing group. Responsible for querying and writing code implementation for objects colliding with boundaries in three-dimensional space to generate deformation.
Zhekai Zhu -- The deformation part.
## General implement
In this project, the VertexBufferObject (VBO) class is utilized to manage the geometric data of 3D models, facilitating the rendering and manipulation of complex figures. The JBullet library creates a realistic physical simulation environment where it handles collisions and deformations of objects. Each 3D model is represented by a RigidBody in JBullet, allowing it to interact physically with other objects and forces in the simulation. Changes from physical interactions, like collisions, are reflected back in the VBO, updating the model's geometry in real-time. This setup provides a seamless integration of detailed graphics rendering with robust physics simulation for interactive 3D environments.
In this project, the VertexBufferObject (VBO) class is utilized to manage the geometric data of 3D models, facilitating the rendering and manipulation of complex figures. The jMonkeyEngine library is used to build physical simulation environment where it handles collisions of objects. Each 3D model is represented by a RigidBody in jMonkeyEngine, allowing it to interact physically with other objects and forces in the simulation. A tunable deformation algorithm is designed. Changes from physical interactions, like collisions, are reflected back in the VBO, updating the model's geometry in real-time. Then this updated VBO will be used to rasterize so that the shape in the frame will update.
## Features
Minimum requirements:
## List
Collision (100% completion rate)
jbullet
1. Real-Time Physics Simulation:
JBullet can be employed to add real-time physical effects to games and interactive applications. This includes simulating gravity, collisions, and other forces.
jMonkeyEngine is employed to add real-time physical effects to games and interactive applications. The data in that outer file will be stored in a customized data structure VertexBufferObject, where the location of points and indices will be stored. This data structure can be used by jMonkeyEngine to form rigid body by converting the VBO into the jMonkeyEngine needed data type Mesh. This transition from vbo to mesh costs O(n) time.
2. Deformation:
Deformation is designed according to several factors. The details are stated in the slides. This is also an O(n) algorithm where all components in vbo that is close to the point where collision happens will be iterated.
2.Collision Detection:
It provides efficient collision detection capabilities, capable of handling complex scenarios with multiple interacting objects.
3.Rasterization:
Rasterization part is completed following the commonly used rasterization procedure.
3. Rigid Body Dynamics:
Supports simulation of rigid body dynamics including movement, rotation, and interaction effects of objects.
More features:
4.Soft Body Dynamics:
Although JBullet primarily focuses on rigid bodies, applications needing to simulate more complex materials (like cloth or fluids) might require extensions or complementary libraries.
1.Physical Engine:
jMonkeyEngine can provide the customized gravity. The elasticity of triangle edges is implemented in the deformation part.
Deformation (70% completion rate)
vecmath
1. Vector Classes:
Implements two-dimensional, three-dimensional, and four-dimensional vectors.
Supports common mathematical operations such as addition, subtraction, dot product, cross product, etc.
2. Add obstacles:
100 imovable cube obstacles are added.
2. Matrix Classes:
Includes various matrix structures, such as 2x2, 3x3, and 4x4 matrices.
Matrix operations include multiplication, inverse, transpose, etc.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.