libigl / libigl/libigl

FAST 2D Issue

Open
#1,503 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature question
Dominant language
C++
Stars
5.1k
Forks
1.2k
Avg merge
7h 33m
Merged PRs (30d)
8

Description

I'm attempting to get arap_dof working with a 2D mesh. I've used BBW to generate some nice looking weights and arap_dof_precomputation seems to run ok but then when I call arap_dof_recomputation I hit an assertion in igl::min_quad_dense_precompute:

61: assert(sv >= 0);

It seems that 2D meshes take a slightly different path through this function (And use SVD as opposed to LU).

If I ignore the above assert then I hit another later in the arap_dof_recomputation function:

588: assert(fabs(maxErr1) < 1e-5);

I'm basically getting a rather huge value for maxErr1 (64372.8).
And also for maxErr2 just after (613.646).

Which can't be good.. I was just wondering if perhaps the 2D case hasn't been tried for a while and maybe isn't supported at the moment? Or whether my code is setting things up incorrectly and someone could point me to anything that I should be aware of for the 2D case specifically?

Also does anyone happen to know of a working 2D implementation of FAST? That would likely help me narrow down what's wrong with my code if such a thing exists.

Thanks in advance.

Check all that apply (change to [x])
  • Windows
  • macOS
  • Linux

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the 2D mesh case through arap_dof_precomputation and arap_dof_recomputation, then inspect the assertions in igl::min_quad_dense_precompute and arap_dof_recomputation. Done means determining whether 2D FAST is supported, identifying whether the failure is an implementation or setup issue, and providing a working 2D example or clear guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.