Giter Club home page Giter Club logo

Comments (3)

Andlon avatar Andlon commented on May 18, 2024

Beyond matrix dimensions, it might also be good to explicitly state other assumptions. For example, when describing faces, am I correct in assuming that they should be oriented so that the normal - as determined by a counter-clockwise winding order - are pointing outwards?

from ipc-toolkit.

zfergus avatar zfergus commented on May 18, 2024

Hi Andreas! Thanks for pointing out this issue. I thought it was better documented, but recent changes must have removed this information.

Throughout the toolkit, the vertex position and velocity matrices are expected to be $|V| \times d$ where $|V|$ is the number of vertices and $d$ is the dimension (2 or 3). The edge and face matrices should be $|E| \times 2$ and $|F| \times 3$, respectively, where $|E|$ is the number of edges and $|F|$ is the number of faces. (This is the same format that libigl uses, but if you're not coming from the geometry processing community it can definitely be confusing.)

The orientation of the faces does not matter because we never use the concept of inside/outside or normal vectors in the toolkit (or in the IPC algorithm in general).

I will update the documentation (code and website) to make both of these points clear. Let me know if you find any other undocumented assumptions.

from ipc-toolkit.

Andlon avatar Andlon commented on May 18, 2024

Thanks for the swift response, and the clarifications. figured that the conventions would be like this - just thought I'd note that it would make the initial onboarding experience a little better if these were spelled out explicitly. One less thing to wonder about!

Good to know about the orientation. I know it's not necessary for the IPC algorithm in general but it was not clear to me if it was, for example, important for the CCD, with which I have much less familiarity!

I'm happy to say that I very swiftly was able to get things up and running, i.e. assembly of the potential, gradient and Hessian, as well as determining the maximal step size. Great job in making IPC so accessible! I have yet to integrate it into my actual simulator, and there are some things I don't fully understand just yet, but I'd like to play around with it a bit more before I potentially come back with more questions :-)

from ipc-toolkit.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.