Giter Site home page Giter Site logo

wiggly's People

Contributors

aiyopasta avatar wayne-wu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

wiggly's Issues

Documentation

  • Add parameter descriptions
  • Add node icon
  • Maybe the help card as well (Optional)

Create Houdini node containers

Create the HDA containers for Wiggly Constraint SOP and Wiggly Solver SOP, just to get started

  • Wiggly Constraint SOP: create HDA file and commit
  • Wiggly Solver SOP: create C++/Visual Studio template solution (from hw4) and commit

Update README

Final README should have all the screenshots so people can easily browse through and understand what the tool does.

Wiggly Solver Tool

The 2D setup will be transferred into Houdini and implemented using C++.

  • Process upstream constraints (from Wiggly Constraint nodes) into data structure that is understandable by our algorithm
  • Tetrahedralize the mesh using Houdini's built-in FEM workflow.
  • Set up the optimization functions to be called in third-party library
  • Transfer optimization result to Houdini native data

Implement multi-spline workflow

Need a workflow to support multiple wiggly setup (e.g for the X walking example)

  • Add Wiggly Spline SOP to define each spline
  • Can we slice the eigenModes instead of the K,M?
  • How to modify keyframe based on last spline?
  • Keyframe should store velocity as well?
  • Interpolation should always be with respect to the first frame?
  • How to share K, M for different splines
  • Modify Wiggly Solver SOP to take in spline data

Add Pin Constraint Type

  • Need to allow users to pin vertices so they are not part of the deformation. (Fixing points throughout the simulation)

Create 2D Testing Prototype in Python

  • Create interactive Wiggly spline test
  • Create simple 1D mass-spring-damper partial keyframe example
  • Create very small (5-10 vertex) 2D polygonal deformable body example
  • Create 2D subdivided polygonal deformable body partial keyframe example

Design Data Pipeline

Design the full processing pipeline in Houdini to understand how mesh and keyframe data will be carried through the network, and how our nodes will be able to take in the data.

Wiggly Solver - Simple Linear Interpolation

Try to implement a simple linear interpolation between two full keyframes from Wiggly Constraint node. This will provide the basis for how to output the result for the full frame range.

Parallelize mode evaluations

For all the functions that are looping over each mode dimension, we should try to parallelize it either with CPU or GPU

Derive all necessary equations

While the authors of the paper have outlined the main implementation steps, some mathematical equations are ambiguously stated and must be derived and understood first before implementation. We may reach out to the authors for any further clarifications. Some ambigously stated techniques include: Finding the exact closed form of the integral part of the energy function, the inclusion of the boundary constraints in the matrix $A$, and the elimination of all linear constraints using to reduce the final search space via singular value decomposition.

Wiggly Constraint Tool

Design and implement the Wiggly Constraint SOP

  • Figure out how to store keyframe data (either as Houdini native or custom data structure)
  • Create parameters
  • Figure out how to add constraints together from different nodes

Set up render network

For our final demo, we should try to render out nice images like the paper

  • Apply materials to our mesh
  • Figure out how to render using Mantra

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.