index.html 2.9 KB

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