diff options
author | sotech117 <michael_foiani@brown.edu> | 2024-04-05 23:45:58 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2024-04-05 23:45:58 -0400 |
commit | 82822c228977aae88aec89061c9140fd76135581 (patch) | |
tree | 4a7d32687f816e2e5c96adc736b00b5ce4ef3876 | |
parent | 33da8e058fdb9eec8bccc820b3b79993b505fc61 (diff) |
update readme
-rw-r--r-- | README.md | 47 |
1 files changed, 1 insertions, 46 deletions
@@ -1,49 +1,4 @@ -# Assignment 4: As-Rigid-As-Possible Surface Modeling (ARAP) - -**Released:** 3/18/24 - -**Due:** 4/5/24 @ 11:59pm EST - -In this assignment, you will implement a system for user-interactive deformation of 3D meshes. In your system, mesh vertices can be re-positioned by clicking and dragging. Your system will update the rest of the mesh in response to these user interactions such that it moves as-rigidly-as-possible (i.e. the deformation it exhibits is close to a rigid transformation). The end result is a deformation that looks physically-plausible, as if the mesh has an underlying rig / skeletal armature. - -To achieve this goal, you will need to formulate the deformation process as an optimization problem, in which you will alternate between estimating the best-fit rigid transformation for each mesh vertex and solving a sparse linear system to find new mesh vertex positions. - -## Relevant Reading - -- The lecture slides! -- [As-Rigid-As-Possible Surface Modeling](https://igl.ethz.ch/projects/ARAP/arap_web.pdf) on the mathematics behind the ARAP algorithm. - -## Requirements - -This assignment is out of **100 points**. - -Your must implement exactly one feature: the algorithm described in the ARAP paper. That means, for each user interaction, your program must perform the following steps: - -- [Initialization](#initialization) **(35 points)** -- [Iterative solving](#iterative-solving) **(45 points)** - -You will be graded for inclusion of the following as well: - -- [README](#readme) **(5 points)** -- [Example videos](#example-videos) **(10 points)** - -This sums to **95 points**. To score **100 points** (or more!), you’ll need to implement some [extra features](#extra-features). - -### Initialization - -1. Set an initial value for the new vertex positions $p'$. Use the previous vertex positions $p$ for this. **(0 points)** -2. Build the $L$ matrix. **(25 points)** - - Determine the one-ring neighbors of each vertex; - - Calculate the cotangent weight $w$ for each vertex; - - Fill in the $L$ matrix entries. -3. Apply user constraints by deleting rows/columns from $L$. **(5 points)** -4. Precompute the decomposition of the $L$ matrix. **(5 points)** - - If you unnecessarily recompute this decomposition, you will lose points for inefficiency. - -### Iterative Solving - -1. Determine the best-fit rotation transformations $R$ for the moved points $p'$ from original points $p$. **(20 points)** -2. Optimize the positions $p'$ given $p$ and $R$ by solving a sparse linear system. You will need to update the right-hand side of the equation accordingly. **(25 points)** +# As-Rigid-As-Possible Surface Modeling (ARAP) ### README |