index.html 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title>libigl</title>
  6. <meta name="author" content="Alec Jacobson and Daniele Panozzo and others"/>
  7. <link type="text/css" rel="stylesheet" href="../tutorial/style.css"/>
  8. <script type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
  9. <link rel='stylesheet' href='http://yandex.st/highlightjs/7.3/styles/default.min.css'>
  10. <script src='http://yandex.st/highlightjs/7.3/highlight.min.js'></script>
  11. <script>hljs.initHighlightingOnLoad();</script>
  12. </head>
  13. <body>
  14. <h1 id="libigl-googlesummerofcode2015projectideas"><a href="./index.html">libigl</a> - Google Summer of Code 2015 Project Ideas</h1>
  15. <h2 id="automaticgenerationofpythonmatlabbindings">Automatic Generation of Python/MATLAB bindings</h2>
  16. <figure>
  17. <img src="./libigl-logo-python-matlab.jpg" alt="" />
  18. <figcaption></figcaption></figure>
  19. <p>Libigl is a C++ library, but its functional interface make it very friendly to
  20. wrapping individual functions for popular scripting languages like Python or
  21. MATLAB. Since many libigl functions have the form &#8220;mesh in&#8221; &#8211;&gt; &#8220;mesh out&#8221; or
  22. &#8220;mesh with scalar field in&#8221; &#8211;&gt; &#8220;scalar field out&#8221;, we would like to develop an
  23. <em>automatic</em> routine for generating Python and MATLAB bindings for libigl
  24. functions. This project has three parts: 1) determining the necessary mark up
  25. (e.g. comments) inside libigl header files to determine the Python interface,
  26. 2) writing a program to parse this mark up and generate valid Python bindings
  27. and compilation instructions, and 3) validating and testing these results on a
  28. variety of functions in the library.</p>
  29. <p>Student: <a href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015">apply</a></p>
  30. <p>Mentors: Alec Jacobson &amp; Daniele Panozzo</p>
  31. <h2 id="topologicalmeshoperations">Topological Mesh Operations</h2>
  32. <figure>
  33. <img src="./collapse-split-flip.jpg" alt="" />
  34. <figcaption></figcaption></figure>
  35. <p>Libigl avoids complicated mesh data-structures to ensure that its interface is
  36. clean and easy to port into users&#8217; existing projects. Our mesh format is a
  37. simple list of vertices and list of face indices to those vertices: <code>V</code> and
  38. <code>F</code>. We have a number of functions for <em>deforming</em> a mesh: that is, modifying
  39. the entries in <code>V</code>, but currently lack functions for <em>modifying</em> the mesh&#8217;s
  40. topology: that is, modifying <code>F</code> and/or modifying the <em>size</em> of <code>V</code>. This
  41. project entails implementing <em>efficient</em> routines for: edge collapse, edge
  42. splitting, and edge flipping. The project will culminate in a routine combining
  43. these core functions for surface remeshing.</p>
  44. <p>Student: <a href="https://www.google-melange.com/gsoc/homepage/google/gsoc2015">apply</a></p>
  45. <p>Mentors: Alec Jacobson &amp; Daniele Panozzo</p>
  46. </body>
  47. </html>